diff --git a/commands/server.js b/commands/server.js index 6ba757f..c8e5396 100644 --- a/commands/server.js +++ b/commands/server.js @@ -1,7 +1,7 @@ const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, ModalBuilder, TextInputBuilder, TextInputStyle } = require('discord.js'); const CommandOptions = require('../util/CommandOptionTypes').CommandOptionTypes; const bitfieldCalculator = require('discord-bitfield-calculator'); -const { BanPlayer, UnbanPlayer, RestartServer, CheckServerStatus, DisableBaseDamage, DisableContainerDamage } = require('../util/NitradoAPI'); +const { BanPlayer, UnbanPlayer, RestartServer, CheckServerStatus, DisableBaseDamage, DisableContainerDamage, NitradoCredentialStatus } = require('../util/NitradoAPI'); const { encrypt, decrypt } = require('../util/Cryptic'); module.exports = { @@ -286,6 +286,7 @@ module.exports = { client.key, client.encryptionIV ), // Encrypt the Authentication Token + Status: NitradoCredentialStatus.OK, // Indicate if these credentials dont work }; await client.dbo.collection('guilds').updateOne({ "server.serverID": GuildDB.serverID }, { $set: { "Nitrado": Nitrado } }, (err, res) => { diff --git a/package.json b/package.json index 454ea6d..746ae6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dayzr-bot", - "version": "13.3.2", + "version": "13.3.3", "description": "A General Purpose Discord Bot for DayZ Nitrado Servers.", "main": "index.js", "nodemonConfig": { diff --git a/src/DayzRBot.js b/src/DayzRBot.js index 67ef13e..412bce1 100644 --- a/src/DayzRBot.js +++ b/src/DayzRBot.js @@ -6,7 +6,7 @@ const Logger = require("../util/Logger"); const crypto = require('crypto'); // custom util imports -const { DownloadNitradoFile, CheckServerStatus, FetchServerSettings, PostServerSettings } = require('../util/NitradoAPI'); +const { DownloadNitradoFile, CheckServerStatus, FetchServerSettings, PostServerSettings, NitradoCredentialStatus } = require('../util/NitradoAPI'); const { HandlePlayerLogs, HandleActivePlayersList } = require('../util/LogsHandler'); const { HandleKillfeed, UpdateLastDeathDate } = require('../util/KillfeedHandler'); const { HandleExpiredUAVs, HandleEvents, PlaceFireplaceInAlarm } = require('../util/AlarmsHandler'); @@ -308,6 +308,7 @@ class DayzRBot extends Client { */ if (!c.exists(GuildDB.Nitrado)) return; // Continue if no nitrado credentials + if (GuildDB.Nitrado.Status == NitradoCredentialStatus.FAILED) return; // Continue if these credentials are marked as failed const NitradoCred = { ServerID: GuildDB.Nitrado.ServerID, @@ -317,17 +318,22 @@ class DayzRBot extends Client { c.config.EncryptionMethod, c.key, c.encryptionIV - ) + ), }; const response = await FetchServerSettings(NitradoCred, c, "logsUpdateTimer").then(res => res); - if (response == 1) return; + if (response == 1) { + c.dbo.collection("guilds").updateOne({"server.serverID": GuildDB.serverID }, {$set: { "Nitrado.Status": NitradoCredentialStatus.FAILED }}, (err, _) => { + if (err) this.error(`Failed to update Nitrado status to failed. [${GuildDB.serverID}]`); + }); + return; + }; const settings = response.data.gameserver; // Update Nitrado DayZ Mission if change is detected if (GuildDB.Nitrado.Mission !== Missions[settings.settings.config.mission]) { c.dbo.collection("guilds").updateOne({"server.serverID": GuildDB.serverID}, {$set: { "Nitrado.Mission": Missions[settings.settings.config.mission] }}, (err, res) => { - if (err) this.error(`Failed to save mission to guild config [${guild.serverID}] for nitrado server [${guild.Nitrado.ServerID}]`); + if (err) this.error(`Failed to save mission to guild config [${GuildDB.serverID}] for nitrado server [${GuildDB.Nitrado.ServerID}]`); }); } diff --git a/util/NitradoAPI.js b/util/NitradoAPI.js index cc658c6..7e6a0f4 100644 --- a/util/NitradoAPI.js +++ b/util/NitradoAPI.js @@ -301,5 +301,10 @@ module.exports = { if (uploaded == 1) return 1; return 0; - } + }, + + NitradoCredentialStatus: { + FAILED: "FAILED", + OK: "OK", + }, }