diff --git a/commands/admin.js b/commands/admin.js index 82e7b0f..187bf2f 100644 --- a/commands/admin.js +++ b/commands/admin.js @@ -1,7 +1,7 @@ const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, StringSelectMenuBuilder } = require('discord.js'); const CommandOptions = require('../util/CommandOptionTypes').CommandOptionTypes; const bitfieldCalculator = require('discord-bitfield-calculator'); -const { BanPlayer, UnbanPlayer, RestartServer, CheckServerStatus, ToggleBaseDamage } = require('../util/NitradoAPI'); +const { BanPlayer, UnbanPlayer, RestartServer, CheckServerStatus, DisableBaseDamage } = require('../util/NitradoAPI'); const { Armbands } = require('../config/armbandsdb.js'); const { User, addUser } = require('../structures/user'); @@ -193,7 +193,7 @@ module.exports = { } let playerStat = GuildDB.playerstats.find(stat => stat.gamertag == args[0].options[1].value ); - if (playerStat == undefined) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(`**Not Found** This gamertag \` ${args[1].value} \` cannot be found, the gamertag may be incorrect or this player has not logged onto the server before for at least \` 5 minutes \`.`)] }); + if (playerStat == undefined) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(`**Not Found** This gamertag \` ${args[0].options[1].value} \` cannot be found, the gamertag may be incorrect or this player has not logged onto the server before for at least \` 5 minutes \`.`)] }); if (client.exists(playerStat.discordID)) { const warnGTOverwrite = new EmbedBuilder() @@ -478,7 +478,7 @@ module.exports = { } else if (args[0].name == 'disable-base-damage') { const preference = args[0].options[0].value; - const toggle = await ToggleBaseDamage(client, preference); + const toggle = await DisableBaseDamage(client, preference); if (toggle == 1) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription('Failed to update ` disableBaseDamage `, try again later.')] }); return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Green).setDescription(`Successfully updated \` disableBaseDamage \` to ${preference}.\nRestart the DayZ server to apply these changes.`)] }); diff --git a/package.json b/package.json index e4d31b3..ce3b5ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dayzr-bot", - "version": "10.0.6", + "version": "10.0.8", "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 85f02cb..2c5ea97 100644 --- a/util/NitradoAPI.js +++ b/util/NitradoAPI.js @@ -33,14 +33,13 @@ const UploadNitradoFile = async (client, remoteDir, remoteFilename, localFileDir token: res.data.token.token }, body: contents, - }); + }) if (!uploadRes.ok) { const errorText = await uploadRes.text(); client.error(`Failed to upload file to Nitrado (${client.config.Nitrado.ServerID}): status: ${uploadRes.status}, message: ${errorText}: UploadNitradoFile`); if (retries === 2) return 1; // Return error status on the second failed status code. } else { - const data = await uploadRes.json(); - return data; + return uploadRes; } } catch (error) { client.error(`UploadNitradoFile: Error connecting to server (${client.config.Nitrado.ServerID}): ${error.message}`); @@ -216,27 +215,27 @@ module.exports = { } }, - ToggleBaseDamage: async (client, preference) => { + DisableBaseDamage: async (client, preference) => { const settings = await module.exports.FetchServerSettings(client, 'ToggleBaseDamage'); // Fetch server settings if (settings == 1) return 1; - const pref = preference ? 1 : 0; - const posted = await PostServerSettings(client, "config", "disableBaseDamage", pref); + const pref = preference ? '1' : '0'; + const posted = await PostServerSettings(client, "config", "ToggleBaseDamage", pref); if (posted == 1) return 1; - + const remoteDir = `/games/${client.config.Nitrado.UserID}/ftproot/dayzxb_missions/dayzOffline.chernarusplus`; const remoteFilename = 'cfggameplay.json'; - const jsonDir = `../logs/${remoteFilename}`; + const jsonDir = `./logs/${remoteFilename}`; await module.exports.DownloadNitradoFile(client, `${remoteDir}/${remoteFilename}`, jsonDir); - + let gameplay = JSON.parse(fs.readFileSync(jsonDir)); gameplay.GeneralData.disableBaseDamage = preference; // write JSON to file - fs.writeFileSync(jsonDir, JSON.stringify(gameplay), null, 2); + fs.writeFileSync(jsonDir, JSON.stringify(gameplay, null, 2)); - const uploaded = await UploadNitradoFile(client, remoteDir, remoteFileName, jsonDir); + const uploaded = await UploadNitradoFile(client, remoteDir, remoteFilename, jsonDir); if (uploaded == 1) return 1; return 0;