diff --git a/bot/commands/Utility/weather.js b/bot/commands/Utility/weather.js deleted file mode 100644 index ea2c5cf..0000000 --- a/bot/commands/Utility/weather.js +++ /dev/null @@ -1,95 +0,0 @@ -const Command = require("../../base/Command.js"); -const fetch = require('node-fetch'); -const windrose = require('windrose'); -const ISO2 = require('../../assets/ISO2.json'); - - -module.exports = class Weather extends Command { - constructor (name, category) { - super (name, category) - this.name = name, - this.description = 'View the weather in a place ', - this.options = [ - { - type: 3, - name: "city", - description: "The city to check the weather at", - required: true - }, - { - type: 3, - name: "country", - description: "The country the city is in", - } - ], - this.category = category, - this.cooldown = 10000 - }; - - async run (client, interaction, data) { //eslint-disable-line no-unused-vars - - await interaction.deferReply(); - - const city = await interaction.options.get('city').value; - let country = await interaction.options.get('country'); - let countryCode = ""; - - if (country) { - country = country.value; - countryCode += "," - if (ISO2.country[country.toProperCase().trim()]) { - countryCode += ISO2.country[country.toProperCase().trim()]; - } else { - countryCode += country.trim(); - } - }; - - fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city + countryCode}&appid=${client.config.keys.weather}`, { headers: { 'User-Agent': client.config.userAgent }}) - .then(res => res.json()) - .then(json => { - if (json.cod >= 200 && json.cod <= 299) { - const tempCelsius = Math.round(json.main.temp - 273.15); - let embedColor; - if (tempCelsius < 0) { - embedColor = '#addeff'; - } else if (tempCelsius < 20) { - embedColor = '#4fb8ff'; - } else if (tempCelsius < 26) { - embedColor = '#ffea4f'; - } else if (tempCelsius < 31) { - embedColor = '#ffa14f'; - } else { - embedColor = '#ff614f'; - } - - const embed = new client.EmbedBuilder() - .setTitle('Current conditions in ' + city.toProperCase() + ', ' + ISO2.code[json.sys.country]) - .setThumbnail(`https://openweathermap.org/img/wn/${json.weather[0].icon}@4x.png`) - .setColor(embedColor) - .addFields([ - { name: 'Condition:', value: json.weather[0].main, inline: true }, - { name: 'Temperature:', value: `${tempCelsius}°C | ${Math.round(json.main.temp * 9/5 - 459.67)}°F`, inline: true }, - { name: 'Min/Max:', value:` - ${Math.round(json.main.temp_min - 273.15)}°C - ${Math.round(json.main.temp_max - 273.15)}°C - ${Math.round(json.main.temp_min * 9/5 - 459.67)}°F - ${Math.round(json.main.temp_max * 9/5 - 459.67)}°F - `, inline: true}, - { name: 'Humidity:', value: `${json.main.humidity}%`, inline: true }, - { name: 'Wind Speed:', value: `${Math.round(json.wind.speed * 10) / 10}km/h | ${Math.round(json.wind.speed * 10 / 1.609344)}mi/h`, inline: true }, - { name: 'Wind Direction:', value: windrose.getPoint(json.wind.deg).name, inline: true} - ]) - .setFooter({ text: 'Powered by openweathermap.org'}); - - return interaction.editReply({embeds: [embed]}); - } else { - if (json.message && json.message === 'city not found') { - return interaction.editReply(`${client.config.emojis.userError} ${city.toProperCase()} is not listed in my sources.`); - } - return interaction.editReply(`${client.config.emojis.botError} API error occurred: \`code ${json.cod}: ${json.message}\``); - } - }) - .catch(err => { - return interaction.editReply(`${client.config.emojis.botError} An error has occurred: \`${err.stack}\``); - }); - - }; -}; \ No newline at end of file diff --git a/bot/event_modules/interactionCreate/interactionHandler.js b/bot/event_modules/interactionCreate/interactionHandler.js index 92c4be3..4b3afe6 100644 --- a/bot/event_modules/interactionCreate/interactionHandler.js +++ b/bot/event_modules/interactionCreate/interactionHandler.js @@ -15,17 +15,15 @@ module.exports = class { const command = client.commands.get(interaction.commandName); // Return if the command is disabled globally - if (command.enabled === false) interaction.reply({ - content: client.config.emojis.permError + ' This command has been disabled by my developers.', - ephemeral: true - }); + if (command.enabled === false) interaction.reply( + client.config.emojis.permError + ' This command has been disabled by my developers.' + ); // Return if the command is restricted to developers (and the user is not a developer) if (command.devOnly === true && client.config.devIds.includes(interaction.user.id) !== true) { - return interaction.reply({ - content: `${client.config.emojis.permError} ${interaction.user.username} is not in the sudoers file. This incident will be reported.`, - ephemeral: true - }); + return interaction.reply( + `${client.config.emojis.permError} ${interaction.user.username} is not in the sudoers file. This incident will be reported.` + ); } // Cooldown @@ -34,10 +32,9 @@ module.exports = class { const currentTime = Date.now(); const cooldown = command.cooldown / 1000; const timePassed = Math.floor((currentTime - timestamp) / 1000); - return interaction.reply({ - content: `${client.config.emojis.wait} You need to wait ${cooldown - timePassed} seconds before using this command again.`, - ephemeral: true - }); + return interaction.reply( + `${client.config.emojis.wait} <@${interaction.user.id}>, you need to wait ${cooldown - timePassed} seconds before using this command again.` + ); } else { client.cooldowns.get(command.name).set(interaction.user.id, new Date()); setTimeout(() => { @@ -51,10 +48,7 @@ module.exports = class { client.logger.command(`Ran ${command.name}`); } catch (error) { client.logger.error('COMMAND_EXECUTION_ERROR', `${command.name}: ${error.stack}`); - interaction.reply({ - content: `${client.config.emojis.botError} An error occurred when I was trying to run this command. I've sent through the details of the error to my developers.`, - ephemeral: true - }); + interaction.reply(`${client.config.emojis.botError} An error occurred when I was trying to run this command. I've sent through the details of the error to my developers.`); } } }; \ No newline at end of file