Files
LazyBot/app/events/executeCommands/prefix.js
T
Arthur Puechberty 7d706b4d79 add economi system
2026-01-17 18:52:16 +01:00

86 lines
2.8 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));
if (process.env.OWNER && !process.env.OWNER === message.author.id) {
if (command.botOwnerOnly)
return message
.reply({
content: "Cette commande est réservée au propriétaire du bot.",
})
.then((msg) => setTimeout(() => msg.delete(), 5000));
if (
command.permissions &&
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,
);
}
},
};