add commands and events

This commit is contained in:
Tutur33
2024-02-22 22:46:34 +01:00
parent bacdf04b4d
commit 31d7e23f14
7 changed files with 122 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
module.exports = {
name: 'ping',
aliases: ['latence'],
description: 'Avoir la latence du bot.',
emote: '⏱️',
utilisation: 'ping',
category: 'utils',
async execute(message, args, client) {
message.reply('Pong !');
},
};
+24
View File
@@ -0,0 +1,24 @@
const { Events } = require("discord.js");
module.exports = {
name: Events.MessageCreate,
async execute(message, client) {
const prefix = "+";
if (message.author.bot) return;
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);
if (!command) return;
try {
command.execute(message, args);
} catch (error) {
console.error(error);
message.reply("Erreur lors de l'exécution de la commande");
}
}
};
+8
View File
@@ -0,0 +1,8 @@
const { Events, ActivityType } = require("discord.js");
module.exports = {
name: Events.ClientReady,
async execute(client) {
console.log(`le bot ${client.user.tag} est en ligne`)
}
};
+29
View File
@@ -0,0 +1,29 @@
const fs = require('fs');
const path = require('path');
module.exports = function loadEvents(client, dir) {
let count = 0;
dir = `../${dir}`
fs.readdirSync(path.join(__dirname, dir)).forEach(file => {
const filePath = path.join(__dirname, dir, file);
if (fs.statSync(filePath).isDirectory()) {
count += loadCommands(path.join(dir, file));
} else if (file.endsWith('.js')) {
try {
delete require.cache[require.resolve(filePath)];
const command = require(filePath);
client.commands.set(command.name, command);
if (command.aliases) {
command.aliases.forEach(alias => {
client.commands.set(alias, command);
});
}
count++;
} catch (error) {
console.error(`Failed to load file: ${filePath}`); // Log any errors
console.error(error);
}
}
});
return count;
}
+23
View File
@@ -0,0 +1,23 @@
const fs = require('fs');
const path = require('path');
module.exports = function loadEvents(client, dir) {
let count = 0;
dir = `../${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));
count++;
} else {
console.error(`Event ${event.name} does not have an execute method.`);
}
}
});
return count;
}
+15
View File
@@ -0,0 +1,15 @@
const { Client, IntentsBitField, Collection } = require('discord.js')
const loadEvents = require("./loadEvents");
const loadCommands = require("./loadCommands");
module.exports = function run(token) {
const client = new Client({intents: new IntentsBitField(3276799)});
client.events = new Collection();
client.commands = new Collection();
console.log(`${loadEvents(client, 'events')} events loaded`);
console.log(`${loadCommands(client, 'commands')} commands loaded`);
client.login(token);
}
+9
View File
@@ -0,0 +1,9 @@
require('dotenv').config()
const run = require("./fonctions/run");
tokens = process.env.TOKENS.split(',')
const runAsync = async () => {
Promise.all(tokens.map(token => run(token)));
};
runAsync();