From fb44f67fc9cd9bc50044644a67881fbf4f080282 Mon Sep 17 00:00:00 2001 From: arthur Date: Mon, 17 Jun 2024 17:48:55 +0200 Subject: [PATCH 1/3] ajout du prefix dans le help --- commands/bot control/help.js | 24 +++++++++++++----------- fonctions/getPrefix.js | 12 ++++++++++++ 2 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 fonctions/getPrefix.js diff --git a/commands/bot control/help.js b/commands/bot control/help.js index 60bd4af..77737e2 100644 --- a/commands/bot control/help.js +++ b/commands/bot control/help.js @@ -1,7 +1,8 @@ const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const embedColor = require('../../fonctions/embedColor.js'); +const getPrefix = require('../../fonctions/getPrefix.js'); -function commandsList (client, category) { +function commandsList (client, category, prefix) { const casinoCommands = client.commands.filter(command => command.category === category).sort((a, b) => a.name.localeCompare(b.name)); const uniqueCommands = new Map(); @@ -11,7 +12,7 @@ function commandsList (client, category) { let commandsList = ''; uniqueCommands.forEach((command, name) => { - commandsList += `> ${command.emote} \`${name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> ┖ ${command.description}\n\n`; + commandsList += `> ${command.emote} \`${prefix}${name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> ┖ ${command.description}\n\n`; }); return commandsList; @@ -25,10 +26,11 @@ module.exports = { permission: 0, async execute(message, args, client) { + const prefix = await getPrefix(message.guild.id); const embedPage1 = new EmbedBuilder() .setTitle('📚 ・Information') .setThumbnail(message.guild.iconURL()) - .setDescription(`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez &help \n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`) + .setDescription(`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help \n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); @@ -67,7 +69,7 @@ module.exports = { const embedPage2 = new EmbedBuilder() .setTitle('💰・Casino') .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'casino')) + .setDescription(commandsList(client, 'casino', prefix)) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); @@ -77,7 +79,7 @@ module.exports = { const embedPage3 = new EmbedBuilder() .setTitle('🎲・Jeux') .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'jeux')) + .setDescription(commandsList(client, 'jeux', prefix)) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); @@ -87,7 +89,7 @@ module.exports = { const embedPage4 = new EmbedBuilder() .setTitle('🛍️・Achats') .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'achats')) + .setDescription(commandsList(client, 'achats', prefix)) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); @@ -97,7 +99,7 @@ module.exports = { const embedPage5 = new EmbedBuilder() .setTitle('🏭・Metier et capacité') .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'jobs')) + .setDescription(commandsList(client, 'jobs', prefix)) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); @@ -107,7 +109,7 @@ module.exports = { const embedPage6 = new EmbedBuilder() .setTitle('💼・Teams') .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'teams')) + .setDescription(commandsList(client, 'teams', prefix)) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 6/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); @@ -117,7 +119,7 @@ module.exports = { const embedPage7 = new EmbedBuilder() .setTitle('🛡️・Teams administration') .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'teams admin')) + .setDescription(commandsList(client, 'teams admin', prefix)) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 7/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); @@ -137,7 +139,7 @@ module.exports = { const embedPage9 = new EmbedBuilder() .setTitle('👑・Gestion') .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'gestion')) + .setDescription(commandsList(client, 'gestion', prefix)) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); @@ -147,7 +149,7 @@ module.exports = { const embedPage10 = new EmbedBuilder() .setTitle('👑・Bot control') .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'bot control')) + .setDescription(commandsList(client, 'bot control', prefix)) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 10/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); diff --git a/fonctions/getPrefix.js b/fonctions/getPrefix.js new file mode 100644 index 0000000..5b87cbc --- /dev/null +++ b/fonctions/getPrefix.js @@ -0,0 +1,12 @@ +const db = require('./database.js'); + +module.exports = async function getPrefix(serverId) { + const prefix = await new Promise((resolve, reject) => { + db.get(`SELECT * FROM config WHERE guildId = ? AND name = ?`, [serverId, 'prefix'], (err, row) => { + if (err) reject(err); + resolve(row); + }); + }); + + return prefix ? prefix.value : '&'; +} \ No newline at end of file From 703c6115d88dadaff8c6f1327fbbaf181755356d Mon Sep 17 00:00:00 2001 From: arthur Date: Mon, 17 Jun 2024 18:00:44 +0200 Subject: [PATCH 2/3] ajout de largument commande dans la commande help --- commands/bot control/help.js | 263 +++++++++++++++++++---------------- 1 file changed, 145 insertions(+), 118 deletions(-) diff --git a/commands/bot control/help.js b/commands/bot control/help.js index 77737e2..ccbb8d7 100644 --- a/commands/bot control/help.js +++ b/commands/bot control/help.js @@ -26,140 +26,167 @@ module.exports = { permission: 0, async execute(message, args, client) { - const prefix = await getPrefix(message.guild.id); - const embedPage1 = new EmbedBuilder() - .setTitle('📚 ・Information') - .setThumbnail(message.guild.iconURL()) - .setDescription(`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help \n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - const leftButton = new ButtonBuilder() - .setCustomId('left') - .setLabel('◀') - .setStyle(ButtonStyle.Primary); + if (args[0] && client.commands.has(args[0])) { + const command = client.commands.get(args[0]); + const prefix = await getPrefix(message.guild.id); + const embed = new EmbedBuilder() + .setTitle(`📚・${command.name}`) + .setThumbnail(message.guild.iconURL()) + .setDescription(`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> **Alias :** ${command.aliases.join(', ') || 'Aucun'}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - const rightButton = new ButtonBuilder() - .setCustomId('right') - .setLabel('▶') - .setStyle(ButtonStyle.Primary); + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + } else { + if (args[0]) { + const embed = new EmbedBuilder() + .setTitle('❌・Commande inconnue') + .setDescription('La commande que vous avez demandée n\'existe pas. Nous vous invitons à vérifier l\'orthographe dans le help si dessous et à réessayer.') + .setColor(await embedColor(message.author.id, message.guild.id)) - const row = new ActionRowBuilder() - .addComponents(leftButton, rightButton); + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + } + const prefix = await getPrefix(message.guild.id); + const embedPage1 = new EmbedBuilder() + .setTitle('📚 ・Information') + .setThumbnail(message.guild.iconURL()) + .setDescription(`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help \n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + + const leftButton = new ButtonBuilder() + .setCustomId('left') + .setLabel('◀') + .setStyle(ButtonStyle.Primary); - const messageEmbed = await message.reply({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } }); + const rightButton = new ButtonBuilder() + .setCustomId('right') + .setLabel('▶') + .setStyle(ButtonStyle.Primary); - const filter = i => i.user.id === message.author.id; - const collector = message.channel.createMessageComponentCollector({ filter, time: 90000 }); + const row = new ActionRowBuilder() + .addComponents(leftButton, rightButton); - let page = 1; - collector.on('collect', async i => { - if (i.customId === 'left') { - page--; - if (page < 1) page = 10; - } else if (i.customId === 'right') { - page++; - if (page > 10) page = 1; + let messageEmbed; + if (args[0]) { + messageEmbed = await message.channel.send({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } }); + } else { + messageEmbed = await message.reply({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } }); } - if (page === 1) { - i.update({ embeds: [embedPage1], components: [row] }); - } else if (page === 2) { - const embedPage2 = new EmbedBuilder() - .setTitle('💰・Casino') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'casino', prefix)) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + const filter = i => i.user.id === message.author.id; + const collector = message.channel.createMessageComponentCollector({ filter, time: 90000 }); - i.update({ embeds: [embedPage2], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 3) { - const embedPage3 = new EmbedBuilder() - .setTitle('🎲・Jeux') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'jeux', prefix)) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + let page = 1; + collector.on('collect', async i => { + if (i.customId === 'left') { + page--; + if (page < 1) page = 10; + } else if (i.customId === 'right') { + page++; + if (page > 10) page = 1; + } - i.update({ embeds: [embedPage3], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 4) { - const embedPage4 = new EmbedBuilder() - .setTitle('🛍️・Achats') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'achats', prefix)) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + if (page === 1) { + i.update({ embeds: [embedPage1], components: [row] }); + } else if (page === 2) { + const embedPage2 = new EmbedBuilder() + .setTitle('💰・Casino') + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, 'casino', prefix)) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - i.update({ embeds: [embedPage4], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 5) { - const embedPage5 = new EmbedBuilder() - .setTitle('🏭・Metier et capacité') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'jobs', prefix)) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + i.update({ embeds: [embedPage2], components: [row], allowedMentions: { repliedUser: false } }); + } else if (page === 3) { + const embedPage3 = new EmbedBuilder() + .setTitle('🎲・Jeux') + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, 'jeux', prefix)) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - i.update({ embeds: [embedPage5], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 6) { - const embedPage6 = new EmbedBuilder() - .setTitle('💼・Teams') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'teams', prefix)) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 6/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + i.update({ embeds: [embedPage3], components: [row], allowedMentions: { repliedUser: false } }); + } else if (page === 4) { + const embedPage4 = new EmbedBuilder() + .setTitle('🛍️・Achats') + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, 'achats', prefix)) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - i.update({ embeds: [embedPage6], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 7) { - const embedPage7 = new EmbedBuilder() - .setTitle('🛡️・Teams administration') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'teams admin', prefix)) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 7/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + i.update({ embeds: [embedPage4], components: [row], allowedMentions: { repliedUser: false } }); + } else if (page === 5) { + const embedPage5 = new EmbedBuilder() + .setTitle('🏭・Metier et capacité') + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, 'jobs', prefix)) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - i.update({ embeds: [embedPage7], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 8) { - const embedPage8 = new EmbedBuilder() - .setTitle('🤝・Alliance') - .setThumbnail(message.guild.iconURL()) - .setDescription(`page 8`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 8/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + i.update({ embeds: [embedPage5], components: [row], allowedMentions: { repliedUser: false } }); + } else if (page === 6) { + const embedPage6 = new EmbedBuilder() + .setTitle('💼・Teams') + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, 'teams', prefix)) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 6/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - i.update({ embeds: [embedPage8], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 9) { - const embedPage9 = new EmbedBuilder() - .setTitle('👑・Gestion') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'gestion', prefix)) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + i.update({ embeds: [embedPage6], components: [row], allowedMentions: { repliedUser: false } }); + } else if (page === 7) { + const embedPage7 = new EmbedBuilder() + .setTitle('🛡️・Teams administration') + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, 'teams admin', prefix)) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 7/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - i.update({ embeds: [embedPage9], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 10) { - const embedPage10 = new EmbedBuilder() - .setTitle('👑・Bot control') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'bot control', prefix)) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Page 10/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + i.update({ embeds: [embedPage7], components: [row], allowedMentions: { repliedUser: false } }); + } else if (page === 8) { + const embedPage8 = new EmbedBuilder() + .setTitle('🤝・Alliance') + .setThumbnail(message.guild.iconURL()) + .setDescription(`page 8`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 8/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - i.update({ embeds: [embedPage10], components: [row], allowedMentions: { repliedUser: false } }); - } - }); + i.update({ embeds: [embedPage8], components: [row], allowedMentions: { repliedUser: false } }); + } else if (page === 9) { + const embedPage9 = new EmbedBuilder() + .setTitle('👑・Gestion') + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, 'gestion', prefix)) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - collector.on('end', () => { - messageEmbed.edit({ components: [], allowedMentions: { repliedUser: false } }) - }); + i.update({ embeds: [embedPage9], components: [row], allowedMentions: { repliedUser: false } }); + } else if (page === 10) { + const embedPage10 = new EmbedBuilder() + .setTitle('👑・Bot control') + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, 'bot control', prefix)) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ text: `Page 10/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + + i.update({ embeds: [embedPage10], components: [row], allowedMentions: { repliedUser: false } }); + } + }); + + collector.on('end', () => { + messageEmbed.edit({ components: [], allowedMentions: { repliedUser: false } }) + }); + } } }; \ No newline at end of file From 8860e85bea5610714ddfa157189081adaeaddc7e Mon Sep 17 00:00:00 2001 From: arthur Date: Mon, 17 Jun 2024 18:04:41 +0200 Subject: [PATCH 3/3] Corrige Deprecation Warning: BaseInteraction#isSelectMenu() --- commands/achats/shop.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/achats/shop.js b/commands/achats/shop.js index c0002de..3d72bcb 100644 --- a/commands/achats/shop.js +++ b/commands/achats/shop.js @@ -36,7 +36,7 @@ module.exports = { message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); client.on('interactionCreate', async (interaction) => { - if (!interaction.isSelectMenu()) return; + if (!interaction.isStringSelectMenu()) return; if (interaction.customId === 'shop') { const selected = interaction.values[0];