diff --git a/commands/player-list.js b/commands/player-list.js index a33cb79..25b3307 100644 --- a/commands/player-list.js +++ b/commands/player-list.js @@ -31,15 +31,16 @@ module.exports = { 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 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 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 = { "started": {emoji: "🟢", text: "Active"}, @@ -47,8 +48,8 @@ module.exports = { "restarting": {emoji: "↻", text: "Restarting"}, }; - const emojiStatus = Statuses[status].emoji || "❓"; - const textStatus = Statuses[status].text || "Unknown Status"; + const emojiStatus = e ? Statuses[status].emoji : "❓"; + const textStatus = e ? Statuses[status].text : "Unknown Status"; let activePlayers = await client.dbo.collection("players").find({"connected": true}).toArray(); @@ -74,7 +75,7 @@ module.exports = { .setTitle(`Players Online:`) .setDescription(des || (nodes ? "No Players Online :(" : "")); - return interaction.send({ embeds: [serverEmbed, activePlayersEmbed] }); + return interaction.editReply({ embeds: [serverEmbed, activePlayersEmbed] }); }, }, } \ No newline at end of file diff --git a/package.json b/package.json index cc94097..dc9c3dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dayzr-bot", - "version": "13.3.21", + "version": "13.3.22", "description": "A General Purpose Discord Bot for DayZ Nitrado Servers.", "main": "index.js", "nodemonConfig": { diff --git a/util/NitradoAPI.js b/util/NitradoAPI.js index 7e6a0f4..350a99d 100644 --- a/util/NitradoAPI.js +++ b/util/NitradoAPI.js @@ -176,6 +176,7 @@ module.exports = { if (!res.ok) { 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. } else { const data = await res.json();