fix/player-list not responding on failed request

This commit is contained in:
SowinskiBraeden committed 2025-01-11 15:49:56 -08:00
1 parent cd2ae35a1f
commit 265f0d3f38
3 files changed
+9 -7

No files matched your search

+7 -6
View File
@@ -31,15 +31,16 @@ module.exports = {
return interaction.send({ embeds: [warnNitradoNotInitialized], flags: (1 << 6) }); return interaction.send({ embeds: [warnNitradoNotInitialized], flags: (1 << 6) });
} }
const data = await FetchServerSettings(GuildDB.Nitrado, client, 'commands/player-list.js'); // Fetch server status await interaction.deferReply();
const data = await FetchServerSettings(GuildDB.Nitrado, client, 'commands/player-list.js'); // Fetch server status
const e = data && data !== 1; // Check if data exists const e = data && data !== 1; // Check if data exists
const hostname = e ? data.data.gameserver.settings.config.hostname : 'N/A'; const hostname = e ? data.data.gameserver.settings.config.hostname : 'N/A';
const map = Missions[data.data.gameserver.settings.config.mission]; const map = e ? Missions[data.data.gameserver.settings.config.mission] : 'N/A';
const status = e ? data.data.gameserver.status : 'N/A'; const status = e ? data.data.gameserver.status : 'N/A';
const slots = e ? data.data.gameserver.slots : 'N/A'; const slots = e ? data.data.gameserver.slots : 'N/A';
const playersOnline = data.data.gameserver.query.player_current; const playersOnline = e ? data.data.gameserver.query.player_current : 'N/A';
const Statuses = { const Statuses = {
"started": {emoji: "🟢", text: "Active"}, "started": {emoji: "🟢", text: "Active"},
@@ -47,8 +48,8 @@ module.exports = {
"restarting": {emoji: "↻", text: "Restarting"}, "restarting": {emoji: "↻", text: "Restarting"},
}; };
const emojiStatus = Statuses[status].emoji || "❓"; const emojiStatus = e ? Statuses[status].emoji : "❓";
const textStatus = Statuses[status].text || "Unknown Status"; const textStatus = e ? Statuses[status].text : "Unknown Status";
let activePlayers = await client.dbo.collection("players").find({"connected": true}).toArray(); let activePlayers = await client.dbo.collection("players").find({"connected": true}).toArray();
@@ -74,7 +75,7 @@ module.exports = {
.setTitle(`Players Online:`) .setTitle(`Players Online:`)
.setDescription(des || (nodes ? "No Players Online :(" : "")); .setDescription(des || (nodes ? "No Players Online :(" : ""));
return interaction.send({ embeds: [serverEmbed, activePlayersEmbed] }); return interaction.editReply({ embeds: [serverEmbed, activePlayersEmbed] });
}, },
}, },
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "dayzr-bot", "name": "dayzr-bot",
"version": "13.3.21", "version": "13.3.22",
"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": {
+1
View File
@@ -176,6 +176,7 @@ module.exports = {
if (!res.ok) { if (!res.ok) {
client.error(`Failed to get Nitrado server stats (${nitrado_cred.ServerID}): status: ${res.status}, message: ${res.statusText}: ${fetcher} via FetchServerSettings`); client.error(`Failed to get Nitrado server stats (${nitrado_cred.ServerID}): status: ${res.status}, message: ${res.statusText}: ${fetcher} via FetchServerSettings`);
if (res.status == 401) return 1; // return immediately if unauthorized
if (retries === 2) return 1; // Return error status on the second failed status code. if (retries === 2) return 1; // Return error status on the second failed status code.
} else { } else {
const data = await res.json(); const data = await res.json();