update/stop if nitrado credentials fail to fetch settings

This commit is contained in:
SowinskiBraeden committed 2024-11-08 13:39:06 -08:00
1 parent 2cb409a36a
commit bbe0fe5961
4 files changed
+19 -7

No files matched your search

+2 -1
View File
@@ -1,7 +1,7 @@
const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, ModalBuilder, TextInputBuilder, TextInputStyle } = require('discord.js'); const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, ModalBuilder, TextInputBuilder, TextInputStyle } = require('discord.js');
const CommandOptions = require('../util/CommandOptionTypes').CommandOptionTypes; const CommandOptions = require('../util/CommandOptionTypes').CommandOptionTypes;
const bitfieldCalculator = require('discord-bitfield-calculator'); 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'); const { encrypt, decrypt } = require('../util/Cryptic');
module.exports = { module.exports = {
@@ -286,6 +286,7 @@ module.exports = {
client.key, client.key,
client.encryptionIV client.encryptionIV
), // Encrypt the Authentication Token ), // 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) => { await client.dbo.collection('guilds').updateOne({ "server.serverID": GuildDB.serverID }, { $set: { "Nitrado": Nitrado } }, (err, res) => {
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "dayzr-bot", "name": "dayzr-bot",
"version": "13.3.2", "version": "13.3.3",
"description": "A General Purpose Discord Bot for DayZ Nitrado Servers.", "description": "A General Purpose Discord Bot for DayZ Nitrado Servers.",
"main": "index.js", "main": "index.js",
"nodemonConfig": { "nodemonConfig": {
+10 -4
View File
@@ -6,7 +6,7 @@ const Logger = require("../util/Logger");
const crypto = require('crypto'); const crypto = require('crypto');
// custom util imports // 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 { HandlePlayerLogs, HandleActivePlayersList } = require('../util/LogsHandler');
const { HandleKillfeed, UpdateLastDeathDate } = require('../util/KillfeedHandler'); const { HandleKillfeed, UpdateLastDeathDate } = require('../util/KillfeedHandler');
const { HandleExpiredUAVs, HandleEvents, PlaceFireplaceInAlarm } = require('../util/AlarmsHandler'); 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 (!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 = { const NitradoCred = {
ServerID: GuildDB.Nitrado.ServerID, ServerID: GuildDB.Nitrado.ServerID,
@@ -317,17 +318,22 @@ class DayzRBot extends Client {
c.config.EncryptionMethod, c.config.EncryptionMethod,
c.key, c.key,
c.encryptionIV c.encryptionIV
) ),
}; };
const response = await FetchServerSettings(NitradoCred, c, "logsUpdateTimer").then(res => res); 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; const settings = response.data.gameserver;
// Update Nitrado DayZ Mission if change is detected // Update Nitrado DayZ Mission if change is detected
if (GuildDB.Nitrado.Mission !== Missions[settings.settings.config.mission]) { 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) => { 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}]`);
}); });
} }
+6 -1
View File
@@ -301,5 +301,10 @@ module.exports = {
if (uploaded == 1) return 1; if (uploaded == 1) return 1;
return 0; return 0;
} },
NitradoCredentialStatus: {
FAILED: "FAILED",
OK: "OK",
},
} }