diff --git a/commands/utils/ping.js b/commands/utils/ping.js new file mode 100644 index 0000000..ae826ed --- /dev/null +++ b/commands/utils/ping.js @@ -0,0 +1,9 @@ +const { MessageEmbed } = require('discord.js'); + +module.exports = { + name: 'ping', + description: 'Command to check the latency of the bot.', + async execute(message, args, client) { + message.channel.send('test'); + }, +}; \ No newline at end of file diff --git a/events/client/messageCreate.txt b/events/client/messageCreate.txt new file mode 100644 index 0000000..2074976 --- /dev/null +++ b/events/client/messageCreate.txt @@ -0,0 +1,23 @@ +module.exports = { + name: 'messageCreate', + async execute(client, message) { + const prefix = '!'; // Assurez-vous que le préfixe est défini ici aussi + + if (!message.content.startsWith(prefix) || message.author.bot) return; + + const args = message.content.slice(prefix.length).trim().split(/ +/); + const commandName = args.shift().toLowerCase(); + + // Si la commande n'existe pas, ne faites rien + if (!client.commands.has(commandName)) return; + + const command = client.commands.get(commandName); + + try { + command.execute(client, message, args); + } catch (error) { + console.error(error); + message.reply('Il y a eu une erreur lors de l\'exécution de cette commande.'); + } + }, +}; \ No newline at end of file diff --git a/events/client/ready.js b/events/client/ready.js index a827bba..4f27e8b 100644 --- a/events/client/ready.js +++ b/events/client/ready.js @@ -2,13 +2,13 @@ const { Events, ActivityType } = require("discord.js") module.exports = { name : Events.ClientReady, - async run(client) { + async execute(client) { - if (client.commands && Array.isArray(client.commands)) { - client.application.commands.set(client.commands.map(command => command.data)); - } else { - console.error('Les commandes du client sont manquantes ou mal formatées'); - } + //if (client.commands && Array.isArray(client.commands)) { + // client.application.commands.set(client.commands.map(command => command.data)); + //} else { + //console.error('Les commandes du client sont manquantes ou mal formatées'); + //} console.log(`${client.user.username} est en ligne`); }, diff --git a/loaders/loadCommands.js b/loaders/loadCommands.js index 3e968d4..454f6c5 100644 --- a/loaders/loadCommands.js +++ b/loaders/loadCommands.js @@ -25,4 +25,28 @@ module.exports = (client) => { const totalCommands = loadCommands('../commands'); console.log(`Commands => ${totalCommands} commandes préfixées chargées sur le bot`); + client.on('messageCreate', async message => { + //const botId = client.user.id; + //const guildId = message.guild.id; + //const prefix = botTokens.coins[botId].prefix; + const prefix = '!'; + if (!message.content.startsWith(prefix) || message.author.bot) return; + + const args = message.content.slice(prefix.length).trim().split(/ +/); + const commandName = args.shift().toLowerCase(); + if (!client.commands.has(commandName)) return; + const command = client.commands.get(commandName) + //|| client.commands.find(cmd => cmd.aliases && cmd.aliases.includes(commandName)); + + if (command) { + //const permissionLevel = await getPermissionLevel(message.member, client, guildId); + + //console.log(permissionLevel, permissions[command.name]) + //if (permissionLevel >= permissions[command.name]) { + command.execute(message, args, client); + //} else { + // return message.reply("Vous n'avez pas accès à cette commande."); + // } + } + }); } \ No newline at end of file diff --git a/loaders/loadEvents.js b/loaders/loadEvents.js index 54d8ee6..fc1d48a 100644 --- a/loaders/loadEvents.js +++ b/loaders/loadEvents.js @@ -2,22 +2,25 @@ const fs = require('fs'); const path = require('path'); module.exports = (client) => { - - let count = 0; - const loadEvents = (dir) => { - fs.readdirSync(path.join(__dirname, dir)).forEach(file => { - const filePath = path.join(__dirname, dir, file); - if (fs.statSync(filePath).isDirectory()) { - loadEvents(path.join(dir, file)); - } else if (file.endsWith('.js')) { - delete require.cache[require.resolve(filePath)]; - const event = require(filePath); - client.on(event.name, (...args) => event.run(...args, client)); - console.log(`Event ${event.name} loaded`); - count++; - } - }); - } - loadEvents('../events'); - console.log(`Event => ${count} chargé sur le bot`) + let count = 0; + const loadEvents = (dir) => { + fs.readdirSync(path.join(__dirname, dir)).forEach(file => { + const filePath = path.join(__dirname, dir, file); + if (fs.statSync(filePath).isDirectory()) { + loadEvents(path.join(dir, file)); + } else if (file.endsWith('.js')) { + delete require.cache[require.resolve(filePath)]; + const event = require(filePath); + if (typeof event.execute === 'function') { + client.on(event.name, (...args) => event.execute(...args, client)); + console.log(`Event ${event.name} loaded`); + count++; + } else { + console.error(`Event ${event.name} does not have an execute method.`); + } + } + }); + } + loadEvents('../events'); + console.log(`Event => ${count} chargé sur le bot`) } \ No newline at end of file diff --git a/main.js b/main.js index 0e37468..701de86 100644 --- a/main.js +++ b/main.js @@ -7,6 +7,9 @@ const client = new Client({intents: new IntentsBitField(3276799)}); client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); }); +client.events = new Collection(); +client.commands = new Collection(); +client.snipes = new Collection(); (async () => { await loadCommands(client); await loadEvents(client);