cardboardbox/commands/Utility/reload.js

48 lines
1.5 KiB
JavaScript

exports.run = async (client, message, args, level) => {
message.delete();
if (!args || args.length < 1) return message.reply("why are you trying to reload a command without actually naming it?").then(msg => {
msg.delete(5000);
});
const commandName = args[0].toLowerCase();
const command = message.client.commands.get(commandName)
|| message.client.commands.find(cmd => cmd.aliases && cmd.aliases.includes(commandName));
if (!command) return message.reply(`there is no command with name or alias \`${commandName}\`, ${message.author}.`).then(msg => {
msg.delete(5000);
});
let msg = await message.channel.send(`**Beginning reload process;** initiated by ${message.author.tag}. Finding and reloading command \`${args[0]}\`...`);
delete require.cache[require.resolve(`../${command.help.category}/${commandName}.js`)];
try {
const newCommand = require(`../${command.help.category}/${commandName}.js`);
message.client.commands.set(newCommand.help.name, newCommand);
} catch (error) {
console.log(error);
msg.edit(`Hey ${message.author}, there was an error while reloading command \`${commandName}\`:\n\`${error.message}\``).then(msg => {
msg.delete(10000);
});
return;
}
msg.edit(`**Command \`${command.help.name}\` has been reloaded successfully.**`).then(msg => {
msg.delete(5000);
});
};
exports.conf = {
enabled: true,
guildOnly: false,
aliases: [],
permLevel: "Bot Admin"
};
exports.help = {
name: "reload",
category: "System",
description: "Reloads a command that\'s been modified.",
usage: "reload [command]"
};