mirror of
https://github.com/arthur-pbty/LazyBot.git
synced 2026-06-03 23:36:37 +02:00
63 lines
2.1 KiB
JavaScript
63 lines
2.1 KiB
JavaScript
module.exports = {
|
|
name: "interactionCreate",
|
|
async execute(client, interaction) {
|
|
if (!interaction.isCommand()) return;
|
|
|
|
const command = client.commands.get(interaction.commandName);
|
|
if (!command) return;
|
|
|
|
// Vérification du scope / guildCondition
|
|
if (command.scope === "guild") {
|
|
const guildId = interaction.guild ? interaction.guild.id : null;
|
|
if (!guildId)
|
|
return interaction.reply({ content: "Cette commande ne peut pas être utilisée en message privé.", ephemeral: true });
|
|
if (typeof command.guildCondition === "function") {
|
|
let allowed = false;
|
|
try {
|
|
allowed = await command.guildCondition(guildId);
|
|
} catch (err) {
|
|
console.error(`Erreur guildCondition pour la guild ${guildId}`, err);
|
|
allowed = false;
|
|
}
|
|
if (!allowed)
|
|
return interaction.reply({ content: "Cette commande est désactivée sur ce serveur.", ephemeral: true });
|
|
}
|
|
}
|
|
|
|
if (command.dm !== true && interaction.channel.type === 1)
|
|
return interaction.reply({
|
|
content: "Cette commande ne peut pas être utilisée en message privé.",
|
|
ephemeral: true,
|
|
});
|
|
if (process.env.OWNER && !process.env.OWNER === interaction.user.id) {
|
|
if (command.botOwnerOnly)
|
|
return interaction.reply({
|
|
content: "Cette commande est réservée au propriétaire du bot.",
|
|
ephemeral: true,
|
|
});
|
|
if (
|
|
command.permissions &&
|
|
interaction.channel.type !== 1 &&
|
|
!command.permissions.every((permission) =>
|
|
interaction.member.permissions.has(permission),
|
|
)
|
|
)
|
|
return interaction.reply({
|
|
content: "Vous n'avez pas la permission d'utiliser cette commande.",
|
|
ephemeral: true,
|
|
});
|
|
}
|
|
|
|
try {
|
|
command.executeSlash(client, interaction);
|
|
console.log(
|
|
`[CMD - SLASH] ${interaction.user.tag} | ${interaction.commandName}`,
|
|
);
|
|
} catch (error) {
|
|
console.error(
|
|
`Erreur lors de l'exécution de la commande slash '${interaction.commandName}':`,
|
|
error,
|
|
);
|
|
}
|
|
},
|
|
}; |