mirror of
https://github.com/arthur-pbty/gestion-perso.git
synced 2026-06-18 05:39:56 +02:00
add commands and events
This commit is contained in:
@@ -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 !');
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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`)
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user