Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8197e18d2 | ||
|
|
c0f59cc040 | ||
|
|
caf43aac4e | ||
|
|
bbe0fe5961 | ||
|
|
2cb409a36a |
No files matched your search
+39
-2
@@ -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 = {
|
||||||
@@ -26,6 +26,18 @@ module.exports = {
|
|||||||
value: "disconnect",
|
value: "disconnect",
|
||||||
type: CommandOptions.SubCommand,
|
type: CommandOptions.SubCommand,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "credentials-status",
|
||||||
|
description: "Check the status of your Nitrado Credentials",
|
||||||
|
value: "credentials-status",
|
||||||
|
type: CommandOptions.SubCommand,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "retry-credentials",
|
||||||
|
description: "If your credentials are marked as FAILED, try retreiving Nitrado logs again.",
|
||||||
|
value: "retry-credentials",
|
||||||
|
type: CommandOptions.SubCommand,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "ban-player",
|
name: "ban-player",
|
||||||
description: "Ban a player from the DayZ server",
|
description: "Ban a player from the DayZ server",
|
||||||
@@ -180,7 +192,31 @@ module.exports = {
|
|||||||
|
|
||||||
if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription(`**Notice:**\nThis Discord guild has not been configured with a Nitrado DayZ server. To configure your guild, use </server initialize:1166877457559851011>`)] });
|
if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription(`**Notice:**\nThis Discord guild has not been configured with a Nitrado DayZ server. To configure your guild, use </server initialize:1166877457559851011>`)] });
|
||||||
|
|
||||||
if (args[0].name == 'ban-player') {
|
if (args[0].name == 'credentials-status') {
|
||||||
|
|
||||||
|
const ok = GuildDB.Nitrado.Status == NitradoCredentialStatus.OK;
|
||||||
|
const notice = ok ? "Your provided Nitrado Credentials are working correctly, logs are being checked." : "Your provided Nitrado Credentials are not working. They may be incorrect, or your server may be down. Ensure your DayZ server is online, and try to initialize your server again and verify your credentials are correct."
|
||||||
|
const statusEmbed = new EmbedBuilder()
|
||||||
|
.setColor(ok ? client.config.Colors.Green : client.config.Colors.Red)
|
||||||
|
.setTitle("Nitrado Credentials Status")
|
||||||
|
.setDescription(`**Status:** \`${GuildDB.Nitrado.Status}\`\n> ${notice}`);
|
||||||
|
|
||||||
|
return interaction.send({ embeds: [statusEmbed] });
|
||||||
|
|
||||||
|
} else if (args[0].name == 'retry-credentials') {
|
||||||
|
|
||||||
|
client.dbo.collection("guilds").updateOne({"server.serverID": GuildDB.serverID}, {$set:{"Nitrado.Status": NitradoCredentialStatus.OK}}, (err, _) => {
|
||||||
|
if (err) return client.sendInternalError(interaction, err);
|
||||||
|
});
|
||||||
|
|
||||||
|
const updatedEmbed = new EmbedBuilder()
|
||||||
|
.setColor(client.config.Colors.Green)
|
||||||
|
.setTitle("Updated Nitrado Credentials Status")
|
||||||
|
.setDescription(`**Success**\n> Successfully retrying your existing Nitrado Credentials to check DayZ logs.`);
|
||||||
|
|
||||||
|
return interaction.send({ embeds: [updatedEmbed] });
|
||||||
|
|
||||||
|
} else if (args[0].name == 'ban-player') {
|
||||||
|
|
||||||
let data = await BanPlayer(GuildDB.Nitrado, client, args[0].options[0].value);
|
let data = await BanPlayer(GuildDB.Nitrado, client, args[0].options[0].value);
|
||||||
|
|
||||||
@@ -286,6 +322,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
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "dayzr-bot",
|
"name": "dayzr-bot",
|
||||||
"version": "13.3.2",
|
"version": "13.3.5",
|
||||||
"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
@@ -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
@@ -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",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user