mirror of
https://github.com/arthur-pbty/LazyBot.git
synced 2026-06-03 15:07:29 +02:00
94 lines
3.1 KiB
JavaScript
94 lines
3.1 KiB
JavaScript
const getPrefix = require("../../fonctions/getPrefix");
|
|
|
|
module.exports = {
|
|
name: "messageCreate",
|
|
async execute(client, message) {
|
|
if (!message || !message.author) return;
|
|
if (message.author.bot) return;
|
|
if (!message.content) return;
|
|
let prefix;
|
|
if (message.channel.type === 1) {
|
|
prefix = await getPrefix(message.channel.id);
|
|
} else {
|
|
prefix = await getPrefix(message.guild.id);
|
|
}
|
|
if (!message.content.startsWith(prefix)) return;
|
|
|
|
const args = message.content.slice(prefix.length).trim().split(/ +/);
|
|
const commandName = args.shift().toLowerCase();
|
|
|
|
const command =
|
|
client.commands.get(commandName) ||
|
|
client.commands.find(
|
|
(cmd) => cmd.aliases && cmd.aliases.includes(commandName),
|
|
);
|
|
if (!command) return;
|
|
|
|
// Vérification du scope / guildCondition
|
|
if (command.scope === "guild") {
|
|
const guildId = message.guild ? message.guild.id : null;
|
|
if (!guildId)
|
|
return message
|
|
.reply({ content: "Cette commande ne peut pas être utilisée en message privé." })
|
|
.then((msg) => setTimeout(() => msg.delete(), 5000));
|
|
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 message
|
|
.reply({ content: "Cette commande est désactivée sur ce serveur." })
|
|
.then((msg) => setTimeout(() => msg.delete(), 5000));
|
|
}
|
|
}
|
|
|
|
if (command.dm !== true && message.channel.type === 1)
|
|
return message
|
|
.reply({
|
|
content: "Cette commande ne peut pas être utilisée en message privé.",
|
|
})
|
|
.then((msg) => setTimeout(() => msg.delete(), 5000));
|
|
|
|
// Vérification si la commande est réservée au propriétaire du bot
|
|
const isOwner = process.env.OWNER && process.env.OWNER === message.author.id;
|
|
|
|
if (command.botOwnerOnly && !isOwner) {
|
|
return message
|
|
.reply({
|
|
content: "Cette commande est réservée au propriétaire du bot.",
|
|
})
|
|
.then((msg) => setTimeout(() => msg.delete(), 5000));
|
|
}
|
|
|
|
// Vérification des permissions (sauf pour le propriétaire du bot)
|
|
if (
|
|
!isOwner &&
|
|
command.permissions &&
|
|
command.permissions.length > 0 &&
|
|
message.channel.type !== 1 &&
|
|
!command.permissions.every((permission) =>
|
|
message.member.permissions.has(permission)
|
|
)
|
|
) {
|
|
return message
|
|
.reply({
|
|
content: "Vous n'avez pas la permission d'utiliser cette commande.",
|
|
})
|
|
.then((msg) => setTimeout(() => msg.delete(), 5000));
|
|
}
|
|
|
|
try {
|
|
command.executePrefix(client, message, args);
|
|
console.log(`[CMD - PREFIX] ${message.author.tag} | ${commandName}`);
|
|
} catch (error) {
|
|
console.error(
|
|
`Erreur lors de l'exécution de la commande '${commandName}':`,
|
|
error,
|
|
);
|
|
}
|
|
},
|
|
}; |