UNPKG

dellusofbot

Version:

💋💖crĂ©e ton propre bot discord simplement en js đŸ’–đŸ€ - package de retour en dĂ©veloppement

134 lines (108 loc) ‱ 4.43 kB
<old_str>const Discord = require('discord.js'); const client = new Discord.Client(); function gestionnaire(BotPrefix) { const fs = require('fs'); client.commands = new Discord.Collection(); const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js')); for (const file of commandFiles) { const command = require(`./commands/${file}`); client.commands.set(command.name, command); } client.on('message', message => { if (!message.content.startsWith(BotPrefix) || message.author.bot) return; const args = message.content.slice(BotPrefix.length).split(/ +/); const commandName = args.shift().toLowerCase(); if (!client.commands.has(commandName)) { // Commande non trouvĂ©e, on ignore silencieusement return; } const command = client.commands.get(commandName); try { command.execute(message, args); } catch (error) { console.error(error); message.reply('❌ Une erreur est survenue lors de l\'exĂ©cution de la commande ❌'); } }); } module.exports = gestion</old_str> <new_str>const Discord = require('discord.js'); const fs = require('fs'); const path = require('path'); function gestionnaire(client, BotPrefix) { client.commands = new Discord.Collection(); client.cooldowns = new Discord.Collection(); // Chargement des commandes avec gestion d'erreurs try { if (!fs.existsSync('./commands')) { fs.mkdirSync('./commands'); console.log('📁 Dossier commands créé'); } const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js')); for (const file of commandFiles) { try { const filePath = path.join('./commands', file); delete require.cache[require.resolve(filePath)]; // Clear cache const command = require(filePath); if (command.name) { client.commands.set(command.name, command); console.log(`✅ Commande ${command.name} chargĂ©e`); } else { console.warn(`⚠ La commande ${file} n'a pas de propriĂ©tĂ© 'name'`); } } catch (error) { console.error(`❌ Erreur lors du chargement de ${file}:`, error); } } } catch (error) { console.error('❌ Erreur lors du chargement des commandes:', error); } client.on('message', message => { if (!message.content.startsWith(BotPrefix) || message.author.bot) return; const args = message.content.slice(BotPrefix.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) { // Commande non trouvĂ©e, on ignore silencieusement return; } // VĂ©rification des permissions if (command.permissions) { const authorPerms = message.channel.permissionsFor(message.author); if (!authorPerms || !authorPerms.has(command.permissions)) { return message.reply('❌ Vous n\'avez pas les permissions nĂ©cessaires pour cette commande'); } } // SystĂšme de cooldown if (command.cooldown) { const now = Date.now(); const timestamps = client.cooldowns.get(command.name) || new Discord.Collection(); const cooldownAmount = command.cooldown * 1000; if (timestamps.has(message.author.id)) { const expirationTime = timestamps.get(message.author.id) + cooldownAmount; if (now < expirationTime) { const timeLeft = (expirationTime - now) / 1000; return message.reply(`⏰ Veuillez attendre ${timeLeft.toFixed(1)} secondes avant de rĂ©utiliser cette commande`); } } timestamps.set(message.author.id, now); client.cooldowns.set(command.name, timestamps); } // VĂ©rification des arguments requis if (command.args && !args.length) { let reply = `❌ Cette commande nĂ©cessite des arguments, ${message.author}!`; if (command.usage) { reply += `\nUtilisation: \`${BotPrefix}${command.name} ${command.usage}\``; } return message.channel.send(reply); } try { command.execute(message, args, client); } catch (error) { console.error(`❌ Erreur lors de l'exĂ©cution de ${command.name}:`, error); message.reply('❌ Une erreur est survenue lors de l\'exĂ©cution de la commande'); } }); } module.exports = gestionnaire;</new_str>