add perfect help commande

This commit is contained in:
Tutur33
2024-02-15 02:24:42 +01:00
parent cd03559a98
commit 3e7020cd00
36 changed files with 91 additions and 24 deletions
+1
View File
@@ -1,6 +1,7 @@
module.exports = { module.exports = {
name: 'bunker', name: 'bunker',
description: 'Activer le bot bunker', description: 'Activer le bot bunker',
category: 'antiraid',
async execute(message, args, client) { async execute(message, args, client) {
const guild = message.guild; const guild = message.guild;
const dangerousPermissions = [ const dangerousPermissions = [
+1
View File
@@ -3,6 +3,7 @@ const { PermissionsBitField } = require('discord.js');
module.exports = { module.exports = {
name: 'invite', name: 'invite',
description: 'Crée un lien d\'invitation pour un serveur spécifique', description: 'Crée un lien d\'invitation pour un serveur spécifique',
category: 'botcontrol',
async execute(message, args, client) { async execute(message, args, client) {
// Vérifie si l'ID du serveur a été fourni // Vérifie si l'ID du serveur a été fourni
if (!args[0]) { if (!args[0]) {
+1
View File
@@ -3,6 +3,7 @@ const { ActivityType } = require("discord.js");
module.exports = { module.exports = {
name: 'listen', name: 'listen',
description: 'Changer le status du bot en listen', description: 'Changer le status du bot en listen',
category: 'botcontrol',
async execute(message, args, client) { async execute(message, args, client) {
const streamText = args.join(' ') || 'Streaming'; const streamText = args.join(' ') || 'Streaming';
const streamURL = 'https://www.twitch.tv/valou336_yt'; const streamURL = 'https://www.twitch.tv/valou336_yt';
+1
View File
@@ -3,6 +3,7 @@ const { ActivityType } = require("discord.js");
module.exports = { module.exports = {
name: 'play', name: 'play',
description: 'Changer le status du bot en play', description: 'Changer le status du bot en play',
category: 'botcontrol',
async execute(message, args, client) { async execute(message, args, client) {
const streamText = args.join(' ') || 'Streaming'; const streamText = args.join(' ') || 'Streaming';
const streamURL = 'https://www.twitch.tv/valou336_yt'; const streamURL = 'https://www.twitch.tv/valou336_yt';
+1
View File
@@ -1,6 +1,7 @@
module.exports = { module.exports = {
name: 'say', name: 'say',
description: 'Fait dire quelque chose au bot', description: 'Fait dire quelque chose au bot',
category: 'botcontrol',
async execute(message, args) { async execute(message, args) {
// Vérifie si un message a été spécifié // Vérifie si un message a été spécifié
if (args.length === 0) { if (args.length === 0) {
+1
View File
@@ -5,6 +5,7 @@ const path = require('path');
module.exports = { module.exports = {
name: 'servers', name: 'servers',
description: 'Liste les serveur du bot', description: 'Liste les serveur du bot',
category: 'botcontrol',
async execute(message, args, client) { async execute(message, args, client) {
const guilds = Array.from(client.guilds.cache.values()).map((guild, index) => `${index + 1}. ${guild.name} : ${guild.id}`).join("\n\n"); const guilds = Array.from(client.guilds.cache.values()).map((guild, index) => `${index + 1}. ${guild.name} : ${guild.id}`).join("\n\n");
+1
View File
@@ -1,6 +1,7 @@
module.exports = { module.exports = {
name: 'set', name: 'set',
description: 'Modifier divers paramètres du bot.', description: 'Modifier divers paramètres du bot.',
category: 'botcontrol',
async execute(message, args, client) { async execute(message, args, client) {
// Vérifiez si l'utilisateur a fourni suffisamment d'arguments // Vérifiez si l'utilisateur a fourni suffisamment d'arguments
if (args.length < 2) { if (args.length < 2) {
+1
View File
@@ -3,6 +3,7 @@ const { ActivityType } = require("discord.js");
module.exports = { module.exports = {
name: 'stream', name: 'stream',
description: 'Mettre le bot en stream', description: 'Mettre le bot en stream',
category: 'botcontrol',
async execute(message, args, client) { async execute(message, args, client) {
const streamText = args.join(' ') || 'Streaming'; const streamText = args.join(' ') || 'Streaming';
const streamURL = 'https://www.twitch.tv/valou336_yt'; const streamURL = 'https://www.twitch.tv/valou336_yt';
+1
View File
@@ -3,6 +3,7 @@ const { ActivityType } = require("discord.js");
module.exports = { module.exports = {
name: 'watch', name: 'watch',
description: 'Changer le status du bot en watch', description: 'Changer le status du bot en watch',
category: 'botcontrol',
async execute(message, args, client) { async execute(message, args, client) {
const streamText = args.join(' ') || 'Streaming'; const streamText = args.join(' ') || 'Streaming';
const streamURL = 'https://www.twitch.tv/valou336_yt'; const streamURL = 'https://www.twitch.tv/valou336_yt';
+1
View File
@@ -3,6 +3,7 @@ const { TwoZeroFourEight } = require('discord-gamecord');
module.exports = { module.exports = {
name: '2048', name: '2048',
description: 'Jouer au jeu 2048', description: 'Jouer au jeu 2048',
category: 'game',
async execute(message, args) { async execute(message, args) {
const Game = new TwoZeroFourEight({ const Game = new TwoZeroFourEight({
message: message, message: message,
+1
View File
@@ -1,6 +1,7 @@
module.exports = { module.exports = {
name: '8ball', name: '8ball',
description: 'Posez une question à la boule magique 8', description: 'Posez une question à la boule magique 8',
category: 'game',
execute(message, args) { execute(message, args) {
if (!args[0]) { if (!args[0]) {
return message.reply("Veuillez poser une question."); return message.reply("Veuillez poser une question.");
+1
View File
@@ -1,6 +1,7 @@
module.exports = { module.exports = {
name: 'catsay', name: 'catsay',
description: 'Faire parler les chat', description: 'Faire parler les chat',
category: 'game',
async execute( message, args) { async execute( message, args) {
message.delete() message.delete()
+1
View File
@@ -3,6 +3,7 @@ const { Minesweeper } = require('discord-gamecord');
module.exports = { module.exports = {
name: 'demineur', name: 'demineur',
description: 'Jouer à un jeu démineur', description: 'Jouer à un jeu démineur',
category: 'game',
async execute(message, args) { async execute(message, args) {
const Game = new Minesweeper({ const Game = new Minesweeper({
message: message, message: message,
+1
View File
@@ -29,6 +29,7 @@ const sentences = [
module.exports = { module.exports = {
name: 'fasttype', name: 'fasttype',
description: 'Jouer à un jeu de vitesse de frappe', description: 'Jouer à un jeu de vitesse de frappe',
category: 'game',
async execute(message, args) { async execute(message, args) {
const randomSentence = sentences[Math.floor(Math.random() * sentences.length)]; const randomSentence = sentences[Math.floor(Math.random() * sentences.length)];
+1
View File
@@ -3,6 +3,7 @@ const { FindEmoji } = require('discord-gamecord');
module.exports = { module.exports = {
name: 'findemoji', name: 'findemoji',
description: 'Jouer au jeu Trouver Emoji', description: 'Jouer au jeu Trouver Emoji',
category: 'game',
async execute(message, args) { async execute(message, args) {
const Game = new FindEmoji({ const Game = new FindEmoji({
message: message, message: message,
+1
View File
@@ -3,6 +3,7 @@ const { Flood } = require('discord-gamecord');
module.exports = { module.exports = {
name: 'flood', name: 'flood',
description: 'Jouer au jeu Flood', description: 'Jouer au jeu Flood',
category: 'game',
async execute(message, args) { async execute(message, args) {
const Game = new Flood({ const Game = new Flood({
message: message, message: message,
+1
View File
@@ -3,6 +3,7 @@ const { GuessThePokemon } = require('discord-gamecord');
module.exports = { module.exports = {
name: 'guesspokemon', name: 'guesspokemon',
description: 'Jouer au jeu trouver le pokemon', description: 'Jouer au jeu trouver le pokemon',
category: 'game',
async execute(message, args) { async execute(message, args) {
const Game = new GuessThePokemon({ const Game = new GuessThePokemon({
message: message, message: message,
+1
View File
@@ -3,6 +3,7 @@ const { TicTacToe } = require('discord-gamecord');
module.exports = { module.exports = {
name: 'morpion', name: 'morpion',
description: 'Jouer à morpion', description: 'Jouer à morpion',
category: 'game',
async execute(message, args) { async execute(message, args) {
if (!message.mentions.members.first()) if (!message.mentions.members.first())
return message.reply("Veuillez mentionner un adversaire"); return message.reply("Veuillez mentionner un adversaire");
+1
View File
@@ -28,6 +28,7 @@ const words = [
module.exports = { module.exports = {
name: 'pendu', name: 'pendu',
description: 'Jouer à pendu', description: 'Jouer à pendu',
category: 'game',
async execute(message, args) { async execute(message, args) {
const game = new Hangman({ const game = new Hangman({
message: message, message: message,
+1
View File
@@ -3,6 +3,7 @@ const choices = ["pierre", "papier", "ciseaux"];
module.exports = { module.exports = {
name: 'pfc', name: 'pfc',
description: 'Jouer à pierre-papier-ciseaux', description: 'Jouer à pierre-papier-ciseaux',
category: 'game',
async execute(message, args) { async execute(message, args) {
const userChoice = args[0]; const userChoice = args[0];
const botChoice = choices[Math.floor(Math.random() * choices.length)]; const botChoice = choices[Math.floor(Math.random() * choices.length)];
+1
View File
@@ -4,6 +4,7 @@ module.exports = {
name: 'puissance4', name: 'puissance4',
usage: 'puissance4', usage: 'puissance4',
description: 'Lancer une partis de puissance4', description: 'Lancer une partis de puissance4',
category: 'game',
async execute(message) { async execute(message) {
if (!message.mentions || !message.mentions.members.first()) if (!message.mentions || !message.mentions.members.first())
+1
View File
@@ -3,6 +3,7 @@ const { Slots } = require('discord-gamecord');
module.exports = { module.exports = {
name: 'slot', name: 'slot',
description: 'Jouer au jeu Slot', description: 'Jouer au jeu Slot',
category: 'game',
async execute(message, args) { async execute(message, args) {
const Game = new Slots({ const Game = new Slots({
message: message, message: message,
+1
View File
@@ -4,6 +4,7 @@ module.exports = {
name: 'snake', name: 'snake',
usage: 'snake', usage: 'snake',
description: 'Lancer une partis de snake', description: 'Lancer une partis de snake',
category: 'game',
async execute(message, args) { async execute(message, args) {
new Snake({ new Snake({
+1
View File
@@ -50,6 +50,7 @@ const shortWords = words.filter(word => word.length === 5);
module.exports = { module.exports = {
name: 'wordle', name: 'wordle',
description: 'Jouer à Wordle', description: 'Jouer à Wordle',
category: 'game',
async execute(message, args) { async execute(message, args) {
const Game = new Wordle({ const Game = new Wordle({
message: message, message: message,
+1
View File
@@ -3,6 +3,7 @@ const axios = require('axios');
module.exports = { module.exports = {
name: 'create', name: 'create',
description: 'Crée un emoji', description: 'Crée un emoji',
category: 'gestion',
async execute(message, args, client) { async execute(message, args, client) {
if (!args.length) { if (!args.length) {
return message.channel.send({ content: "Veuillez spécifier un émoji." }); return message.channel.send({ content: "Veuillez spécifier un émoji." });
+1
View File
@@ -1,6 +1,7 @@
module.exports = { module.exports = {
name: 'dm', name: 'dm',
description: 'Envoie un message privé à un utilisateur', description: 'Envoie un message privé à un utilisateur',
category: 'gestion',
async execute(message, args) { async execute(message, args) {
// Vérifie si un utilisateur a été mentionné // Vérifie si un utilisateur a été mentionné
const user = message.mentions.users.first(); const user = message.mentions.users.first();
+1
View File
@@ -4,6 +4,7 @@ const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder } = require('dis
module.exports = { module.exports = {
name: 'embed', name: 'embed',
description: 'Crée un embed customisable', description: 'Crée un embed customisable',
category: 'gestion',
async execute(message, args, client) { async execute(message, args, client) {
const embed = new EmbedBuilder(); const embed = new EmbedBuilder();
+1
View File
@@ -3,6 +3,7 @@ const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder } = require('dis
module.exports = { module.exports = {
name: 'massiverole', name: 'massiverole',
description: 'Donne un rôle à tous les membres du serveur', description: 'Donne un rôle à tous les membres du serveur',
category: 'gestion',
async execute(message, args) { async execute(message, args) {
// Vérifie si un rôle a été mentionné // Vérifie si un rôle a été mentionné
const role = message.mentions.roles.first(); const role = message.mentions.roles.first();
+1
View File
@@ -2,6 +2,7 @@ const { PermissionsBitField} = require("discord.js")
module.exports = { module.exports = {
name: 'renew', name: 'renew',
description: 'Renew un salon', description: 'Renew un salon',
category: 'gestion',
async execute(message, args, client) { async execute(message, args, client) {
const guild = message.guild; const guild = message.guild;
const channel = message.mentions.channels.first() || message.channel; const channel = message.mentions.channels.first() || message.channel;
+1
View File
@@ -3,6 +3,7 @@ const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder } = require('dis
module.exports = { module.exports = {
name: 'unmassiverole', name: 'unmassiverole',
description: 'Retire un rôle à tous les membres du serveur', description: 'Retire un rôle à tous les membres du serveur',
category: 'gestion',
async execute(message, args, client) { async execute(message, args, client) {
// Vérifie si un rôle a été mentionné // Vérifie si un rôle a été mentionné
const role = message.mentions.roles.first(); const role = message.mentions.roles.first();
+56 -24
View File
@@ -2,47 +2,79 @@ const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require("di
module.exports = { module.exports = {
name: 'help', name: 'help',
description: 'Affiche la liste des commandes', description: 'Affiche la liste des commandes',
category: 'other',
emote: '📚',
utilisation: '<commande>',
async execute(message, args, client) { async execute(message, args, client) {
const embed = new EmbedBuilder() const categories = {
.setColor('#0099ff') antiraid: [],
.setTitle('Aide') botcontrol: [],
.setDescription('Sélectionnez une catégorie pour voir les commandes correspondantes.'); game: [],
gestion: [],
utils: [],
other: [],
// Ajoutez plus de catégories si nécessaire
};
const embedCat1 = new EmbedBuilder() // Organisez les commandes par catégorie
for (const command of client.commands.values()) {
if (command.category) {
categories[command.category].push({ name: command.name, description: command.description, emote: command.emote, utilisation: command.utilisation});
}
}
let description = 'Sélectionnez une catégorie parmi les options ci-dessous pour obtenir de l\'aide sur les commandes correspondantes.\n\n';
for (const [category, commands] of Object.entries(categories)) {
description += `**Catégorie ${category}**\n`;
description += commands.length > 0 ? '> ' + commands.map(command => `\`${command.name}\``).join(', ') : '> Aucune commande dans cette catégorie';
description += '\n\n';
}
const embeds = {
home: new EmbedBuilder()
.setColor('#0099ff')
.setTitle('📚 Information')
.setDescription(description)
.setThumbnail(message.guild.iconURL())
};
// Créez un embed pour chaque catégorie
for (const [category, commands] of Object.entries(categories)) {
let description;
if (commands.length > 0) {
description = commands.map(command => `${command.emote ? ` ${command.emote}` : '🔧'} \`+${command.name}${command.utilisation ? ` ${command.utilisation}` : ''}\`\n ${command.description}`).join('\n');
} else {
description = 'Aucune commande dans cette catégorie.';
}
embeds[category] = new EmbedBuilder()
.setColor('#0099ff') .setColor('#0099ff')
.setTitle('Catégorie 1') .setTitle(`Catégorie ${category}`)
.setDescription('Commandes de la catégorie 1'); .setDescription(description);
}
const embedCat2 = new EmbedBuilder()
.setColor('#0099ff')
.setTitle('Catégorie 2')
.setDescription('Commandes de la catégorie 2');
const menu = new StringSelectMenuBuilder() const menu = new StringSelectMenuBuilder()
.setCustomId('help_menu') .setCustomId('help_menu')
.setPlaceholder('Sélectionnez une catégorie') .setPlaceholder('Sélectionnez une catégorie')
.addOptions([ .addOptions([
{ label: 'Accueil', value: 'home' }, { label: 'Accueil', value: 'home' },
{ label: 'Catégorie 1', value: 'cat1' }, ...Object.keys(categories).map(category => ({ label: `Catégorie ${category}`, value: category })),
{ label: 'Catégorie 2', value: 'cat2' },
// Ajoutez plus d'options pour chaque catégorie de commandes
]); ]);
const row = new ActionRowBuilder() const row = new ActionRowBuilder()
.addComponents(menu); .addComponents(menu);
const sentMessage = await message.reply({ embeds: [embed], components: [row] }); const sentMessage = await message.reply({ embeds: [embeds.home], components: [row] });
const filter = i => i.customId === 'help_menu' && i.user.id === message.author.id; const filter = i => i.customId === 'help_menu' && i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 }) const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 });
collector.on('collect', async (interaction) => { collector.on('collect', async (interaction) => {
if (interaction.values[0] === 'home') { await interaction.update({ embeds: [embeds[interaction.values[0]]] });
await interaction.update({ embeds: [embed] });
} else if (interaction.values[0] === 'cat1') {
await interaction.update({ embeds: [embedCat1] });
} else if (interaction.values[0] === 'cat2') {
await interaction.update({ embeds: [embedCat2] });
}
}); });
collector.on('end', () => {
sentMessage.edit({ components: [] });
});
}, },
}; };
+1
View File
@@ -2,6 +2,7 @@ const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require(
module.exports = { module.exports = {
name: 'avatar', name: 'avatar',
description: 'Affiche l\'avatar d\'un utilisateur', description: 'Affiche l\'avatar d\'un utilisateur',
category: 'utils',
async execute(message, args, client) { async execute(message, args, client) {
let user; let user;
if (message.mentions.users.size > 0) { if (message.mentions.users.size > 0) {
+1
View File
@@ -3,6 +3,7 @@ const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
module.exports = { module.exports = {
name: 'ping', name: 'ping',
description: 'Command to check the latency of the bot.', description: 'Command to check the latency of the bot.',
category: 'utils',
async execute(message, args, client) { async execute(message, args, client) {
const ping = new ButtonBuilder() const ping = new ButtonBuilder()
.setCustomId('confirm') .setCustomId('confirm')
+1
View File
@@ -2,6 +2,7 @@ const { EmbedBuilder } = require("discord.js")
module.exports = { module.exports = {
name: 'serverinfo', name: 'serverinfo',
description: 'Affiche les informations sur le serveur', description: 'Affiche les informations sur le serveur',
category: 'utils',
async execute(message, args, client) { async execute(message, args, client) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setAuthor({name: `${message.guild.name}`, iconURL: message.guild.iconURL({dynamic : true})}) .setAuthor({name: `${message.guild.name}`, iconURL: message.guild.iconURL({dynamic : true})})
+1
View File
@@ -2,6 +2,7 @@ const { EmbedBuilder, User } = require("discord.js")
module.exports = { module.exports = {
name: 'snipe', name: 'snipe',
description: 'Affiche le dernier message supprimé dans le salon', description: 'Affiche le dernier message supprimé dans le salon',
category: 'utils',
async execute(message, args, client) { async execute(message, args, client) {
// Récupère le dernier message supprimé du salon // Récupère le dernier message supprimé du salon
let snipe = client.snipes.get(message.channel.id); let snipe = client.snipes.get(message.channel.id);
+1
View File
@@ -2,6 +2,7 @@ const { EmbedBuilder } = require("discord.js")
module.exports = { module.exports = {
name: 'userinfo', name: 'userinfo',
description: 'Affiche les informations sur un utilisateur', description: 'Affiche les informations sur un utilisateur',
category: 'utils',
async execute(message, args, client) { async execute(message, args, client) {
let user; let user;
if (args.length > 0) { if (args.length > 0) {