Files
2026-03-15 12:22:42 +01:00

40 lines
1.8 KiB
JavaScript

const { SlashCommandBuilder, PermissionFlagsBits, MessageFlags } = require('discord.js');
module.exports = {
category: 'dev',
data: new SlashCommandBuilder()
.setName('reload')
.setDescription('Recharge une commande.')
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
.addStringOption(option =>
option.setName('command')
.setDescription('La commande à recharger.')
.setRequired(true)),
async execute(interaction) {
if (!interaction.member.permissions.has(PermissionFlagsBits.Administrator)) {
return interaction.reply({ content: '❌ Seuls les administrateurs peuvent utiliser cette commande.', flags: MessageFlags.Ephemeral });
}
const commandName = interaction.options.getString('command', true).toLowerCase();
const command = interaction.client.commands.get(commandName);
if (!command) {
return interaction.reply({ content: `❌ Aucune commande nommée \`${commandName}\` n'a été trouvée !`, flags: MessageFlags.Ephemeral });
}
try {
// Supprimer du cache
const commandPath = `../${command.category}/${command.data.name}.js`;
delete require.cache[require.resolve(commandPath)];
// Recharger
const newCommand = require(commandPath);
interaction.client.commands.set(newCommand.data.name, newCommand);
await interaction.reply({ content: `✅ Commande \`${newCommand.data.name}\` rechargée avec succès !`, flags: MessageFlags.Ephemeral });
} catch (error) {
console.error(error);
await interaction.reply({ content: `❌ Erreur lors du rechargement de \`${command.data.name}\`:\n\`${error.message}\``, flags: MessageFlags.Ephemeral });
}
},
};