fix/convert player list to webhooks

This commit is contained in:
SowinskiBraeden committed 2024-11-17 12:40:46 -08:00
1 parent dd983cf9f2
commit d1550ff7b5
3 files changed
+17 -7

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "dayzr-bot",
"version": "13.3.19",
"version": "13.3.20",
"description": "A General Purpose Discord Bot for DayZ Nitrado Servers.",
"main": "index.js",
"nodemonConfig": {
+5
View File
@@ -67,12 +67,15 @@ class DayzRBot extends Client {
this.db;
this.dbo;
this.databaseConnected = false;
this.arInterval = arInterval;
this.arIntervalIds = new Map();
this.playerSessions = new Map();
this.logHistory = new Map();
this.alarmPingQueue = new Map();
this.playerListMsgIds = new Map();
this.initialize();
this.LoadCommandsAndInteractionHandlers();
this.LoadEvents();
@@ -436,6 +439,8 @@ class DayzRBot extends Client {
}
this.logHistory.set(guilds[i].Nitrado.ServerID, guilds[i].server.lastLog); // Using Nitrado Server ID over guild ID in case of future support for multiple nitrado servers in a single guild
this.playerSessions.set(guilds[i].Nitrado.ServerID, new Map()); // Same reason here as named above.
this.alarmPingQueue.set(guilds[i].serverID, new Map()); // Initialize alarm queue to be empty
this.playerListMsgIds.set(guilds[i].serverID, ""); // Initialize player list message ids
this.log(`[${guilds[i].server.serverID}] Initialized existing Nitrado`);
}
}
+11 -6
View File
@@ -5,8 +5,7 @@ const { getDefaultPlayer } = require('../database/player');
const { FetchServerSettings } = require('../util/NitradoAPI');
const { UpdatePlayer, insertPVPstats, createWeaponStats } = require('../database/player')
const { Missions } = require('../database/destinations');
let lastSendMessage;
const { GetWebhook, WebhookSend, WebhookMessageEdit } = require("../util/WebhookHandler");
module.exports = {
@@ -208,6 +207,7 @@ module.exports = {
if (!client.exists(guild.activePlayersChannel)) return;
const channel = client.GetChannel(guild.activePlayersChannel);
if (!channel) return;
const data = await FetchServerSettings(nitrado_cred, client, 'HandleActivePlayersList'); // Fetch server status
const e = data && data !== 1; // Check if data exists
@@ -251,10 +251,15 @@ module.exports = {
.setTitle(`Players Online:`)
.setDescription(des || (nodes ? "No Players Online :(" : ""));
if (lastSendMessage) lastSendMessage.delete().catch(error => client.sendError(channel, `HandleActivePlayersList Error: \n${error}`)); // Remove previous message before reprinting
const NAME = "DayZ.R Admin Logs";
const webhook = await GetWebhook(client, NAME, guild.connectionLogsChannel);
return channel.send({ embeds: [serverEmbed, activePlayersEmbed] }).then(sentMessage =>
lastSendMessage = sentMessage
);
let id = client.playerListMsgIds.get(guild.serverID);
if (id == "") {
id = await WebhookSend(client, webhook, { embeds: [serverEmbed, activePlayersEmbed] }).id;
client.playerListMsgIds.set(guild.serverID, id);
} else {
WebhookMessageEdit(client, webhook, id, { embeds: [serverEmbed, activePlayersEmbed] });
}
}
};