fix/convert player list to webhooks
This commit is contained in:
3 files changed
+22
-12
No files matched your search
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "dayzr-bot",
|
"name": "dayzr-bot",
|
||||||
"version": "13.3.19",
|
"version": "13.3.20",
|
||||||
"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
-5
@@ -67,12 +67,15 @@ class DayzRBot extends Client {
|
|||||||
|
|
||||||
this.db;
|
this.db;
|
||||||
this.dbo;
|
this.dbo;
|
||||||
|
|
||||||
this.databaseConnected = false;
|
this.databaseConnected = false;
|
||||||
this.arInterval = arInterval;
|
this.arInterval = arInterval;
|
||||||
this.arIntervalIds = new Map();
|
this.arIntervalIds = new Map();
|
||||||
this.playerSessions = new Map();
|
this.playerSessions = new Map();
|
||||||
this.logHistory = new Map();
|
this.logHistory = new Map();
|
||||||
this.alarmPingQueue = new Map();
|
this.alarmPingQueue = new Map();
|
||||||
|
this.playerListMsgIds = new Map();
|
||||||
|
|
||||||
this.initialize();
|
this.initialize();
|
||||||
this.LoadCommandsAndInteractionHandlers();
|
this.LoadCommandsAndInteractionHandlers();
|
||||||
this.LoadEvents();
|
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.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.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`);
|
this.log(`[${guilds[i].server.serverID}] Initialized existing Nitrado`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-6
@@ -5,8 +5,7 @@ const { getDefaultPlayer } = require('../database/player');
|
|||||||
const { FetchServerSettings } = require('../util/NitradoAPI');
|
const { FetchServerSettings } = require('../util/NitradoAPI');
|
||||||
const { UpdatePlayer, insertPVPstats, createWeaponStats } = require('../database/player')
|
const { UpdatePlayer, insertPVPstats, createWeaponStats } = require('../database/player')
|
||||||
const { Missions } = require('../database/destinations');
|
const { Missions } = require('../database/destinations');
|
||||||
|
const { GetWebhook, WebhookSend, WebhookMessageEdit } = require("../util/WebhookHandler");
|
||||||
let lastSendMessage;
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
@@ -208,6 +207,7 @@ module.exports = {
|
|||||||
|
|
||||||
if (!client.exists(guild.activePlayersChannel)) return;
|
if (!client.exists(guild.activePlayersChannel)) return;
|
||||||
const channel = client.GetChannel(guild.activePlayersChannel);
|
const channel = client.GetChannel(guild.activePlayersChannel);
|
||||||
|
if (!channel) return;
|
||||||
|
|
||||||
const data = await FetchServerSettings(nitrado_cred, client, 'HandleActivePlayersList'); // Fetch server status
|
const data = await FetchServerSettings(nitrado_cred, client, 'HandleActivePlayersList'); // Fetch server status
|
||||||
const e = data && data !== 1; // Check if data exists
|
const e = data && data !== 1; // Check if data exists
|
||||||
@@ -251,10 +251,15 @@ module.exports = {
|
|||||||
.setTitle(`Players Online:`)
|
.setTitle(`Players Online:`)
|
||||||
.setDescription(des || (nodes ? "No 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 =>
|
let id = client.playerListMsgIds.get(guild.serverID);
|
||||||
lastSendMessage = sentMessage
|
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] });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Reference in new issue
Block a user