From 6e5f371801577e6ed672787516d9c44fd8b0e06e Mon Sep 17 00:00:00 2001 From: arthur Date: Mon, 24 Jun 2024 00:32:05 +0200 Subject: [PATCH] format all file --- README.md | 1 + commands/Alliance/Acreate.js | 275 +++++--- commands/Alliance/Adelete.js | 207 ++++-- commands/Alliance/Adep.js | 147 ++-- commands/Alliance/Arep.js | 184 +++-- commands/Alliance/Awithdraw.js | 220 ++++-- commands/Alliance/alliance.js | 86 ++- commands/achats/embed.js | 363 ++++++---- commands/achats/shop.js | 316 +++++---- commands/achats/tshop.js | 222 +++--- commands/bot control/blacklistAdd.js | 43 +- commands/bot control/blacklistRemove.js | 43 +- commands/bot control/help.js | 482 ++++++++----- commands/bot control/ping.js | 89 +-- commands/bot control/say.js | 22 +- commands/bot control/sayMorse.js | 94 +-- commands/bot control/sayUnMorse.js | 99 +-- commands/bot control/servers.js | 113 +-- commands/bot control/uptime.js | 54 +- commands/casino/daily.js | 156 ++-- commands/casino/deposit.js | 136 ++-- commands/casino/me.js | 77 +- commands/casino/pay.js | 242 ++++--- commands/casino/recolt.js | 69 +- commands/casino/rep.js | 192 +++-- commands/casino/rob.js | 259 ++++--- commands/casino/sell.js | 430 ++++++----- commands/casino/top.js | 524 ++++++++------ commands/casino/withdraw.js | 137 ++-- commands/casino/work.js | 193 ++--- commands/gestion/add.js | 118 ++-- commands/gestion/ban.js | 210 +++--- commands/gestion/drop.js | 64 +- commands/gestion/kick.js | 210 +++--- commands/gestion/mute.js | 288 +++++--- commands/gestion/perms.js | 45 +- commands/gestion/remove.js | 118 ++-- commands/gestion/reset-user.js | 67 +- commands/gestion/set.js | 58 +- commands/gestion/setRolePerm.js | 113 ++- commands/jeux/blackjack.js | 901 ++++++++++++++---------- commands/jeux/box.js | 240 ++++--- commands/jeux/dice.js | 232 ++++-- commands/jeux/gunfight.js | 553 +++++++++------ commands/jeux/machine-a-sous.js | 231 ++++-- commands/jeux/pierre-feuille-ciseau.js | 296 +++++--- commands/jeux/pile-face.js | 237 +++++-- commands/jeux/poulet.js | 183 +++-- commands/jeux/roll.js | 412 ++++++----- commands/jobs/braquage.js | 254 ++++--- commands/jobs/hack.js | 263 ++++--- commands/jobs/juge.js | 431 +++++++----- commands/jobs/kill.js | 176 +++-- commands/teams admin/tcreate.js | 227 +++--- commands/teams admin/tdelete.js | 206 ++++-- commands/teams admin/tdemote.js | 154 ++-- commands/teams admin/tedit.js | 98 ++- commands/teams admin/tkick.js | 219 +++--- commands/teams admin/towner.js | 232 +++--- commands/teams admin/tpromote.js | 179 +++-- commands/teams admin/twithdraw.js | 177 +++-- commands/teams/tcadenas.js | 189 +++-- commands/teams/tdeposit.js | 247 ++++--- commands/teams/team.js | 279 ++++---- commands/teams/tinvite.js | 269 ++++--- commands/teams/tleave.js | 244 ++++--- commands/teams/trep.js | 143 ++-- config.json | 4 +- events/guildCreate.js | 30 +- events/guildMemberAdd.js | 21 +- events/messageCreate.js | 116 +-- events/messageCreateLVL.js | 31 +- events/ready.js | 278 +++++--- fonctions/database.js | 170 ++--- fonctions/embedColor.js | 88 ++- fonctions/getPermissionLevel.js | 22 +- fonctions/getPrefix.js | 18 +- fonctions/loadCommands.js | 70 +- fonctions/loadEvents.js | 44 +- loggerE.js | 56 +- loggerT.js | 79 +-- main.js | 38 +- 82 files changed, 9299 insertions(+), 5804 deletions(-) diff --git a/README.md b/README.md index 8c52c64..8312021 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # bot-discord-coins + un bot de coins pour discord diff --git a/commands/Alliance/Acreate.js b/commands/Alliance/Acreate.js index b814f7f..1d23edd 100644 --- a/commands/Alliance/Acreate.js +++ b/commands/Alliance/Acreate.js @@ -1,158 +1,233 @@ -const { EmbedBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { EmbedBuilder } = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); -let allianceName -let allianceDescription +let allianceName; +let allianceDescription; module.exports = { - aliases: ['acreate', 'alliancecreate'], - description: 'Crée une alliance.', - emote: '✒️', - utilisation: '', + aliases: ["acreate", "alliancecreate"], + description: "Crée une alliance.", + emote: "✒️", + utilisation: "", permission: 0, async execute(message, args, client) { const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, + [message.guild.id, message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - if (row.teamRole !== 'owner') { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛡️ Création de alliance') - .setDescription(`Vous n'êtes pas proprietaire d'une team.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } else if (row.alliancesId) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛡️ Création de alliance') - .setDescription(`Votre team a deja une alliance.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } else if (row.pocket < 3000) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛡️ Création de alliance') - .setDescription(`Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); + db.get( + `SELECT * FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); } else { - db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]); - resolve(); + if (row.teamRole !== "owner") { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛡️ Création de alliance") + .setDescription(`Vous n'êtes pas proprietaire d'une team.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else if (row.alliancesId) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛡️ Création de alliance") + .setDescription(`Votre team a deja une alliance.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else if (row.pocket < 3000) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛡️ Création de alliance") + .setDescription( + `Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else { + db.run( + `UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + ); + resolve(); + } } - } - }); + }, + ); }); const embed = new EmbedBuilder() - .setTitle('🛡️ Création d\'alliance') + .setTitle("🛡️ Création d'alliance") .setDescription(`Ecrivez le nom de votre alliance dans le chat.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - const messageTeam = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + const messageTeam = await message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); - const filter = m => m.author.id === message.author.id; - const collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 }); - collector.on('collect', async m => { + const filter = (m) => m.author.id === message.author.id; + const collector = message.channel.createMessageCollector({ + filter, + time: 60000, + max: 1, + }); + collector.on("collect", async (m) => { if (m.content.length > 25) { - m.reply('Le nom de l\'alliance ne doit pas dépasser 25 caractères.'); + m.reply("Le nom de l'alliance ne doit pas dépasser 25 caractères."); return collector.stop(); } else if (m.content.length < 3) { - m.reply('Le nom de l\'alliance doit contenir au moins 3 caractères.'); + m.reply("Le nom de l'alliance doit contenir au moins 3 caractères."); return collector.stop(); } else { allianceName = m.content; const embed = new EmbedBuilder() - .setTitle('🛡️ Création de l\'alliance') - .setDescription(`Ecrivez la description de votre alliance dans le chat.`) + .setTitle("🛡️ Création de l'alliance") + .setDescription( + `Ecrivez la description de votre alliance dans le chat.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); messageTeam.edit({ embeds: [embed] }); m.delete(); - const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 }); - collectorD.on('collect', async m => { + const collectorD = message.channel.createMessageCollector({ + filter, + time: 60000, + max: 1, + }); + collectorD.on("collect", async (m) => { if (m.content.length > 250) { - m.reply('La description de l\'alliance ne doit pas dépasser 250 caractères.'); + m.reply( + "La description de l'alliance ne doit pas dépasser 250 caractères.", + ); return collectorD.stop(); } else if (m.content.length < 5) { - m.reply('La description de l\'alliance doit contenir au moins 5 caractères.'); + m.reply( + "La description de l'alliance doit contenir au moins 5 caractères.", + ); return collectorD.stop(); } else { allianceDescription = m.content; - - let idBase = allianceName.toLowerCase().replace(/ /g, ''); - idBase = idBase.replace('0', ''); - idBase = idBase.replace('1', ''); - idBase = idBase.replace('2', ''); - idBase = idBase.replace('3', ''); - idBase = idBase.replace('4', ''); - idBase = idBase.replace('5', ''); - idBase = idBase.replace('6', ''); - idBase = idBase.replace('7', ''); - idBase = idBase.replace('8', ''); - idBase = idBase.replace('9', ''); + + let idBase = allianceName.toLowerCase().replace(/ /g, ""); + idBase = idBase.replace("0", ""); + idBase = idBase.replace("1", ""); + idBase = idBase.replace("2", ""); + idBase = idBase.replace("3", ""); + idBase = idBase.replace("4", ""); + idBase = idBase.replace("5", ""); + idBase = idBase.replace("6", ""); + idBase = idBase.replace("7", ""); + idBase = idBase.replace("8", ""); + idBase = idBase.replace("9", ""); let id = idBase; let increment = 0; let exists = true; do { await new Promise((resolve, reject) => { - db.get(`SELECT * FROM alliances WHERE id = ? AND guildId = ?`, [id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - exists = !!row; - if (exists) { - increment = increment + 1; - id = idBase + increment; + db.get( + `SELECT * FROM alliances WHERE id = ? AND guildId = ?`, + [id, message.guild.id], + (err, row) => { + if (err) { + reject(err); } else { - db.run(`INSERT INTO alliances (guildId, id, name, description, creator) VALUES (?, ?, ?, ?, ?)`, [message.guild.id, id, allianceName, allianceDescription, message.author.id]); - db.run(`UPDATE teams SET alliancesId = ? WHERE guildId = ? AND id = ?`, [id, message.guild.id, team.id]); + exists = !!row; + if (exists) { + increment = increment + 1; + id = idBase + increment; + } else { + db.run( + `INSERT INTO alliances (guildId, id, name, description, creator) VALUES (?, ?, ?, ?, ?)`, + [ + message.guild.id, + id, + allianceName, + allianceDescription, + message.author.id, + ], + ); + db.run( + `UPDATE teams SET alliancesId = ? WHERE guildId = ? AND id = ?`, + [id, message.guild.id, team.id], + ); + } + resolve(); } - resolve(); - } - }); + }, + ); }); } while (exists); const embed = new EmbedBuilder() - .setTitle('🛡️ Création de l\'alliance') - .setDescription(`Votre alliance a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${allianceName}\n**Description :** ${allianceDescription}\n\nVous pouvez maintenant inviter des owners de team dans votre alliance avec la commande \`&allianceinvite\`.\n\nPour quitter la alliance, utilisez la commande \`&allianceleave\` (vous deverez d'abord donner l\'alliance à quelqu'un d'autre).`) + .setTitle("🛡️ Création de l'alliance") + .setDescription( + `Votre alliance a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${allianceName}\n**Description :** ${allianceDescription}\n\nVous pouvez maintenant inviter des owners de team dans votre alliance avec la commande \`&allianceinvite\`.\n\nPour quitter la alliance, utilisez la commande \`&allianceleave\` (vous deverez d'abord donner l\'alliance à quelqu'un d'autre).`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + messageTeam.edit({ embeds: [embed] }); m.delete(); } }); } }); - } -}; \ No newline at end of file + }, +}; diff --git a/commands/Alliance/Adelete.js b/commands/Alliance/Adelete.js index f8f1a10..987f4e6 100644 --- a/commands/Alliance/Adelete.js +++ b/commands/Alliance/Adelete.js @@ -1,104 +1,175 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, + EmbedBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['alliancedelete', 'adelete', 'aremove', 'allianceremove'], - description: 'Supprime votre alliance.', - emote: '🗑️', - util: '', + aliases: ["alliancedelete", "adelete", "aremove", "allianceremove"], + description: "Supprime votre alliance.", + emote: "🗑️", + util: "", permission: 0, async execute(message, args, client) { const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const alliance = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => { + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, + [message.guild.id, message.guild.id, message.author.id], + (err, row) => { if (err) reject(err); resolve(row); - }); - }); + }, + ); + }); + const alliance = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, + [message.guild.id, message.guild.id, team.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); if (!alliance) { const embed = new EmbedBuilder() - .setTitle('🛡️ Suppression de l\'alliance') - .setDescription('Vous n\'êtes actuellement pas dans une alliance.') + .setTitle("🛡️ Suppression de l'alliance") + .setDescription("Vous n'êtes actuellement pas dans une alliance.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { - if (alliance.creator !== message.author.id) { const embed = new EmbedBuilder() - .setTitle('Suppression Impossible') - .setDescription('❌ Vous n\'avez pas la permission de supprimer votre alliance.') + .setTitle("Suppression Impossible") + .setDescription( + "❌ Vous n'avez pas la permission de supprimer votre alliance.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - const row = new ActionRowBuilder() - .addComponents( - new ButtonBuilder() - .setCustomId('confirm_delete') - .setLabel('Confirmer') - .setStyle(ButtonStyle.Danger), - new ButtonBuilder() - .setCustomId('cancel_delete') - .setLabel('Annuler') - .setStyle(ButtonStyle.Secondary) - ); + const row = new ActionRowBuilder().addComponents( + new ButtonBuilder() + .setCustomId("confirm_delete") + .setLabel("Confirmer") + .setStyle(ButtonStyle.Danger), + new ButtonBuilder() + .setCustomId("cancel_delete") + .setLabel("Annuler") + .setStyle(ButtonStyle.Secondary), + ); const embed = new EmbedBuilder() - .setTitle('🛡️ Suppression de l\'alliance') - .setDescription(`Êtes-vous sûr de vouloir supprimer l'alliance ${alliance.name}? Cette action est irréversible.`) + .setTitle("🛡️ Suppression de l'alliance") + .setDescription( + `Êtes-vous sûr de vouloir supprimer l'alliance ${alliance.name}? Cette action est irréversible.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }).then(sentMessage => { - const filter = i => i.customId === 'confirm_delete' || i.customId === 'cancel_delete' && i.user.id === message.author.id; + message + .reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }) + .then((sentMessage) => { + const filter = (i) => + i.customId === "confirm_delete" || + (i.customId === "cancel_delete" && i.user.id === message.author.id); - const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 }); + const collector = sentMessage.createMessageComponentCollector({ + filter, + time: 15000, + }); - collector.on('collect', async i => { - if (i.customId === 'confirm_delete') { - db.run(`DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`, [message.guild.id, alliance.id, message.author.id], async (err) => { - if (err) { - return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'alliance.', components: [] }); - } + collector.on("collect", async (i) => { + if (i.customId === "confirm_delete") { + db.run( + `DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`, + [message.guild.id, alliance.id, message.author.id], + async (err) => { + if (err) { + return i.update({ + content: + "Une erreur est survenue lors de la suppression de l'alliance.", + components: [], + }); + } - db.run(`UPDATE teams SET alliancesId = null WHERE guildId =? AND alliancesId =?`, [message.guild.id, alliance.id], async (err) => { - if (err) { - return i.update({ content: 'Une erreur est survenue lors de la mise à jour des teams membres.', components: [] }); - } + db.run( + `UPDATE teams SET alliancesId = null WHERE guildId =? AND alliancesId =?`, + [message.guild.id, alliance.id], + async (err) => { + if (err) { + return i.update({ + content: + "Une erreur est survenue lors de la mise à jour des teams membres.", + components: [], + }); + } - const embed = new EmbedBuilder() - .setTitle('🛡️ Suppression de l\'alliance') - .setDescription(`L'alliance ${alliance.name} a été supprimée avec succès.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + const embed = new EmbedBuilder() + .setTitle("🛡️ Suppression de l'alliance") + .setDescription( + `L'alliance ${alliance.name} a été supprimée avec succès.`, + ) + .setColor( + await embedColor(message.author.id, message.guild.id), + ) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return i.update({ embeds: [embed], components: [] }); + return i.update({ embeds: [embed], components: [] }); + }, + ); + }, + ); + } else { + await i.update({ + content: "Suppression de l'alliance annulée.", + components: [], }); - }); - } else { - await i.update({ content: 'Suppression de l\'alliance annulée.', components: [] }); - } - }); + } + }); - collector.on('end', collected => { - if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] }); + collector.on("end", (collected) => { + if (collected.size === 0) + sentMessage.edit({ + content: "Temps écoulé. Suppression de l'équipe annulée.", + components: [], + }); + }); }); - }); } }, -}; \ No newline at end of file +}; diff --git a/commands/Alliance/Adep.js b/commands/Alliance/Adep.js index 2174857..146ef6b 100644 --- a/commands/Alliance/Adep.js +++ b/commands/Alliance/Adep.js @@ -1,94 +1,153 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['adep', 'adepot', 'alliancedep', 'alliancedepot'], - description: 'Dépose de l\'argent dans la banque de votre alliance. (tout le monde peux en recupéré ⚠️)', - emote: '💰', - utilisation: '', + aliases: ["adep", "adepot", "alliancedep", "alliancedepot"], + description: + "Dépose de l'argent dans la banque de votre alliance. (tout le monde peux en recupéré ⚠️)", + emote: "💰", + utilisation: "", permission: 0, async execute(message, args, client) { if (args.length == 0) { const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous devez spécifier un montant à déposer.') + .setTitle("Dépôt Impossible") + .setDescription("❌ Vous devez spécifier un montant à déposer.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (args[0] !== 'all' && isNaN(args[0])) { + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] !== "all" && isNaN(args[0])) { const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous devez spécifier un montant valide à déposer.') + .setTitle("Dépôt Impossible") + .setDescription("❌ Vous devez spécifier un montant valide à déposer.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else if (args[0] < 1) { const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous devez déposer au moins 1 coin.') + .setTitle("Dépôt Impossible") + .setDescription("❌ Vous devez déposer au moins 1 coin.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row.pocket); - }); + db.get( + `SELECT pocket FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row.pocket); + }, + ); }); let amout; - if (args[0] === 'all') { + if (args[0] === "all") { amout = pocket; } else if (args[0] > pocket) { const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous n\'avez pas assez d\'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **' + pocket + 'coins** sur vous.') + .setTitle("Dépôt Impossible") + .setDescription( + "❌ Vous n'avez pas assez d'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **" + + pocket + + "coins** sur vous.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { amout = args[0]; } const alliance = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`, [message.guild.id, message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`, + [message.guild.id, message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (!alliance) { const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous n\'êtes pas dans une alliances.') + .setTitle("Dépôt Impossible") + .setDescription("❌ Vous n'êtes pas dans une alliances.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { - db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]); - db.run(`UPDATE alliances SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]); + db.run( + `UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, + [amout, message.guild.id, message.author.id], + ); + db.run( + `UPDATE alliances SET bank = bank + ? WHERE guildId = ? AND id = ?`, + [amout, message.guild.id, alliance.id], + ); const embed = new EmbedBuilder() - .setTitle('Dépôt Effectué') - .setDescription('💰 Vous avez déposé **' + amout + '** coins dans la banque de votre alliances.') + .setTitle("Dépôt Effectué") + .setDescription( + "💰 Vous avez déposé **" + + amout + + "** coins dans la banque de votre alliances.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } }, -}; \ No newline at end of file +}; diff --git a/commands/Alliance/Arep.js b/commands/Alliance/Arep.js index 7bd156b..481cc2b 100644 --- a/commands/Alliance/Arep.js +++ b/commands/Alliance/Arep.js @@ -1,77 +1,123 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['arep', 'areputation', 'alliancereputation', 'alliancerep'], - description: 'Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)', - emote: '💰', - utilisation: '', - permission: 0, + aliases: ["arep", "areputation", "alliancereputation", "alliancerep"], + description: + "Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)", + emote: "💰", + utilisation: "", + permission: 0, - async execute(message, args, client) { - if (args.length == 0) { - const embed = new EmbedBuilder() - .setTitle('Ajout de reputation') - .setDescription('❌ Vous devez spécifier une alliance a rep.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (args[0] < 3) { - const embed = new EmbedBuilder() - .setTitle('Ajout de reputation') - .setDescription('❌ Vous devez mettre l\'id d\'une alliance.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const alliance = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row.lastRep); - }); + async execute(message, args, client) { + if (args.length == 0) { + const embed = new EmbedBuilder() + .setTitle("Ajout de reputation") + .setDescription("❌ Vous devez spécifier une alliance a rep.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), }); - if (!alliance) { - const embed = new EmbedBuilder() - .setTitle('Ajout de reputation') - .setDescription('❌ Alliance introuvable.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] < 3) { + const embed = new EmbedBuilder() + .setTitle("Ajout de reputation") + .setDescription("❌ Vous devez mettre l'id d'une alliance.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (user.lastArep > Date.now() - 1800000) { - const embed = new EmbedBuilder() - .setTitle('Ajout de reputation impossible') - .setDescription(`❌ Vous avez déjà ajouté une reputation récemment. Veuillez attendre \`${Math.floor((user.lastArep + 1800000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else { - db.run(`UPDATE alliances SET reputation = reputation + 1 WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]]); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } - const embed = new EmbedBuilder() - .setTitle('Ajout de reputation effectué') - .setDescription('💰 Vous avez ajouter `1` reputation à l\`alliance `' + args[0] + '`.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + const alliance = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM alliances WHERE guildId = ? AND id = ?`, + [message.guild.id, args[0]], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row.lastRep); + }, + ); + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - }, -}; \ No newline at end of file + if (!alliance) { + const embed = new EmbedBuilder() + .setTitle("Ajout de reputation") + .setDescription("❌ Alliance introuvable.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (user.lastArep > Date.now() - 1800000) { + const embed = new EmbedBuilder() + .setTitle("Ajout de reputation impossible") + .setDescription( + `❌ Vous avez déjà ajouté une reputation récemment. Veuillez attendre \`${Math.floor((user.lastArep + 1800000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else { + db.run( + `UPDATE alliances SET reputation = reputation + 1 WHERE guildId = ? AND id = ?`, + [message.guild.id, args[0]], + ); + + const embed = new EmbedBuilder() + .setTitle("Ajout de reputation effectué") + .setDescription( + "💰 Vous avez ajouter `1` reputation à l`alliance `" + args[0] + "`.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + }, +}; diff --git a/commands/Alliance/Awithdraw.js b/commands/Alliance/Awithdraw.js index 8bf33e3..47dcebe 100644 --- a/commands/Alliance/Awithdraw.js +++ b/commands/Alliance/Awithdraw.js @@ -1,123 +1,223 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['awh', 'awith', 'alliancewh', 'alliancewith', 'awithdraw', 'alliancewithdraw'], - description: 'Récupere de l\'argent/des reputation dans la banque de votre alliance.', - emote: '💰', - utilisation: ' ', + aliases: [ + "awh", + "awith", + "alliancewh", + "alliancewith", + "awithdraw", + "alliancewithdraw", + ], + description: + "Récupere de l'argent/des reputation dans la banque de votre alliance.", + emote: "💰", + utilisation: " ", permission: 0, async execute(message, args, client) { if (args.length == 0) { const embed = new EmbedBuilder() - .setTitle('Récuperation Impossible') - .setDescription('❌ Vous devez spécifier un type et un montant à récupérer (`awith coins 200`).') + .setTitle("Récuperation Impossible") + .setDescription( + "❌ Vous devez spécifier un type et un montant à récupérer (`awith coins 200`).", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (args[1] !== 'all' && isNaN(args[1])) { + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (args[1] !== "all" && isNaN(args[1])) { const embed = new EmbedBuilder() - .setTitle('Récuperation Impossible') - .setDescription('❌ Vous devez spécifier un montant valide à récupérer.') + .setTitle("Récuperation Impossible") + .setDescription( + "❌ Vous devez spécifier un montant valide à récupérer.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else if (args[1] < 1) { const embed = new EmbedBuilder() - .setTitle('Récuperation Impossible') - .setDescription('❌ Vous devez récupérer au moins 1 coin/rep.') + .setTitle("Récuperation Impossible") + .setDescription("❌ Vous devez récupérer au moins 1 coin/rep.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } const alliance = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`, [message.guild.id, message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`, + [message.guild.id, message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (!alliance) { const embed = new EmbedBuilder() - .setTitle('Récuperation Impossible') - .setDescription('❌ Vous n\'êtes pas dans une alliances.') + .setTitle("Récuperation Impossible") + .setDescription("❌ Vous n'êtes pas dans une alliances.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (args[0] == 'rep' || args[0] == 'r' || args[0] == 'reputation') { + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] == "rep" || args[0] == "r" || args[0] == "reputation") { let amout; - if (args[1] === 'all') { + if (args[1] === "all") { amout = alliance.bank; } else if (args[1] > alliance.bank) { const embed = new EmbedBuilder() - .setTitle('Récuperation Impossible') - .setDescription('❌ Il n\'y a pas suffisament de reputation dans l\'alliance pour en recupéré autant.\n\n💰 Il y a actuellement `' + alliance.reputation + '`rep') + .setTitle("Récuperation Impossible") + .setDescription( + "❌ Il n'y a pas suffisament de reputation dans l'alliance pour en recupéré autant.\n\n💰 Il y a actuellement `" + + alliance.reputation + + "`rep", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { amout = args[1]; } - db.run(`UPDATE users SET reputation = reputation + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]); - db.run(`UPDATE alliances SET reputation = reputation - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]); + db.run( + `UPDATE users SET reputation = reputation + ? WHERE guildId = ? AND userId = ?`, + [amout, message.guild.id, message.author.id], + ); + db.run( + `UPDATE alliances SET reputation = reputation - ? WHERE guildId = ? AND id = ?`, + [amout, message.guild.id, alliance.id], + ); const embed = new EmbedBuilder() - .setTitle('Récuperation Effectué') - .setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.') + .setTitle("Récuperation Effectué") + .setDescription( + "💰 Vous avez récupéré **" + + amout + + "** coins dans la banque de votre alliances.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (args[1] == 'coin' || args[0] == 'c' || args[0] == 'coins') { + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (args[1] == "coin" || args[0] == "c" || args[0] == "coins") { let amout; - if (args[1] === 'all') { + if (args[1] === "all") { amout = alliance.bank; } else if (args[1] > alliance.bank) { const embed = new EmbedBuilder() - .setTitle('Récuperation Impossible') - .setDescription('❌ Il n\'y a pas suffisament de coins dans l\'alliance pour récupérer cette somme.\n\n💰 il y a actuellement `' + alliance.bank + '`coins') + .setTitle("Récuperation Impossible") + .setDescription( + "❌ Il n'y a pas suffisament de coins dans l'alliance pour récupérer cette somme.\n\n💰 il y a actuellement `" + + alliance.bank + + "`coins", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { amout = args[1]; } - db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]); - db.run(`UPDATE alliances SET bank = bank - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, + [amout, message.guild.id, message.author.id], + ); + db.run( + `UPDATE alliances SET bank = bank - ? WHERE guildId = ? AND id = ?`, + [amout, message.guild.id, alliance.id], + ); const embed = new EmbedBuilder() - .setTitle('Récuperation Effectué') - .setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.') + .setTitle("Récuperation Effectué") + .setDescription( + "💰 Vous avez récupéré **" + + amout + + "** coins dans la banque de votre alliances.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { const embed = new EmbedBuilder() - .setTitle('Récuperation Impossible') - .setDescription('❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith `)') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setTitle("Récuperation Impossible") + .setDescription( + "❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith `)", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - } -}; \ No newline at end of file + }, +}; diff --git a/commands/Alliance/alliance.js b/commands/Alliance/alliance.js index be3221d..ffa7079 100644 --- a/commands/Alliance/alliance.js +++ b/commands/Alliance/alliance.js @@ -1,54 +1,79 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['a', 'ainfo', 'allianceinfo'], - description: 'Affiche les informations de votre alliance.', - emote: '🛡️', - utilisation: '', + aliases: ["a", "ainfo", "allianceinfo"], + description: "Affiche les informations de votre alliance.", + emote: "🛡️", + utilisation: "", permission: 0, async execute(message, args, client) { const member = message.mentions.members.first() || message.author; const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, member.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const alliance = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => { + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, + [message.guild.id, message.guild.id, member.id], + (err, row) => { if (err) reject(err); resolve(row); - }); - }); + }, + ); + }); + const alliance = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, + [message.guild.id, message.guild.id, team.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); if (!alliance) { const embed = new EmbedBuilder() - .setTitle('🛡️ Informations d\'alliance') - .setDescription('<@' + member.id + '> n\'est actuellement dans aucune alliance.') + .setTitle("🛡️ Informations d'alliance") + .setDescription( + "<@" + member.id + "> n'est actuellement dans aucune alliance.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { const memberlist = await new Promise((resolve, reject) => { - db.all(`SELECT name FROM teams WHERE guildId = ? AND alliancesId = ?`, [message.guild.id, team.alliancesId], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); + db.all( + `SELECT name FROM teams WHERE guildId = ? AND alliancesId = ?`, + [message.guild.id, team.alliancesId], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); }); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// const embed = new EmbedBuilder() - .setTitle('🛡️ Informations de `' + alliance.name + '`:') - .setDescription(`**Id:** \`${alliance.id}\`\n**Description:** \`${alliance.description}\`\n**Banque:** \`${alliance.bank}\`coins => Tout le monde peux recupéré ces coins.\n**Reputation:** \`${alliance.reputation} => Tout le monde peux recupéré ces reputations\`\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.allianceRole}:** <@${member.userId}>`).join('\n')}\n`) + .setTitle("🛡️ Informations de `" + alliance.name + "`:") + .setDescription( + `**Id:** \`${alliance.id}\`\n**Description:** \`${alliance.description}\`\n**Banque:** \`${alliance.bank}\`coins => Tout le monde peux recupéré ces coins.\n**Reputation:** \`${alliance.reputation} => Tout le monde peux recupéré ces reputations\`\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map((member) => `**${member.allianceRole}:** <@${member.userId}>`).join("\n")}\n`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); const urlRegex1 = /(https?:\/\/[^\s]+)/g; if (alliance.icon && urlRegex1.test(alliance.icon)) { @@ -60,7 +85,10 @@ module.exports = { embedTopDonnateur.setImage(alliance.banner); } - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } }, -}; \ No newline at end of file +}; diff --git a/commands/achats/embed.js b/commands/achats/embed.js index d5cfd5d..010ea5c 100644 --- a/commands/achats/embed.js +++ b/commands/achats/embed.js @@ -1,151 +1,212 @@ -const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: [], - description: 'Change la couleur de vos embed.', - emote: '🔵', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - const embed = new EmbedBuilder() - .setTitle('🔵 Embed') - .setDescription(`Sélectionnez une couleur pour vos embeds`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - const select = new StringSelectMenuBuilder() - .setCustomId('color') - .setPlaceholder('Sélectionnez une couleur') - .addOptions([ - { - label: '🔴 Rouge', - description: 'Prix : 3 rep🔺', - value: 'red', - }, - { - label: '🟠 Orange', - description: 'Prix : 3 rep🔺', - value: 'orange', - }, - { - label: '🟡 Jaune', - description: 'Prix : 3 rep🔺', - value: 'yellow', - }, - { - label: '🟢 Vert', - description: 'Prix : 3 rep🔺', - value: 'green', - }, - { - label: '🔵 Bleu', - description: 'Prix : 3 rep🔺', - value: 'blue', - }, - { - label: '🟣 Violet', - description: 'Prix : 3 rep🔺', - value: 'purple', - }, - { - label: '🟤 Marron', - description: 'Prix : 3 rep🔺', - value: 'brown', - }, - { - label: '⚫ Noir', - description: 'Prix : 3 rep🔺', - value: 'black', - }, - { - label: '⚪ Blanc', - description: 'Prix : 3 rep🔺', - value: 'white', - }, - { - label: 'Aléatoire 🌈', - description: 'Prix : 5 rep🔺', - value: 'random', - }, - ]); - - const row = new ActionRowBuilder() - .addComponents(select); - - const embedMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - - const filter = (interaction) => interaction.user.id === message.author.id; - const collector = embedMessage.createMessageComponentCollector({ filter, time: 60000 }); - collector.on('collect', async (interaction) => { - if (interaction.isStringSelectMenu()) { - if (!client.user) return - const value = interaction.values[0]; - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const reputation = user.reputation; - - if (value === 'random') { - if (reputation < 5) { - const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); - } - - db.run(`UPDATE users SET reputation = reputation - 5, embed = 'random' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err) => { - if (err) return console.error(err); - }); - - const embed = new EmbedBuilder() - .setTitle('🔵 Embed') - .setDescription('✅ Vous avez acheté la couleur aléatoire pour vos embeds.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); - } else { - if (reputation < 3) { - const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); - } - - db.run(`UPDATE users SET reputation = reputation - 3, embed = ? WHERE guildId = ? AND userId = ?`, [value, message.guild.id, message.author.id], (err) => { - if (err) return console.error(err); - }); - - const embed = new EmbedBuilder() - .setTitle('🔵 Embed') - .setDescription(`✅ Vous avez acheté la couleur ${value} pour vos embeds.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); - } - } - }); - - collector.on('end', async () => { - embedMessage.edit({ components: [] }); - }); - }, -}; \ No newline at end of file +const { + EmbedBuilder, + StringSelectMenuBuilder, + ActionRowBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: [], + description: "Change la couleur de vos embed.", + emote: "🔵", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + const embed = new EmbedBuilder() + .setTitle("🔵 Embed") + .setDescription(`Sélectionnez une couleur pour vos embeds`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + const select = new StringSelectMenuBuilder() + .setCustomId("color") + .setPlaceholder("Sélectionnez une couleur") + .addOptions([ + { + label: "🔴 Rouge", + description: "Prix : 3 rep🔺", + value: "red", + }, + { + label: "🟠 Orange", + description: "Prix : 3 rep🔺", + value: "orange", + }, + { + label: "🟡 Jaune", + description: "Prix : 3 rep🔺", + value: "yellow", + }, + { + label: "🟢 Vert", + description: "Prix : 3 rep🔺", + value: "green", + }, + { + label: "🔵 Bleu", + description: "Prix : 3 rep🔺", + value: "blue", + }, + { + label: "🟣 Violet", + description: "Prix : 3 rep🔺", + value: "purple", + }, + { + label: "🟤 Marron", + description: "Prix : 3 rep🔺", + value: "brown", + }, + { + label: "⚫ Noir", + description: "Prix : 3 rep🔺", + value: "black", + }, + { + label: "⚪ Blanc", + description: "Prix : 3 rep🔺", + value: "white", + }, + { + label: "Aléatoire 🌈", + description: "Prix : 5 rep🔺", + value: "random", + }, + ]); + + const row = new ActionRowBuilder().addComponents(select); + + const embedMessage = await message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + const filter = (interaction) => interaction.user.id === message.author.id; + const collector = embedMessage.createMessageComponentCollector({ + filter, + time: 60000, + }); + collector.on("collect", async (interaction) => { + if (interaction.isStringSelectMenu()) { + if (!client.user) return; + const value = interaction.values[0]; + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + const reputation = user.reputation; + + if (value === "random") { + if (reputation < 5) { + const embed = new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + "❌ Vous n'avez pas assez de réputations pour acheter cette couleur.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return interaction.reply({ + embeds: [embed], + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + } + + db.run( + `UPDATE users SET reputation = reputation - 5, embed = 'random' WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err) => { + if (err) return console.error(err); + }, + ); + + const embed = new EmbedBuilder() + .setTitle("🔵 Embed") + .setDescription( + "✅ Vous avez acheté la couleur aléatoire pour vos embeds.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + interaction.reply({ + embeds: [embed], + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + } else { + if (reputation < 3) { + const embed = new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + "❌ Vous n'avez pas assez de réputations pour acheter cette couleur.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return interaction.reply({ + embeds: [embed], + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + } + + db.run( + `UPDATE users SET reputation = reputation - 3, embed = ? WHERE guildId = ? AND userId = ?`, + [value, message.guild.id, message.author.id], + (err) => { + if (err) return console.error(err); + }, + ); + + const embed = new EmbedBuilder() + .setTitle("🔵 Embed") + .setDescription( + `✅ Vous avez acheté la couleur ${value} pour vos embeds.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + interaction.reply({ + embeds: [embed], + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + } + } + }); + + collector.on("end", async () => { + embedMessage.edit({ components: [] }); + }); + }, +}; diff --git a/commands/achats/shop.js b/commands/achats/shop.js index 1ce3d8c..eb2595d 100644 --- a/commands/achats/shop.js +++ b/commands/achats/shop.js @@ -1,125 +1,191 @@ -const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['shop', 'magasin', 'boutique', 'store'], - description: 'Affiche le shop du bot.', - emote: '🛍️', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setThumbnail(message.guild.iconURL()) - .setDescription(`Sélectionnez un item à acheter. Voici les items disponibles :\n\n> 🔒 AntiRob - Protège contre les vols pendant 2 heures - Prix : 2000coins\n\n> 🗝️ Clef - Permet d'ouvrir une boite 100%gagante - Prix : 2500coins\n\n\n\n> 💰 25000 Coins - Prix : 1 reputation`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - const select = new StringSelectMenuBuilder() - .setCustomId('shop') - .setPlaceholder('Sélectionnez un item') - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('🔒 AntiRob') - .setValue('antirob') - .setDescription('Protège contre les vols pendant 2 heures') - .setEmoji('🔒') - .setDefault(false), - new StringSelectMenuOptionBuilder() - .setLabel('🗝️ Clef') - .setValue('key') - .setDescription('Permet d\'ouvrir une boite') - .setEmoji('🗝️') - .setDefault(false), - new StringSelectMenuOptionBuilder() - .setLabel('💰 25000 Coins') - .setValue('coins') - .setDescription('Vous donne 25K de coins contre 1reputation') - .setEmoji('💰') - .setDefault(false), - ); - - const row = new ActionRowBuilder() - .addComponents(select); - - message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - - client.on('interactionCreate', async (interaction) => { - if (!interaction.isStringSelectMenu()) return; - - if (!interaction.customId === 'shop') return - const selected = interaction.values[0]; - - if (selected === 'antirob') { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - if (user.pocket < 2000) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true }); - } - - db.run(`UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id]); - - const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setDescription(`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (selected === 'key') { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - if (user.pocket < 2500) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true }); - } - - db.run(`UPDATE users SET pocket = pocket - 2500, key = key + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - - const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 coins !`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (selected === 'coins') { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - if (user.reputation < 1) { - return interaction.reply({ content: 'Vous n\'avez pas assez de reputation pour acheter cet item.', ephemeral: true }); - } - - db.run(`UPDATE users SET pocket = pocket + 25000, reputation = reputation - 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - - const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setDescription(`Vous avez acheté \`25000\`coins contre une reputation !`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - }); - }, -}; \ No newline at end of file +const { + EmbedBuilder, + ActionRowBuilder, + StringSelectMenuBuilder, + StringSelectMenuOptionBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["shop", "magasin", "boutique", "store"], + description: "Affiche le shop du bot.", + emote: "🛍️", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + const embed = new EmbedBuilder() + .setTitle("🛍️ Shop") + .setThumbnail(message.guild.iconURL()) + .setDescription( + `Sélectionnez un item à acheter. Voici les items disponibles :\n\n> 🔒 AntiRob - Protège contre les vols pendant 2 heures - Prix : 2000coins\n\n> 🗝️ Clef - Permet d'ouvrir une boite 100%gagante - Prix : 2500coins\n\n\n\n> 💰 25000 Coins - Prix : 1 reputation`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + const select = new StringSelectMenuBuilder() + .setCustomId("shop") + .setPlaceholder("Sélectionnez un item") + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("🔒 AntiRob") + .setValue("antirob") + .setDescription("Protège contre les vols pendant 2 heures") + .setEmoji("🔒") + .setDefault(false), + new StringSelectMenuOptionBuilder() + .setLabel("🗝️ Clef") + .setValue("key") + .setDescription("Permet d'ouvrir une boite") + .setEmoji("🗝️") + .setDefault(false), + new StringSelectMenuOptionBuilder() + .setLabel("💰 25000 Coins") + .setValue("coins") + .setDescription("Vous donne 25K de coins contre 1reputation") + .setEmoji("💰") + .setDefault(false), + ); + + const row = new ActionRowBuilder().addComponents(select); + + message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + client.on("interactionCreate", async (interaction) => { + if (!interaction.isStringSelectMenu()) return; + + if (!interaction.customId === "shop") return; + const selected = interaction.values[0]; + + if (selected === "antirob") { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + if (user.pocket < 2000) { + return interaction.reply({ + content: "Vous n'avez pas assez d'argent pour acheter cet item.", + ephemeral: true, + }); + } + + db.run( + `UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`, + [Date.now(), message.guild.id, message.author.id], + ); + + const embed = new EmbedBuilder() + .setTitle("🛍️ Shop") + .setDescription( + `Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + interaction.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (selected === "key") { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + if (user.pocket < 2500) { + return interaction.reply({ + content: "Vous n'avez pas assez d'argent pour acheter cet item.", + ephemeral: true, + }); + } + + db.run( + `UPDATE users SET pocket = pocket - 2500, key = key + 1 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + + const embed = new EmbedBuilder() + .setTitle("🛍️ Shop") + .setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 coins !`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + interaction.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (selected === "coins") { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + if (user.reputation < 1) { + return interaction.reply({ + content: + "Vous n'avez pas assez de reputation pour acheter cet item.", + ephemeral: true, + }); + } + + db.run( + `UPDATE users SET pocket = pocket + 25000, reputation = reputation - 1 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + + const embed = new EmbedBuilder() + .setTitle("🛍️ Shop") + .setDescription( + `Vous avez acheté \`25000\`coins contre une reputation !`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + interaction.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + }); + }, +}; diff --git a/commands/achats/tshop.js b/commands/achats/tshop.js index c6f1b5f..d11e24d 100644 --- a/commands/achats/tshop.js +++ b/commands/achats/tshop.js @@ -1,124 +1,186 @@ -const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + EmbedBuilder, + ActionRowBuilder, + StringSelectMenuBuilder, + StringSelectMenuOptionBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['tshop', 'tmagasin', 'tboutique', 'tstore', 'teamshop', 'teammagasin', 'tboutique', 'teamstore'], - description: 'Affiche le shop du bot.', - emote: '🛍️', - utilisation: '', + aliases: [ + "tshop", + "tmagasin", + "tboutique", + "tstore", + "teamshop", + "teammagasin", + "tboutique", + "teamstore", + ], + description: "Affiche le shop du bot.", + emote: "🛍️", + utilisation: "", permission: 0, async execute(message, args, client) { const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, user.teamId], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = ?`, + [message.guild.id, user.teamId], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') + .setTitle("🛍️ Shop") .setThumbnail(message.guild.iconURL()) - .setDescription(`Sélectionnez un item à acheter POUR VOTRE TEAM, les items sont cummulable, vous gagner déjà ${team.location}coins/min. Voici les items disponibles :\n\n> 🏢 Appartement - Achete un appartement et le met en location, rapporte \`70coins/min\`\nPrix : \`100000\`coins\n\n> 🏠 Maison - Achete une petite maison et la met en location, rapporte \`75coins/min\`\nPrix : \`110000\`coins\n\n> 🏠 Grande maison - Achete une grande maison et la met en location, rapporte \`125coins/min\`\nPrix : \`150000\`coins\n\n> 💎 Villa - Achete une petite maison et la met en location, rapporte \`250coins/min\`\nPrix : \`250000\`coins\n\n> 🏝️ Île - Achete une île et la met en location, rapporte \`2500coins/min\`\nPrix : \`500000\`coins`) + .setDescription( + `Sélectionnez un item à acheter POUR VOTRE TEAM, les items sont cummulable, vous gagner déjà ${team.location}coins/min. Voici les items disponibles :\n\n> 🏢 Appartement - Achete un appartement et le met en location, rapporte \`70coins/min\`\nPrix : \`100000\`coins\n\n> 🏠 Maison - Achete une petite maison et la met en location, rapporte \`75coins/min\`\nPrix : \`110000\`coins\n\n> 🏠 Grande maison - Achete une grande maison et la met en location, rapporte \`125coins/min\`\nPrix : \`150000\`coins\n\n> 💎 Villa - Achete une petite maison et la met en location, rapporte \`250coins/min\`\nPrix : \`250000\`coins\n\n> 🏝️ Île - Achete une île et la met en location, rapporte \`2500coins/min\`\nPrix : \`500000\`coins`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); const select = new StringSelectMenuBuilder() - .setCustomId('shop') - .setPlaceholder('Sélectionnez un item') + .setCustomId("shop") + .setPlaceholder("Sélectionnez un item") .addOptions( new StringSelectMenuOptionBuilder() - .setLabel('🏢 Appartement') - .setValue('appartement') - .setDescription('Achete un appartement et le met en location, rapporte 70coins/min') - .setEmoji('🏢') + .setLabel("🏢 Appartement") + .setValue("appartement") + .setDescription( + "Achete un appartement et le met en location, rapporte 70coins/min", + ) + .setEmoji("🏢") .setDefault(false), new StringSelectMenuOptionBuilder() - .setLabel('🏠 Maison') - .setValue('maison') - .setDescription('Achete une petite maison et la met en location, rapporte 75coins/min') - .setEmoji('🏠') + .setLabel("🏠 Maison") + .setValue("maison") + .setDescription( + "Achete une petite maison et la met en location, rapporte 75coins/min", + ) + .setEmoji("🏠") .setDefault(false), new StringSelectMenuOptionBuilder() - .setLabel('🏠 Grande maison') - .setValue('maison2') - .setDescription('Achete une grande maison et la met en location, rapporte 120coins/min') - .setEmoji('🏠') + .setLabel("🏠 Grande maison") + .setValue("maison2") + .setDescription( + "Achete une grande maison et la met en location, rapporte 120coins/min", + ) + .setEmoji("🏠") .setDefault(false), new StringSelectMenuOptionBuilder() - .setLabel('💎 Villa') - .setValue('villa') - .setDescription('Achete une villa et la met en location, rapporte 250coins/min') - .setEmoji('💎') + .setLabel("💎 Villa") + .setValue("villa") + .setDescription( + "Achete une villa et la met en location, rapporte 250coins/min", + ) + .setEmoji("💎") .setDefault(false), new StringSelectMenuOptionBuilder() - .setLabel('🏝️ Île') - .setValue('ile') - .setDescription('Achete une île et la met en location, rapporte 2500coins/min') - .setEmoji('🏝️') + .setLabel("🏝️ Île") + .setValue("ile") + .setDescription( + "Achete une île et la met en location, rapporte 2500coins/min", + ) + .setEmoji("🏝️") .setDefault(false), ); - const row = new ActionRowBuilder() - .addComponents(select); + const row = new ActionRowBuilder().addComponents(select); - message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); + message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); - client.on('interactionCreate', async (interaction) => { + client.on("interactionCreate", async (interaction) => { if (!interaction.isStringSelectMenu()) return; - if (!interaction.customId === 'shop') return + if (!interaction.customId === "shop") return; const selected = interaction.values[0]; - - let coup = '' - let item = '' - let win = '' - if (selected === 'appartement') { - coup = '100000' - item = 'appartement' - win = '70' - } else if (selected === 'maison') { - coup = '110000' - item = 'maison' - win = '75' - } else if (selected === 'maison2') { - coup = '150000' - item = 'grande maison' - win = '120' - } else if (selected === 'villa') { - coup = '250000' - item = 'villa' - win = '250' - } else if (selected === 'ile') { - coup = '500000' - item = 'île' - win = '2500' + + let coup = ""; + let item = ""; + let win = ""; + if (selected === "appartement") { + coup = "100000"; + item = "appartement"; + win = "70"; + } else if (selected === "maison") { + coup = "110000"; + item = "maison"; + win = "75"; + } else if (selected === "maison2") { + coup = "150000"; + item = "grande maison"; + win = "120"; + } else if (selected === "villa") { + coup = "250000"; + item = "villa"; + win = "250"; + } else if (selected === "ile") { + coup = "500000"; + item = "île"; + win = "2500"; } - if (user.teamRole !== 'officier' || user.teamRole !== 'officer') return interaction.reply({ content: 'Vous n\'avez pas les permissions pour faire cet achat', ephemeral: true }); - if (team.bank < coup) return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true }); - - db.run(`UPDATE teams SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [coup, message.guild.id, message.author.id]); - db.run(`UPDATE teams SET location = location + ? WHERE guildId = ? AND userId = ?`, [win, message.guild.id, message.author.id]); - + if (user.teamRole !== "officier" || user.teamRole !== "officer") + return interaction.reply({ + content: "Vous n'avez pas les permissions pour faire cet achat", + ephemeral: true, + }); + if (team.bank < coup) + return interaction.reply({ + content: "Vous n'avez pas assez d'argent pour acheter cet item.", + ephemeral: true, + }); + + db.run( + `UPDATE teams SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, + [coup, message.guild.id, message.author.id], + ); + db.run( + `UPDATE teams SET location = location + ? WHERE guildId = ? AND userId = ?`, + [win, message.guild.id, message.author.id], + ); + const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setDescription(`Vous avez acheté l'item ${item} pour \`${coup}\`coins !`) + .setTitle("🛍️ Shop") + .setDescription( + `Vous avez acheté l'item ${item} pour \`${coup}\`coins !`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + interaction.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); }, -}; \ No newline at end of file +}; diff --git a/commands/bot control/blacklistAdd.js b/commands/bot control/blacklistAdd.js index 4c96f89..dc5fd34 100644 --- a/commands/bot control/blacklistAdd.js +++ b/commands/bot control/blacklistAdd.js @@ -1,36 +1,47 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['bl', 'addbl'], - description: 'Met un utilisateur comme blacklist (sur ce serveur).', - emote: '🛡️', - utilisation: '<@membre>', + aliases: ["bl", "addbl"], + description: "Met un utilisateur comme blacklist (sur ce serveur).", + emote: "🛡️", + utilisation: "<@membre>", permission: 10, async execute(message, args, client) { - const member = message.mentions.users.first(); if (!member) { - const embed = new EmbedBuilder() - .setTitle('Blacklist :') + const embed = new EmbedBuilder() + .setTitle("Blacklist :") .setDescription(`**Veuillez mentionner un membre valide**`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - db.run(`UPDATE users SET blacklist = true WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); + db.run( + `UPDATE users SET blacklist = true WHERE guildId = ? AND userId = ?`, + [message.guild.id, member.id], + ); const embed = new EmbedBuilder() - .setTitle('Blacklist :') + .setTitle("Blacklist :") .setDescription(`**<@${member.id}> est maintement blacklist !**`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); }, diff --git a/commands/bot control/blacklistRemove.js b/commands/bot control/blacklistRemove.js index 788fd79..959acbf 100644 --- a/commands/bot control/blacklistRemove.js +++ b/commands/bot control/blacklistRemove.js @@ -1,36 +1,47 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['unbl', 'removebl'], - description: 'Met un utilisateur comme non-blacklist (sur ce serveur).', - emote: '🛡️', - utilisation: '<@membre>', + aliases: ["unbl", "removebl"], + description: "Met un utilisateur comme non-blacklist (sur ce serveur).", + emote: "🛡️", + utilisation: "<@membre>", permission: 10, async execute(message, args, client) { - const member = message.mentions.users.first(); if (!member) { - const embed = new EmbedBuilder() - .setTitle('Un-blacklist :') + const embed = new EmbedBuilder() + .setTitle("Un-blacklist :") .setDescription(`**Veuillez mentionner un membre valide**`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - db.run(`UPDATE users SET blacklist = false WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); + db.run( + `UPDATE users SET blacklist = false WHERE guildId = ? AND userId = ?`, + [message.guild.id, member.id], + ); const embed = new EmbedBuilder() - .setTitle('Un-blacklist :') + .setTitle("Un-blacklist :") .setDescription(`**<@${member.id}> est maintement un-blacklist !**`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); }, diff --git a/commands/bot control/help.js b/commands/bot control/help.js index 2a6d7a9..30283d4 100644 --- a/commands/bot control/help.js +++ b/commands/bot control/help.js @@ -1,191 +1,291 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const getPrefix = require('../../fonctions/getPrefix.js'); - -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(); - - casinoCommands.forEach(command => { - uniqueCommands.set(command.name, { description: command.description, emote: command.emote, utilisation: command.utilisation }); - }); - - let commandsList = ''; - uniqueCommands.forEach((command, name) => { - commandsList += `> ${command.emote} \`${prefix}${name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> ┖ ${command.description}\n\n`; - }); - - return commandsList; -} - -module.exports = { - aliases: ['', 'h', 'aide'], - description: 'Affiche la liste des commandes disponibles', - emote: '📚', - utilisation: '[commande]', - permission: 0, - - async execute(message, args, client) { - if (args) { - 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() }); - - 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)) - - 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 rightButton = new ButtonBuilder() - .setCustomId('right') - .setLabel('▶') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(leftButton, rightButton); - - let messageEmbed; - messageEmbed = await message.reply({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } }); - - const filter = i => i.user.id === message.author.id; - const collector = message.channel.createMessageComponentCollector({ filter, time: 120000 }); - - 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; - } - - 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: [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: [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: [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: [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: [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: [embedPage7], components: [row], allowedMentions: { repliedUser: false } }); - } else if (page === 8) { - const embedPage8 = new EmbedBuilder() - .setTitle('🤝・Alliance') - .setThumbnail(message.guild.iconURL()) - .setDescription(commandsList(client, 'Alliance', prefix)) - .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: [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: [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 +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const getPrefix = require("../../fonctions/getPrefix.js"); + +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(); + + casinoCommands.forEach((command) => { + uniqueCommands.set(command.name, { + description: command.description, + emote: command.emote, + utilisation: command.utilisation, + }); + }); + + let commandsList = ""; + uniqueCommands.forEach((command, name) => { + commandsList += `> ${command.emote} \`${prefix}${name}${command.utilisation ? " " + command.utilisation : ""}\`\n> ┖ ${command.description}\n\n`; + }); + + return commandsList; +} + +module.exports = { + aliases: ["", "h", "aide"], + description: "Affiche la liste des commandes disponibles", + emote: "📚", + utilisation: "[commande]", + permission: 0, + + async execute(message, args, client) { + if (args) { + 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(), + }); + + 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)); + + 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 rightButton = new ButtonBuilder() + .setCustomId("right") + .setLabel("▶") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(leftButton, rightButton); + + let messageEmbed; + messageEmbed = await message.reply({ + embeds: [embedPage1], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + const filter = (i) => i.user.id === message.author.id; + const collector = message.channel.createMessageComponentCollector({ + filter, + time: 120000, + }); + + 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; + } + + 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: [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: [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: [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: [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: [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: [embedPage7], + components: [row], + allowedMentions: { repliedUser: false }, + }); + } else if (page === 8) { + const embedPage8 = new EmbedBuilder() + .setTitle("🤝・Alliance") + .setThumbnail(message.guild.iconURL()) + .setDescription(commandsList(client, "Alliance", prefix)) + .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: [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: [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 }, + }); + }); + }, +}; diff --git a/commands/bot control/ping.js b/commands/bot control/ping.js index 6129406..a55980b 100644 --- a/commands/bot control/ping.js +++ b/commands/bot control/ping.js @@ -1,40 +1,49 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); - -module.exports = { - aliases: ['latence'], - description: 'Avoir la latence du bot.', - emote: '⏱️', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - const ping = new ButtonBuilder() - .setCustomId('confirm') - .setLabel('🔄') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(ping); - const sentMessage = await message.reply({ - content: `La latence est de : ${client.ws.ping}`, - components: [row], - allowedMentions: { repliedUser: false }, - }); - - - const filter = i => i.customId === 'confirm' && i.user.id === message.author.id; - const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 }) - collector.on('collect', async (interaction) => { - sentMessage.edit({ - content: `La latence est de : ${client.ws.ping}`, - components: [row], - allowedMentions: { repliedUser: false }, - }); - interaction.reply({ content: 'La latence a été rafraichie', ephemeral: true, allowedMentions: { repliedUser: false } }); - }); - - collector.on('end', () => { - sentMessage.edit({ components: [], allowedMentions: { repliedUser: false } }); - }); - } -}; \ No newline at end of file +const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js"); + +module.exports = { + aliases: ["latence"], + description: "Avoir la latence du bot.", + emote: "⏱️", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + const ping = new ButtonBuilder() + .setCustomId("confirm") + .setLabel("🔄") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(ping); + const sentMessage = await message.reply({ + content: `La latence est de : ${client.ws.ping}`, + components: [row], + allowedMentions: { repliedUser: false }, + }); + + const filter = (i) => + i.customId === "confirm" && i.user.id === message.author.id; + const collector = sentMessage.createMessageComponentCollector({ + filter, + time: 15000, + }); + collector.on("collect", async (interaction) => { + sentMessage.edit({ + content: `La latence est de : ${client.ws.ping}`, + components: [row], + allowedMentions: { repliedUser: false }, + }); + interaction.reply({ + content: "La latence a été rafraichie", + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + }); + + collector.on("end", () => { + sentMessage.edit({ + components: [], + allowedMentions: { repliedUser: false }, + }); + }); + }, +}; diff --git a/commands/bot control/say.js b/commands/bot control/say.js index 0eed8a1..623b892 100644 --- a/commands/bot control/say.js +++ b/commands/bot control/say.js @@ -1,18 +1,18 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); +const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js"); module.exports = { - aliases: ['dire', 'envoyer', 'send'], - description: 'Permet de dire un message sous le noms du bot', - emote: '💬', - utilisation: '', + aliases: ["dire", "envoyer", "send"], + description: "Permet de dire un message sous le noms du bot", + emote: "💬", + utilisation: "", permission: 0, async execute(message, args, client) { - message.delete() - let msg = "" + message.delete(); + let msg = ""; for (let i = 0; i < args.length; i++) { - msg += args[i] + ' ' + msg += args[i] + " "; } - message.channel.send(msg) - } -}; \ No newline at end of file + message.channel.send(msg); + }, +}; diff --git a/commands/bot control/sayMorse.js b/commands/bot control/sayMorse.js index 235c20f..336f0ed 100644 --- a/commands/bot control/sayMorse.js +++ b/commands/bot control/sayMorse.js @@ -1,53 +1,57 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); +const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js"); module.exports = { - aliases: ['morse'], - description: 'Permet de dire un message sous le noms du bot', - emote: '💬', - utilisation: '', + aliases: ["morse"], + description: "Permet de dire un message sous le noms du bot", + emote: "💬", + utilisation: "", permission: 0, async execute(message, args, client) { - message.delete() + message.delete(); const morseCode = { - "A": ".- ", - "B": "-... ", - "C": "-.-. ", - "D": "-.. ", - "E": ". ", - "F": "..-. ", - "G": "--. ", - "H": ".... ", - "I": ".. ", - "J": ".--- ", - "K": "-.- ", - "L": ".-.. ", - "M": "-- ", - "N": "-. ", - "O": "--- ", - "P": ".--. ", - "Q": "--.- ", - "R": ".-. ", - "S": "... ", - "T": "- ", - "U": "..- ", - "V": "...- ", - "W": ".-- ", - "X": "-..- ", - "Y": "-.-- ", - "Z": "--.. ", - " ": " " - }; - - const convertToMorse = (str) => { - return str.toUpperCase().split("").map(el => { - return morseCode[el] ? morseCode[el] : el; - }).join(""); + A: ".- ", + B: "-... ", + C: "-.-. ", + D: "-.. ", + E: ". ", + F: "..-. ", + G: "--. ", + H: ".... ", + I: ".. ", + J: ".--- ", + K: "-.- ", + L: ".-.. ", + M: "-- ", + N: "-. ", + O: "--- ", + P: ".--. ", + Q: "--.- ", + R: ".-. ", + S: "... ", + T: "- ", + U: "..- ", + V: "...- ", + W: ".-- ", + X: "-..- ", + Y: "-.-- ", + Z: "--.. ", + " ": " ", }; - let msg = message.content - msg = msg.replace('&morse ', '') - msg = msg.replace('&saymorse ', '') - message.channel.send(convertToMorse(msg)) - } -}; \ No newline at end of file + const convertToMorse = (str) => { + return str + .toUpperCase() + .split("") + .map((el) => { + return morseCode[el] ? morseCode[el] : el; + }) + .join(""); + }; + + let msg = message.content; + msg = msg.replace("&morse ", ""); + msg = msg.replace("&saymorse ", ""); + message.channel.send(convertToMorse(msg)); + }, +}; diff --git a/commands/bot control/sayUnMorse.js b/commands/bot control/sayUnMorse.js index f18cdaa..8944ee8 100644 --- a/commands/bot control/sayUnMorse.js +++ b/commands/bot control/sayUnMorse.js @@ -1,53 +1,56 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); +const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js"); module.exports = { - aliases: ['unmorse'], - description: 'Permet de dire un message sous le noms du bot', - emote: '💬', - utilisation: '', - permission: 0, + aliases: ["unmorse"], + description: "Permet de dire un message sous le noms du bot", + emote: "💬", + utilisation: "", + permission: 0, - async execute(message, args, client) { - message.delete() - const morseCode = { - ".-": "A", - "-...": "B", - "-.-.": "C", - "-..": "D", - ".": "E", - "..-.": "F", - "--.": "G", - "....": "H", - "..": "I", - ".---": "J", - "-.-": "K", - ".-..": "L", - "--": "M", - "-.": "N", - "---": "O", - ".--.": "P", - "--.-": "Q", - ".-.": "R", - "...": "S", - "-": "T", - "..-": "U", - "...-": "V", - ".--": "W", - "-..-": "X", - "-.--": "Y", - "--..": "Z", - " ": " " - }; + async execute(message, args, client) { + message.delete(); + const morseCode = { + ".-": "A", + "-...": "B", + "-.-.": "C", + "-..": "D", + ".": "E", + "..-.": "F", + "--.": "G", + "....": "H", + "..": "I", + ".---": "J", + "-.-": "K", + ".-..": "L", + "--": "M", + "-.": "N", + "---": "O", + ".--.": "P", + "--.-": "Q", + ".-.": "R", + "...": "S", + "-": "T", + "..-": "U", + "...-": "V", + ".--": "W", + "-..-": "X", + "-.--": "Y", + "--..": "Z", + " ": " ", + }; - const convertFromMorse = (str) => { - return str.split(" ").map(el => { - return morseCode[el] ? morseCode[el] : el; - }).join(""); - }; + const convertFromMorse = (str) => { + return str + .split(" ") + .map((el) => { + return morseCode[el] ? morseCode[el] : el; + }) + .join(""); + }; - let msg = message.content - msg = msg.replace('&unmorse ', '') - msg = msg.replace('&sayunmorse ', '') - message.channel.send(convertFromMorse(msg)) - } -}; \ No newline at end of file + let msg = message.content; + msg = msg.replace("&unmorse ", ""); + msg = msg.replace("&sayunmorse ", ""); + message.channel.send(convertFromMorse(msg)); + }, +}; diff --git a/commands/bot control/servers.js b/commands/bot control/servers.js index e32f759..0756441 100644 --- a/commands/bot control/servers.js +++ b/commands/bot control/servers.js @@ -1,47 +1,66 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['srvs'], - description: 'Affiche la liste des serveurs où le bot est présent', - emote: '🌐', - utilisation: '', - permission: 10, - - async execute(message, args, client) { - const embed = new EmbedBuilder() - .setTitle('Liste des serveurs') - .setDescription(client.guilds.cache.map(guild => `${guild.name} (ID: ${guild.id})`).join('\n')) - .setColor(await embedColor(message.author.id, message.guild.id)); - - const ping = new ButtonBuilder() - .setCustomId('confirm') - .setLabel('🔄') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(ping); - - const sentMessage = await message.reply({ - embeds: [embed], - components: [row], - allowedMentions: { repliedUser: false } - }); - - const filter = i => i.customId === 'confirm' && i.user.id === message.author.id; - const collector = sentMessage.createMessageComponentCollector({ filter, time: 60000 }); - - collector.on('collect', async (interaction) => { - embed.setDescription(client.guilds.cache.map(guild => `${guild.name} (ID: ${guild.id})`).join('\n')); - sentMessage.edit({ - embeds: [embed], - components: [row], - }); - interaction.reply({ content: 'La liste des serveurs a été rafraichie', ephemeral: true }); - }); - - collector.on('end', () => { - sentMessage.edit({ components: [] }); - }); - } -}; \ No newline at end of file +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["srvs"], + description: "Affiche la liste des serveurs où le bot est présent", + emote: "🌐", + utilisation: "", + permission: 10, + + async execute(message, args, client) { + const embed = new EmbedBuilder() + .setTitle("Liste des serveurs") + .setDescription( + client.guilds.cache + .map((guild) => `${guild.name} (ID: ${guild.id})`) + .join("\n"), + ) + .setColor(await embedColor(message.author.id, message.guild.id)); + + const ping = new ButtonBuilder() + .setCustomId("confirm") + .setLabel("🔄") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(ping); + + const sentMessage = await message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + const filter = (i) => + i.customId === "confirm" && i.user.id === message.author.id; + const collector = sentMessage.createMessageComponentCollector({ + filter, + time: 60000, + }); + + collector.on("collect", async (interaction) => { + embed.setDescription( + client.guilds.cache + .map((guild) => `${guild.name} (ID: ${guild.id})`) + .join("\n"), + ); + sentMessage.edit({ + embeds: [embed], + components: [row], + }); + interaction.reply({ + content: "La liste des serveurs a été rafraichie", + ephemeral: true, + }); + }); + + collector.on("end", () => { + sentMessage.edit({ components: [] }); + }); + }, +}; diff --git a/commands/bot control/uptime.js b/commands/bot control/uptime.js index f7d93b5..a9f2d6b 100644 --- a/commands/bot control/uptime.js +++ b/commands/bot control/uptime.js @@ -1,25 +1,35 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['upt'], - description: 'Affiche depuis combien de temps le bot est en ligne.', - emote: '⏱️', - utilisation: '', - permission: 0, + aliases: ["upt"], + description: "Affiche depuis combien de temps le bot est en ligne.", + emote: "⏱️", + utilisation: "", + permission: 0, - async execute(message, args, client) { - const uptime = client.uptime; - const days = Math.floor(uptime / 86400000); - const hours = Math.floor((uptime / 3600000) % 24); - const minutes = Math.floor((uptime / 60000) % 60); - const seconds = Math.floor((uptime / 1000) % 60); - const ms = Math.floor(uptime % 1000) - const embedUptime = new EmbedBuilder() - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTitle("Uptime :") - .setDescription(`**Je suis en ligne depuis :**\n**🤖 \`${days}\` jour(s), \`${hours}\` heure(s), \`${minutes}\` minute(s), \`${seconds}\` seconde(s) et \`${ms}\` milisecondes. 🤖**`) - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - message.channel.send({ embeds: [embedUptime] }) - } -}; \ No newline at end of file + async execute(message, args, client) { + const uptime = client.uptime; + const days = Math.floor(uptime / 86400000); + const hours = Math.floor((uptime / 3600000) % 24); + const minutes = Math.floor((uptime / 60000) % 60); + const seconds = Math.floor((uptime / 1000) % 60); + const ms = Math.floor(uptime % 1000); + const embedUptime = new EmbedBuilder() + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTitle("Uptime :") + .setDescription( + `**Je suis en ligne depuis :**\n**🤖 \`${days}\` jour(s), \`${hours}\` heure(s), \`${minutes}\` minute(s), \`${seconds}\` seconde(s) et \`${ms}\` milisecondes. 🤖**`, + ) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + message.channel.send({ embeds: [embedUptime] }); + }, +}; diff --git a/commands/casino/daily.js b/commands/casino/daily.js index b50935d..afbe110 100644 --- a/commands/casino/daily.js +++ b/commands/casino/daily.js @@ -1,70 +1,86 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['dy'], - description: 'Récupère une grosse somme de coins chaque jour. ', - emote: '🎁', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const lastDaily = user.lastDaily - const pocket = user.pocket - - if (lastDaily > Date.now() - 86400000) { - const embed = new EmbedBuilder() - .setTitle('Argent Impossible') - .setDescription(`❌ Vous avez déjà récupèré votre argent quotidien récemment. Veuillez attendre \`${Math.floor((lastDaily + 86400000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const randomAmount = Math.floor(Math.random() * (1000 - 500 + 1)) + 500; - db.run(`UPDATE users SET pocket = ?, lastDaily = ? WHERE guildId = ? AND userId = ?`, [pocket + randomAmount, Date.now(), message.guild.id, message.author.id]); - - const dailys = [ - `🌅 Vous vous êtes réveillé tôt ce matin et avez trouvé \`${randomAmount}\` coins sous votre oreiller.`, - `🍳 Vous avez préparé un délicieux petit-déjeuner et avez été récompensé par \`${randomAmount}\` coins pour votre talent culinaire.`, - `☀️ En partant pour une promenade matinale, vous avez découvert \`${randomAmount}\` coins brillant sous le soleil levant.`, - `🌸 Vous avez aidé à planter de nouvelles fleurs dans le jardin du village et avez reçu \`${randomAmount}\` coins pour votre contribution.`, - `🐦 Vous avez nourri les oiseaux dans le parc et avez trouvé \`${randomAmount}\` coins cachés parmi les graines.`, - `📚 Après avoir lu un livre inspirant, vous avez été inspiré à démarrer votre journée avec \`${randomAmount}\` coins d'idées nouvelles.`, - `🌱 Vous avez planté un arbre pour marquer le début de la journée et avez été récompensé par \`${randomAmount}\` coins pour votre action écologique.`, - `🚴 Vous avez fait une balade à vélo matinale et avez découvert \`${randomAmount}\` coins sur le bord du chemin.`, - `🌞 Vous avez salué le lever du soleil avec une méditation paisible et avez trouvé \`${randomAmount}\` coins cachés dans votre esprit calme.`, - `🌳 En ramassant des déchets dans le parc, vous avez trouvé \`${randomAmount}\` coins comme récompense pour garder l'environnement propre.`, - `🎨 Vous avez commencé la journée avec une séance de peinture et avez vendu votre première toile pour \`${randomAmount}\` coins.`, - `🐶 Vous avez promené le chien du voisin et avez été surpris avec \`${randomAmount}\` coins comme remerciement.`, - `📝 Vous avez tenu un journal de gratitude pour votre routine matinale et avez été récompensé par \`${randomAmount}\` coins pour chaque moment apprécié.`, - `🏃‍♂️ Vous avez fait une course matinale et avez découvert \`${randomAmount}\` coins le long du parcours.`, - `☕ Après avoir préparé un café revigorant, vous avez trouvé \`${randomAmount}\` coins au fond de votre tasse.`, - `🌻 Vous avez cultivé votre jardin et avez récolté \`${randomAmount}\` coins en légumes frais pour le petit-déjeuner.`, - `🎶 Vous avez écouté votre chanson préférée pour commencer la journée et avez été récompensé par \`${randomAmount}\` coins pour votre bon goût musical.`, - `🌈 Vous avez commencé la journée avec une séance de yoga revitalisante et avez trouvé \`${randomAmount}\` coins dans la position du lotus.`, - `💌 Vous avez envoyé des messages de bonnes nouvelles à vos proches et avez été récompensé par \`${randomAmount}\` coins pour répandre la joie.`, - `💻 Vous avez commencé votre journée de travail avec détermination et avez trouvé \`${randomAmount}\` coins cachés dans votre boîte de réception.`, - ]; - - - - const embed = new EmbedBuilder() - .setTitle('Argent Récupéré') - .setDescription(dailys[Math.floor(Math.random() * dailys.length)]) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }, -}; \ No newline at end of file +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["dy"], + description: "Récupère une grosse somme de coins chaque jour. ", + emote: "🎁", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + const lastDaily = user.lastDaily; + const pocket = user.pocket; + + if (lastDaily > Date.now() - 86400000) { + const embed = new EmbedBuilder() + .setTitle("Argent Impossible") + .setDescription( + `❌ Vous avez déjà récupèré votre argent quotidien récemment. Veuillez attendre \`${Math.floor((lastDaily + 86400000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + + const randomAmount = Math.floor(Math.random() * (1000 - 500 + 1)) + 500; + db.run( + `UPDATE users SET pocket = ?, lastDaily = ? WHERE guildId = ? AND userId = ?`, + [pocket + randomAmount, Date.now(), message.guild.id, message.author.id], + ); + + const dailys = [ + `🌅 Vous vous êtes réveillé tôt ce matin et avez trouvé \`${randomAmount}\` coins sous votre oreiller.`, + `🍳 Vous avez préparé un délicieux petit-déjeuner et avez été récompensé par \`${randomAmount}\` coins pour votre talent culinaire.`, + `☀️ En partant pour une promenade matinale, vous avez découvert \`${randomAmount}\` coins brillant sous le soleil levant.`, + `🌸 Vous avez aidé à planter de nouvelles fleurs dans le jardin du village et avez reçu \`${randomAmount}\` coins pour votre contribution.`, + `🐦 Vous avez nourri les oiseaux dans le parc et avez trouvé \`${randomAmount}\` coins cachés parmi les graines.`, + `📚 Après avoir lu un livre inspirant, vous avez été inspiré à démarrer votre journée avec \`${randomAmount}\` coins d'idées nouvelles.`, + `🌱 Vous avez planté un arbre pour marquer le début de la journée et avez été récompensé par \`${randomAmount}\` coins pour votre action écologique.`, + `🚴 Vous avez fait une balade à vélo matinale et avez découvert \`${randomAmount}\` coins sur le bord du chemin.`, + `🌞 Vous avez salué le lever du soleil avec une méditation paisible et avez trouvé \`${randomAmount}\` coins cachés dans votre esprit calme.`, + `🌳 En ramassant des déchets dans le parc, vous avez trouvé \`${randomAmount}\` coins comme récompense pour garder l'environnement propre.`, + `🎨 Vous avez commencé la journée avec une séance de peinture et avez vendu votre première toile pour \`${randomAmount}\` coins.`, + `🐶 Vous avez promené le chien du voisin et avez été surpris avec \`${randomAmount}\` coins comme remerciement.`, + `📝 Vous avez tenu un journal de gratitude pour votre routine matinale et avez été récompensé par \`${randomAmount}\` coins pour chaque moment apprécié.`, + `🏃‍♂️ Vous avez fait une course matinale et avez découvert \`${randomAmount}\` coins le long du parcours.`, + `☕ Après avoir préparé un café revigorant, vous avez trouvé \`${randomAmount}\` coins au fond de votre tasse.`, + `🌻 Vous avez cultivé votre jardin et avez récolté \`${randomAmount}\` coins en légumes frais pour le petit-déjeuner.`, + `🎶 Vous avez écouté votre chanson préférée pour commencer la journée et avez été récompensé par \`${randomAmount}\` coins pour votre bon goût musical.`, + `🌈 Vous avez commencé la journée avec une séance de yoga revitalisante et avez trouvé \`${randomAmount}\` coins dans la position du lotus.`, + `💌 Vous avez envoyé des messages de bonnes nouvelles à vos proches et avez été récompensé par \`${randomAmount}\` coins pour répandre la joie.`, + `💻 Vous avez commencé votre journée de travail avec détermination et avez trouvé \`${randomAmount}\` coins cachés dans votre boîte de réception.`, + ]; + + const embed = new EmbedBuilder() + .setTitle("Argent Récupéré") + .setDescription(dailys[Math.floor(Math.random() * dailys.length)]) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + }, +}; diff --git a/commands/casino/deposit.js b/commands/casino/deposit.js index f687004..e5c8757 100644 --- a/commands/casino/deposit.js +++ b/commands/casino/deposit.js @@ -1,58 +1,78 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['dep', 'depot'], - description: 'Dépose vos coins dans votre compte en banque.', - emote: '💰', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const pocket = user.pocket - const bank = user.bank - - let title = 'Dépôt Impossible' - let description = '' - - if (args.length === 0) { - description = '❌ Vous devez spécifier un montant à déposer.' - } else if (args[0] === 'all') { - if (pocket <= 0) { - description = '❌ Vous n\'avez pas d\'argent à déposer.' - } else { - title = 'Dépôt Réussi' - description = `💰 Vous avez déposé \`${pocket}\` coins dans votre compte en banque.` - db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [0, pocket + bank, message.guild.id, message.author.id]); - } - } else if (isNaN(args[0])) { - description = '❌ Vous devez spécifier un montant valide à déposer.' - } else if (pocket <= 0) { - description = '❌ Vous n\'avez pas d\'argent à déposer.' - } else if (parseInt(args[0]) > pocket) { - description = '❌ Vous n\'avez pas assez d\'argent pour déposer cette somme.' - } else if (parseInt(args[0]) <= 0) { - description = '❌ Vous ne pouvez pas deposer une somme négative ou nulle.'; - } else { - title = 'Dépôt Réussi' - description = `💰 Vous avez déposé ${args[0]} coins dans votre compte en banque.` - db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [pocket - parseInt(args[0]), bank + parseInt(args[0]), message.guild.id, message.author.id]); - } - - const embed = new EmbedBuilder() - .setTitle(title) - .setDescription(description) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }, -}; \ No newline at end of file +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["dep", "depot"], + description: "Dépose vos coins dans votre compte en banque.", + emote: "💰", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + const pocket = user.pocket; + const bank = user.bank; + + let title = "Dépôt Impossible"; + let description = ""; + + if (args.length === 0) { + description = "❌ Vous devez spécifier un montant à déposer."; + } else if (args[0] === "all") { + if (pocket <= 0) { + description = "❌ Vous n'avez pas d'argent à déposer."; + } else { + title = "Dépôt Réussi"; + description = `💰 Vous avez déposé \`${pocket}\` coins dans votre compte en banque.`; + db.run( + `UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, + [0, pocket + bank, message.guild.id, message.author.id], + ); + } + } else if (isNaN(args[0])) { + description = "❌ Vous devez spécifier un montant valide à déposer."; + } else if (pocket <= 0) { + description = "❌ Vous n'avez pas d'argent à déposer."; + } else if (parseInt(args[0]) > pocket) { + description = + "❌ Vous n'avez pas assez d'argent pour déposer cette somme."; + } else if (parseInt(args[0]) <= 0) { + description = + "❌ Vous ne pouvez pas deposer une somme négative ou nulle."; + } else { + title = "Dépôt Réussi"; + description = `💰 Vous avez déposé ${args[0]} coins dans votre compte en banque.`; + db.run( + `UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, + [ + pocket - parseInt(args[0]), + bank + parseInt(args[0]), + message.guild.id, + message.author.id, + ], + ); + } + + const embed = new EmbedBuilder() + .setTitle(title) + .setDescription(description) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + }, +}; diff --git a/commands/casino/me.js b/commands/casino/me.js index e97f67a..f3eee27 100644 --- a/commands/casino/me.js +++ b/commands/casino/me.js @@ -1,41 +1,66 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['coin', 'coins', 'money', 'balance', 'bal', 'wallet', 'cash', 'lvl', 'level', 'niv', 'niveau'], - description: 'Affiche les coins du membre mentionné ou de l\'auteur du message.', - emote: '💵', - utilisation: '[@membre]', + aliases: [ + "coin", + "coins", + "money", + "balance", + "bal", + "wallet", + "cash", + "lvl", + "level", + "niv", + "niveau", + ], + description: + "Affiche les coins du membre mentionné ou de l'auteur du message.", + emote: "💵", + utilisation: "[@membre]", permission: 0, async execute(message, args, client) { const member = message.mentions.members.first() || message.member; const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, member.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - const pocket = Math.round(user.pocket) - const bank = Math.round(user.bank) - const reputation = user.reputation - const niveau = user.lvl - const xp = user.xp - const tdrop = Math.round(user.tdroper) - - let anti_rob = `` - if (user.antiRob + 7200000 > Date.now()) { - anti_rob = `\n> :shield: **Anti-Rob:** \`${Math.floor((user.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.` + const pocket = Math.round(user.pocket); + const bank = Math.round(user.bank); + const reputation = user.reputation; + const niveau = user.lvl; + const xp = user.xp; + const tdrop = Math.round(user.tdroper); + + let anti_rob = ``; + if (user.antiRob + 7200000 > Date.now()) { + anti_rob = `\n> :shield: **Anti-Rob:** \`${Math.floor((user.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.`; } - + const embed = new EmbedBuilder() - .setAuthor({ name: `Détails du Compte de ${member.user.tag}`, iconURL: member.user.displayAvatarURL() }) - .setDescription(`> :moneybag: **Poche:** \`${pocket}\`\n> :bank: **Banque:** \`${bank}\`\n> :star2: **Réputation:** \`${reputation}\`\n\n> :bar_chart: **Niveau:** \`${niveau}\`\n> :small_orange_diamond: **Xp:** \`${xp}/${niveau*100}\`\n\nCoins donnés à une team: \`${tdrop}\`🎁`) + .setAuthor({ + name: `Détails du Compte de ${member.user.tag}`, + iconURL: member.user.displayAvatarURL(), + }) + .setDescription( + `> :moneybag: **Poche:** \`${pocket}\`\n> :bank: **Banque:** \`${bank}\`\n> :star2: **Réputation:** \`${reputation}\`\n\n> :bar_chart: **Niveau:** \`${niveau}\`\n> :small_orange_diamond: **Xp:** \`${xp}/${niveau * 100}\`\n\nCoins donnés à une team: \`${tdrop}\`🎁`, + ) .setColor(await embedColor(member.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); }, -}; \ No newline at end of file +}; diff --git a/commands/casino/pay.js b/commands/casino/pay.js index ed9a813..de27fa9 100644 --- a/commands/casino/pay.js +++ b/commands/casino/pay.js @@ -1,105 +1,137 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: [], - description: 'Paye un membre de votre serveur.', - emote: '💳', - utilisation: ' <@membre>', - permission: 0, - - async execute(message, args, client) { - let amount; - const member = message.mentions.members.first(); - const color = await embedColor(message.author.id, message.guild.id) - const footer = { text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() } - - const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row.pocket); - }); - }); - - if (!member) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez mentionner un membre du serveur.') - .setColor(color) - .setTimestamp() - .setFooter(footer) - ], allowedMentions: { repliedUser: false } }); - } - - if (!args[0]) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez spécifier un montant à payer.') - .setColor(color) - .setTimestamp() - .setFooter(footer) - ], allowedMentions: { repliedUser: false } }); - - } else if (args[0] === 'all') { - amount = pocket; - - } else if (isNaN(args[0])) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez spécifier un montant valide.') - .setColor(color) - .setTimestamp() - .setFooter(footer) - ], allowedMentions: { repliedUser: false } }); - - } else if (args[0] <= 0) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez spécifier un montant supérieur à \`0\`.') - .setColor(color) - .setTimestamp() - .setFooter(footer) - ], allowedMentions: { repliedUser: false } }); - - } else if (args[0] > pocket) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous n\'avez pas assez d\'argent pour effectuer cette transaction.') - .setColor(color) - .setTimestamp() - .setFooter(footer) - ], allowedMentions: { repliedUser: false } }); - - } else if (!Number.isInteger(Number(args[0]))) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez spécifier un montant entier.') - .setColor(color) - .setTimestamp() - .setFooter(footer) - ], allowedMentions: { repliedUser: false } }); - - } else { - amount = args[0]; - } - - db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, message.author.id]); - db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]); - - message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Paiement') - .setDescription(`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`) - .setColor(color) - .setTimestamp() - .setFooter(footer) - ], allowedMentions: { repliedUser: false } }); - }, -}; +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: [], + description: "Paye un membre de votre serveur.", + emote: "💳", + utilisation: " <@membre>", + permission: 0, + + async execute(message, args, client) { + let amount; + const member = message.mentions.members.first(); + const color = await embedColor(message.author.id, message.guild.id); + const footer = { + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }; + + const pocket = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row.pocket); + }, + ); + }); + + if (!member) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez mentionner un membre du serveur.") + .setColor(color) + .setTimestamp() + .setFooter(footer), + ], + allowedMentions: { repliedUser: false }, + }); + } + + if (!args[0]) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez spécifier un montant à payer.") + .setColor(color) + .setTimestamp() + .setFooter(footer), + ], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] === "all") { + amount = pocket; + } else if (isNaN(args[0])) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez spécifier un montant valide.") + .setColor(color) + .setTimestamp() + .setFooter(footer), + ], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] <= 0) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez spécifier un montant supérieur à `0`.") + .setColor(color) + .setTimestamp() + .setFooter(footer), + ], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] > pocket) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + "❌ Vous n'avez pas assez d'argent pour effectuer cette transaction.", + ) + .setColor(color) + .setTimestamp() + .setFooter(footer), + ], + allowedMentions: { repliedUser: false }, + }); + } else if (!Number.isInteger(Number(args[0]))) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez spécifier un montant entier.") + .setColor(color) + .setTimestamp() + .setFooter(footer), + ], + allowedMentions: { repliedUser: false }, + }); + } else { + amount = args[0]; + } + + db.run( + `UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, + [amount, message.guild.id, message.author.id], + ); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, + [amount, message.guild.id, member.id], + ); + + message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Paiement") + .setDescription( + `💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`, + ) + .setColor(color) + .setTimestamp() + .setFooter(footer), + ], + allowedMentions: { repliedUser: false }, + }); + }, +}; diff --git a/commands/casino/recolt.js b/commands/casino/recolt.js index abc77f4..9b3f7af 100644 --- a/commands/casino/recolt.js +++ b/commands/casino/recolt.js @@ -1,52 +1,69 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['recolt', 'recolte'], - description: 'Recolter des objets que vous pourrez vendre ensuite.', - emote: '💼', - utilisation: '', + aliases: ["recolt", "recolte"], + description: "Recolter des objets que vous pourrez vendre ensuite.", + emote: "💼", + utilisation: "", permission: 0, async execute(message, args, client) { const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - const lastRecolt = user.lastRecolt - const objet = user.objet - + const lastRecolt = user.lastRecolt; + const objet = user.objet; + if (lastRecolt > Date.now() - 2700000) { const embed = new EmbedBuilder() - .setTitle('Recolte Impossible') - .setDescription(`❌ La météo annonce une tempete... Veuillez attendre \`${Math.floor((lastRecolt + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir recolter.`) + .setTitle("Recolte Impossible") + .setDescription( + `❌ La météo annonce une tempete... Veuillez attendre \`${Math.floor((lastRecolt + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir recolter.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - + const randomAmount = Math.floor(Math.random() * 2) + 1; - db.run(`UPDATE users SET objet = ?, lastRecolt = ? WHERE guildId = ? AND userId = ?`, [objet + randomAmount, Date.now(), message.guild.id, message.author.id]); - + db.run( + `UPDATE users SET objet = ?, lastRecolt = ? WHERE guildId = ? AND userId = ?`, + [objet + randomAmount, Date.now(), message.guild.id, message.author.id], + ); + const recolts = [ `🍒 Vous avez recolté des cerises sur ${randomAmount} arbre(s) dans votre jardin.`, `🌽 Vous avez recolté ${randomAmount} parcelle(s) de maïs et vous avez tout mis à l'abri.`, - `🌳 Vous avez trouvé de quoi vous chauffer en vous promenant en foret, vous rentrer chez vous avec ${randomAmount} grosse(s) bûche(s) de bois.` + `🌳 Vous avez trouvé de quoi vous chauffer en vous promenant en foret, vous rentrer chez vous avec ${randomAmount} grosse(s) bûche(s) de bois.`, ]; - const embed = new EmbedBuilder() - .setTitle('Objet recolter') + .setTitle("Objet recolter") .setDescription(recolts[Math.floor(Math.random() * recolts.length)]) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); }, -}; \ No newline at end of file +}; diff --git a/commands/casino/rep.js b/commands/casino/rep.js index 604a95d..0ffcedc 100644 --- a/commands/casino/rep.js +++ b/commands/casino/rep.js @@ -1,92 +1,150 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['reputation'], + aliases: ["reputation"], description: `Ajoute un point de reputation a un membre.`, - emote: '➕', - utilisation: '', + emote: "➕", + utilisation: "", permission: 0, async execute(message, args, client) { const member = message.mentions.members.first()?.id || args[0]; if (args.length < 1 && !member) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez spécifier un membre du serveur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez spécifier un membre du serveur.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } const lastRep = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row.lastRep); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row.lastRep); + }, + ); }); if (lastRep > Date.now() - 7200000) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Ajout Impossible') - .setDescription(`❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastRep + 5400000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Ajout Impossible") + .setDescription( + `❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastRep + 5400000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } const userReputation = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member], async (err, row) => { - if (err) reject(err); - if (!row) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ L\'utilisateur spécifié n\'existe pas.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }); - } - resolve(parseInt(row.reputation)); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, member], + async (err, row) => { + if (err) reject(err); + if (!row) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ L'utilisateur spécifié n'existe pas.") + .setColor( + await embedColor(message.author.id, message.guild.id), + ) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + resolve(parseInt(row.reputation)); + }, + ); }); if (member === message.author.id) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous ne pouvez pas vous donner une réputation à vous-même.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + "❌ Vous ne pouvez pas vous donner une réputation à vous-même.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } - db.run(`UPDATE users SET lastRep = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + db.run( + `UPDATE users SET lastRep = ? WHERE guildId = ? AND userId = ?`, + [Date.now(), message.guild.id, message.author.id], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); - db.run(`UPDATE users SET reputation = reputation + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, member], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + db.run( + `UPDATE users SET reputation = reputation + 1 WHERE guildId = ? AND userId = ?`, + [message.guild.id, member], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); - message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Reputation ajouté !') - .setDescription('Vous avez ajouter une reputation à <@' + member + '>, qui a maintement `' + (userReputation + 1) + '` reputation !') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }); + message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Reputation ajouté !") + .setDescription( + "Vous avez ajouter une reputation à <@" + + member + + ">, qui a maintement `" + + (userReputation + 1) + + "` reputation !", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); }, -}; \ No newline at end of file +}; diff --git a/commands/casino/rob.js b/commands/casino/rob.js index f750bf9..fba30db 100644 --- a/commands/casino/rob.js +++ b/commands/casino/rob.js @@ -1,101 +1,158 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: [], - description: 'Vole les coins de la main d\'un membre.', - emote: '🦹', - utilisation: '<@membre>', - permission: 0, - - async execute(message, args, client) { - const member = message.mentions.users.first(); - if (!member) { - const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous devez mentionner un membre.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const memberlist = await new Promise((resolve, reject) => { - db.all(`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, user.teamId], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - if (memberlist.includes(member)) return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez choisir un membre qui __n\'est pas__ dans votre team.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter(footer) - ], allowedMentions: { repliedUser: false } }); - - if (user.lastRob + 7200000 > Date.now()) { - const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription(`❌ Vous devez encore attendre ${Math.floor((user.lastRob + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const memberInfo = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - if (memberInfo.antiRob + 7200000 > Date.now()) { - const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription(`❌ Vous ne pouvez pas voler <@${member.id}> pour le moment, il est protégé par un bouclier anti-vol pendant encore \`${Math.floor((memberInfo.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const memberPocket = memberInfo.pocket; - - if (memberPocket <= 0) { - const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription(`❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const amount = Math.floor(Math.random() * memberPocket) + 1; - db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]); - db.run(`UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`, [amount, Date.now(), message.guild.id, message.author.id]); - - const embed = new EmbedBuilder() - .setTitle('Vol') - .setDescription(`💰 Vous avez volé ${amount} à <@${member.id}>.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }, -}; +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: [], + description: "Vole les coins de la main d'un membre.", + emote: "🦹", + utilisation: "<@membre>", + permission: 0, + + async execute(message, args, client) { + const member = message.mentions.users.first(); + if (!member) { + const embed = new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Vous devez mentionner un membre.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + const memberlist = await new Promise((resolve, reject) => { + db.all( + `SELECT userId FROM users WHERE guildId = ? AND teamId = ?`, + [message.guild.id, user.teamId], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + if (memberlist.includes(member)) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + "❌ Veuillez choisir un membre qui __n'est pas__ dans votre team.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter(footer), + ], + allowedMentions: { repliedUser: false }, + }); + + if (user.lastRob + 7200000 > Date.now()) { + const embed = new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + `❌ Vous devez encore attendre ${Math.floor((user.lastRob + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + + const memberInfo = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, member.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + if (memberInfo.antiRob + 7200000 > Date.now()) { + const embed = new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + `❌ Vous ne pouvez pas voler <@${member.id}> pour le moment, il est protégé par un bouclier anti-vol pendant encore \`${Math.floor((memberInfo.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + + const memberPocket = memberInfo.pocket; + + if (memberPocket <= 0) { + const embed = new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + `❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + + const amount = Math.floor(Math.random() * memberPocket) + 1; + db.run( + `UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, + [amount, message.guild.id, member.id], + ); + db.run( + `UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`, + [amount, Date.now(), message.guild.id, message.author.id], + ); + + const embed = new EmbedBuilder() + .setTitle("Vol") + .setDescription(`💰 Vous avez volé ${amount} à <@${member.id}>.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + }, +}; diff --git a/commands/casino/sell.js b/commands/casino/sell.js index 633a62f..d696603 100644 --- a/commands/casino/sell.js +++ b/commands/casino/sell.js @@ -1,182 +1,262 @@ -const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + EmbedBuilder, + ActionRowBuilder, + StringSelectMenuBuilder, + StringSelectMenuOptionBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['vendre'], - description: 'Affiche le menu de vente des objets.', - emote: '🛍️', - utilisation: '', - permission: 0, + aliases: ["vendre"], + description: "Affiche le menu de vente des objets.", + emote: "🛍️", + utilisation: "", + permission: 0, - async execute(message, args, client) { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); + async execute(message, args, client) { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + const embed = new EmbedBuilder() + .setTitle("🛍️ Shop") + .setThumbnail(message.guild.iconURL()) + .setDescription( + `Sélectionnez un nombre d'objet à vendre.\n\nVous avez \`${user.objet}\`objet.\nAttention, il est possible que de petit pourboire de client soit rajouté.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + const select = new StringSelectMenuBuilder() + .setCustomId("sell") + .setPlaceholder("Sélectionnez un nombre d'objet") + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("👶 Debutant") + .setValue("1") + .setDescription("Vend un objet, pour `200`coins.") + .setEmoji("👶") + .setDefault(false), + ) + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("🚸 Enfant") + .setValue("2") + .setDescription("Vend deux objet, pour `400`coins.") + .setEmoji("🚸") + .setDefault(false), + ) + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("🔞 Mineur") + .setValue("3") + .setDescription("Vend trois objet, pour `600`coins.") + .setEmoji("🔞") + .setDefault(false), + ) + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("🧐 Expert") + .setValue("4") + .setDescription("Vend quatre objet, pour `800`coins.") + .setEmoji("🧐") + .setDefault(false), + ) + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("👑 Mythique") + .setValue("5") + .setDescription("Vend cinq objet, pour `1 000`coins.") + .setEmoji("👑") + .setDefault(false), + ) + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("👑 Legendaire") + .setValue("10") + .setDescription("Vend dix objet, pour `10 000`coins !") + .setEmoji("👑") + .setDefault(false), + ) + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("👑 Ultime") + .setValue("25") + .setDescription("Vend 25 objet, pour `30 000`coins !") + .setEmoji("👑") + .setDefault(false), + ); + + const row = new ActionRowBuilder().addComponents(select); + + message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + client.on("interactionCreate", async (interaction) => { + if (!interaction.user.id !== message.author.id) return; + if (!interaction.isSelectMenu()) return; + + if (!interaction.customId === "sell") return; + const selected = interaction.values[0]; + + if (selected === "1") { + if (user.objet < 1) { + return interaction.reply({ + content: "Vous n'avez pas assez d'objet pour en vendre autant.", + ephemeral: true, + }); + } + db.run( + `UPDATE users SET objet = objet - 1, pocket = pocket + 200 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + } + + if (selected === "2") { + if (user.objet < 2) { + return interaction.reply({ + content: "Vous n'avez pas assez d'objet pour en vendre autant.", + ephemeral: true, + }); + } + db.run( + `UPDATE users SET objet = objet - 2, pocket = pocket + 400 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + } + + if (selected === "3") { + if (user.objet < 3) { + return interaction.reply({ + content: "Vous n'avez pas assez d'objet pour en vendre autant.", + ephemeral: true, + }); + } + db.run( + `UPDATE users SET objet = objet - 3, pocket = pocket + 600 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + } + + if (selected === "4") { + if (user.objet < 4) { + return interaction.reply({ + content: "Vous n'avez pas assez d'objet pour en vendre autant.", + ephemeral: true, + }); + } + db.run( + `UPDATE users SET objet = objet - 4, pocket = pocket + 850 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + } + + if (selected === "5") { + if (user.objet < 5) { + return interaction.reply({ + content: "Vous n'avez pas assez d'objet pour en vendre autant.", + ephemeral: true, + }); + } + db.run( + `UPDATE users SET objet = objet - 5, pocket = pocket + 1500 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + } + + if (selected === "10") { + if (user.objet < 10) { + return interaction.reply({ + content: "Vous n'avez pas assez d'objet pour en vendre autant.", + ephemeral: true, + }); + } + db.run( + `UPDATE users SET objet = objet - 10, pocket = pocket + 10500 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + } + + if (selected === "25") { + if (user.objet < 25) { + return interaction.reply({ + content: "Vous n'avez pas assez d'objet pour en vendre autant.", + ephemeral: true, + }); + } + db.run( + `UPDATE users SET objet = objet - 25, pocket = pocket + 31000 WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + ); + } + + if (select <= 9) { const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setThumbnail(message.guild.iconURL()) - .setDescription(`Sélectionnez un nombre d'objet à vendre.\n\nVous avez \`${user.objet}\`objet.\nAttention, il est possible que de petit pourboire de client soit rajouté.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setTitle("🛍️ Shop") + .setDescription( + `Vous avez vendu \`${select}\`objet pour \`${200 * select}\`coins !`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - const select = new StringSelectMenuBuilder() - .setCustomId('sell') - .setPlaceholder('Sélectionnez un nombre d\'objet') - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('👶 Debutant') - .setValue('1') - .setDescription('Vend un objet, pour \`200\`coins.') - .setEmoji('👶') - .setDefault(false) - ) - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('🚸 Enfant') - .setValue('2') - .setDescription('Vend deux objet, pour \`400\`coins.') - .setEmoji('🚸') - .setDefault(false) - ) - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('🔞 Mineur') - .setValue('3') - .setDescription('Vend trois objet, pour \`600\`coins.') - .setEmoji('🔞') - .setDefault(false) - ) - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('🧐 Expert') - .setValue('4') - .setDescription('Vend quatre objet, pour \`800\`coins.') - .setEmoji('🧐') - .setDefault(false), - ) - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('👑 Mythique') - .setValue('5') - .setDescription('Vend cinq objet, pour \`1 000\`coins.') - .setEmoji('👑') - .setDefault(false), - ) - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('👑 Legendaire') - .setValue('10') - .setDescription('Vend dix objet, pour \`10 000\`coins !') - .setEmoji('👑') - .setDefault(false), - ) - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('👑 Ultime') - .setValue('25') - .setDescription('Vend 25 objet, pour \`30 000\`coins !') - .setEmoji('👑') - .setDefault(false), - ) - - const row = new ActionRowBuilder() - .addComponents(select); - - message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - - client.on('interactionCreate', async (interaction) => { - if (!interaction.user.id !== message.author.id) return; - if (!interaction.isSelectMenu()) return; - - if (!interaction.customId === 'sell') return - const selected = interaction.values[0]; - - if (selected === '1') { - if (user.objet < 1) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); - } - db.run(`UPDATE users SET objet = objet - 1, pocket = pocket + 200 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - } - - if (selected === '2') { - if (user.objet < 2) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); - } - db.run(`UPDATE users SET objet = objet - 2, pocket = pocket + 400 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - } - - if (selected === '3') { - if (user.objet < 3) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); - } - db.run(`UPDATE users SET objet = objet - 3, pocket = pocket + 600 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - } - - if (selected === '4') { - if (user.objet < 4) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); - } - db.run(`UPDATE users SET objet = objet - 4, pocket = pocket + 850 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - } - - if (selected === '5') { - if (user.objet < 5) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); - } - db.run(`UPDATE users SET objet = objet - 5, pocket = pocket + 1500 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - } - - if (selected === '10') { - if (user.objet < 10) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); - } - db.run(`UPDATE users SET objet = objet - 10, pocket = pocket + 10500 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - } - - if (selected === '25') { - if (user.objet < 25) { - return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); - } - db.run(`UPDATE users SET objet = objet - 25, pocket = pocket + 31000 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); - } - - - if (select <= 9) { - const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setDescription(`Vous avez vendu \`${select}\`objet pour \`${200 * select}\`coins !`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - else if (select === 10){ - const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setDescription(`Vous avez vendu \`${select}\`objet pour \`10000\`coins !`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - else if (select === 25){ - const embed = new EmbedBuilder() - .setTitle('🛍️ Shop') - .setDescription(`Vous avez vendu \`${select}\`objet pour \`30000\`coins !`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } + interaction.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, }); - }, -}; \ No newline at end of file + } else if (select === 10) { + const embed = new EmbedBuilder() + .setTitle("🛍️ Shop") + .setDescription( + `Vous avez vendu \`${select}\`objet pour \`10000\`coins !`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + interaction.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (select === 25) { + const embed = new EmbedBuilder() + .setTitle("🛍️ Shop") + .setDescription( + `Vous avez vendu \`${select}\`objet pour \`30000\`coins !`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + interaction.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + }); + }, +}; diff --git a/commands/casino/top.js b/commands/casino/top.js index ef690c1..0def4b8 100644 --- a/commands/casino/top.js +++ b/commands/casino/top.js @@ -1,209 +1,315 @@ -const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['leaderboard', 'lb', 'ttop'], - description: 'Affiche le top 10 des membres/teams du serveur.', - emote: '🏆', - utilisation: '[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]', - permission: 0, - - async execute(message, args, client) { - if (args[0] === 'coins' || args[0] === 'coin' || args[0] === 'global' || args[0] === 'money') { - args[0] = 'coins' - } else if (args[0] === 'pocket' || args[0] === 'cash' || args[0] === 'wallet' || args[0] === 'porte-monnaie' || args[0] === 'poche') { - args[0] = 'pocket' - } else if (args[0] === 'bank' || args[0] === 'banque' || args[0] === 'coffre' || args[0] === 'coffre-fort' || args[0] === 'bk') { - args[0] = 'bank' - } else if (args[0] === 'reputation' || args[0] === 'rep' || args[0] === 'réputation' || args[0] === 'reput') { - args[0] = 'reputation' - } else if (args[0] === 'niveau' || args[0] === 'lvl' || args[0] === 'level' || args[0] === 'lvl') { - args[0] = 'niveau' - } else if (args[0] === 'team' || args[0] === 't') { - args[0] = 'team' - } else if (args[0] === 'teamreputation' || args[0] === 'treputation' || args[0] === 'teamrep' || args[0] === 'trep') { - args[0] = 'team' - } else if (args[0] === 'teamdonnateur' || args[0] === ' tdonnateur' || args[0] === 'tdroper' || args[0] === ' tdropper' || args[0] === ' teamdrop' || args[0] === 'tdrop' || args[0] === 'teamdroper' || args[0] === 'teamdropper') { - args[0] = 'teamdroper' - } else if (!args[0]) { - args[0] = 'coins' - } else { - args[0] = 'coins' - message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('Argument invalide') - .setDescription(`Vous pouvez utiliser les arguments suivants: \`coins\`, \`pocket\`, \`bank\`, \`reputation\`, \`niveau\`, \`team\`, \`teamreputation\`, \`teamdonnateur\`, ou ne rien mettre pour afficher le top 10 des membres du serveur.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) - } - - async function leaderboard (type) { - let data; - if (type === 'coins') { - data = await new Promise((resolve, reject) => { - db.all(`SELECT userId, pocket+bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - } else if (type === 'pocket') { - data = await new Promise((resolve, reject) => { - db.all(`SELECT userId, pocket AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - } else if (type === 'bank') { - data = await new Promise((resolve, reject) => { - db.all(`SELECT userId, bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - } else if (type === 'reputation') { - data = await new Promise((resolve, reject) => { - db.all(`SELECT userId, reputation AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - } else if (type === 'niveau') { - data = await new Promise((resolve, reject) => { - db.all(`SELECT userId, lvl AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - } else if (type === 'team') { - data = await new Promise((resolve, reject) => { - db.all(`SELECT name, bank AS coins FROM teams WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - } else if (type === 'teamreputation') { - data = await new Promise((resolve, reject) => { - db.all(`SELECT name, reputation AS teams FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - } else if (type === 'teamdroper') { - data = await new Promise((resolve, reject) => { - db.all(`SELECT userId, teamdroper AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - } - - const emoji = { - coins: '🪙', - pocket: '💰', - bank: '🏦', - reputation: '🔺', - niveau: '📊', - team: '👑', - teamreputation: '🔺', - teamdroper: '🎁' - } - - let leaderboard = data.map((row, i) => { - let position; - switch (i) { - case 0: - position = ':first_place:'; - break; - case 1: - position = ':second_place:'; - break; - case 2: - position = ':third_place:'; - break; - default: - position = `**${i + 1}.**`; - } - return `${position} <@${row.userId}> - \`${row.coins}\` ${emoji[type]}`; - }).join('\n\n'); - - const embed = new EmbedBuilder() - .setTitle('🏆 Top 10 des membres du serveur') - .setDescription(`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return embed - } - - const embed = await leaderboard(args[0]); - - const select = new StringSelectMenuBuilder() - .setCustomId('topLeaderboard') - .setPlaceholder('Choisissez un type de leaderboard') - .addOptions( - new StringSelectMenuOptionBuilder() - .setLabel('Global') - .setEmoji('🪙') - .setDescription('Affiche le top en fonction de la somme de l\'argent en poche et en banque') - .setValue('coins'), - new StringSelectMenuOptionBuilder() - .setLabel('Poche') - .setEmoji('💰') - .setDescription('Affiche le top en fonction de l\'argent en poche') - .setValue('pocket'), - new StringSelectMenuOptionBuilder() - .setLabel('Banque') - .setEmoji('🏦') - .setDescription('Affiche le top en fonction de l\'argent en banque') - .setValue('bank'), - new StringSelectMenuOptionBuilder() - .setLabel('Réputation') - .setEmoji('🔺') - .setDescription('Affiche le top en fonction de la réputation') - .setValue('reputation'), - new StringSelectMenuOptionBuilder() - .setLabel('Niveau') - .setEmoji('📊') - .setDescription('Affiche le top en fonction du niveau') - .setValue('niveau'), - new StringSelectMenuOptionBuilder() - .setLabel('Teams bank') - .setEmoji('👑') - .setDescription('Affiche le top en fonction de l\'argent des teams') - .setValue('team'), - new StringSelectMenuOptionBuilder() - .setLabel('Teams réputation') - .setEmoji('🔺') - .setDescription('Affiche le top en fonction de la réputation des teams') - .setValue('teamreputation'), - new StringSelectMenuOptionBuilder() - .setLabel('TeamDroper') - .setEmoji('🎁') - .setDescription('Affiche le top en fonction du nombre de coins donnés à une team') - .setValue('teamdroper') - ); - - const row = new ActionRowBuilder() - .addComponents(select); - - const replyMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }) - - client.on('interactionCreate', async (interaction) => { - if (!interaction.isStringSelectMenu()) return; - - if (interaction.customId === 'topLeaderboard') { - const selected = interaction.values[0]; - - await interaction.deferUpdate(); - - const embed = await leaderboard(selected); - replyMessage.edit({ embeds: [embed] }); - interaction.followUp({ content: 'Leaderboard mis à jour', ephemeral: true }); - } - }); - }, -} \ No newline at end of file +const { + EmbedBuilder, + ActionRowBuilder, + StringSelectMenuBuilder, + StringSelectMenuOptionBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["leaderboard", "lb", "ttop"], + description: "Affiche le top 10 des membres/teams du serveur.", + emote: "🏆", + utilisation: + "[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]", + permission: 0, + + async execute(message, args, client) { + if ( + args[0] === "coins" || + args[0] === "coin" || + args[0] === "global" || + args[0] === "money" + ) { + args[0] = "coins"; + } else if ( + args[0] === "pocket" || + args[0] === "cash" || + args[0] === "wallet" || + args[0] === "porte-monnaie" || + args[0] === "poche" + ) { + args[0] = "pocket"; + } else if ( + args[0] === "bank" || + args[0] === "banque" || + args[0] === "coffre" || + args[0] === "coffre-fort" || + args[0] === "bk" + ) { + args[0] = "bank"; + } else if ( + args[0] === "reputation" || + args[0] === "rep" || + args[0] === "réputation" || + args[0] === "reput" + ) { + args[0] = "reputation"; + } else if ( + args[0] === "niveau" || + args[0] === "lvl" || + args[0] === "level" || + args[0] === "lvl" + ) { + args[0] = "niveau"; + } else if (args[0] === "team" || args[0] === "t") { + args[0] = "team"; + } else if ( + args[0] === "teamreputation" || + args[0] === "treputation" || + args[0] === "teamrep" || + args[0] === "trep" + ) { + args[0] = "team"; + } else if ( + args[0] === "teamdonnateur" || + args[0] === " tdonnateur" || + args[0] === "tdroper" || + args[0] === " tdropper" || + args[0] === " teamdrop" || + args[0] === "tdrop" || + args[0] === "teamdroper" || + args[0] === "teamdropper" + ) { + args[0] = "teamdroper"; + } else if (!args[0]) { + args[0] = "coins"; + } else { + args[0] = "coins"; + message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Argument invalide") + .setDescription( + `Vous pouvez utiliser les arguments suivants: \`coins\`, \`pocket\`, \`bank\`, \`reputation\`, \`niveau\`, \`team\`, \`teamreputation\`, \`teamdonnateur\`, ou ne rien mettre pour afficher le top 10 des membres du serveur.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + async function leaderboard(type) { + let data; + if (type === "coins") { + data = await new Promise((resolve, reject) => { + db.all( + `SELECT userId, pocket+bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + } else if (type === "pocket") { + data = await new Promise((resolve, reject) => { + db.all( + `SELECT userId, pocket AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + } else if (type === "bank") { + data = await new Promise((resolve, reject) => { + db.all( + `SELECT userId, bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + } else if (type === "reputation") { + data = await new Promise((resolve, reject) => { + db.all( + `SELECT userId, reputation AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + } else if (type === "niveau") { + data = await new Promise((resolve, reject) => { + db.all( + `SELECT userId, lvl AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + } else if (type === "team") { + data = await new Promise((resolve, reject) => { + db.all( + `SELECT name, bank AS coins FROM teams WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + } else if (type === "teamreputation") { + data = await new Promise((resolve, reject) => { + db.all( + `SELECT name, reputation AS teams FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + } else if (type === "teamdroper") { + data = await new Promise((resolve, reject) => { + db.all( + `SELECT userId, teamdroper AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + } + + const emoji = { + coins: "🪙", + pocket: "💰", + bank: "🏦", + reputation: "🔺", + niveau: "📊", + team: "👑", + teamreputation: "🔺", + teamdroper: "🎁", + }; + + let leaderboard = data + .map((row, i) => { + let position; + switch (i) { + case 0: + position = ":first_place:"; + break; + case 1: + position = ":second_place:"; + break; + case 2: + position = ":third_place:"; + break; + default: + position = `**${i + 1}.**`; + } + return `${position} <@${row.userId}> - \`${row.coins}\` ${emoji[type]}`; + }) + .join("\n\n"); + + const embed = new EmbedBuilder() + .setTitle("🏆 Top 10 des membres du serveur") + .setDescription( + `Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return embed; + } + + const embed = await leaderboard(args[0]); + + const select = new StringSelectMenuBuilder() + .setCustomId("topLeaderboard") + .setPlaceholder("Choisissez un type de leaderboard") + .addOptions( + new StringSelectMenuOptionBuilder() + .setLabel("Global") + .setEmoji("🪙") + .setDescription( + "Affiche le top en fonction de la somme de l'argent en poche et en banque", + ) + .setValue("coins"), + new StringSelectMenuOptionBuilder() + .setLabel("Poche") + .setEmoji("💰") + .setDescription("Affiche le top en fonction de l'argent en poche") + .setValue("pocket"), + new StringSelectMenuOptionBuilder() + .setLabel("Banque") + .setEmoji("🏦") + .setDescription("Affiche le top en fonction de l'argent en banque") + .setValue("bank"), + new StringSelectMenuOptionBuilder() + .setLabel("Réputation") + .setEmoji("🔺") + .setDescription("Affiche le top en fonction de la réputation") + .setValue("reputation"), + new StringSelectMenuOptionBuilder() + .setLabel("Niveau") + .setEmoji("📊") + .setDescription("Affiche le top en fonction du niveau") + .setValue("niveau"), + new StringSelectMenuOptionBuilder() + .setLabel("Teams bank") + .setEmoji("👑") + .setDescription("Affiche le top en fonction de l'argent des teams") + .setValue("team"), + new StringSelectMenuOptionBuilder() + .setLabel("Teams réputation") + .setEmoji("🔺") + .setDescription( + "Affiche le top en fonction de la réputation des teams", + ) + .setValue("teamreputation"), + new StringSelectMenuOptionBuilder() + .setLabel("TeamDroper") + .setEmoji("🎁") + .setDescription( + "Affiche le top en fonction du nombre de coins donnés à une team", + ) + .setValue("teamdroper"), + ); + + const row = new ActionRowBuilder().addComponents(select); + + const replyMessage = await message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + client.on("interactionCreate", async (interaction) => { + if (!interaction.isStringSelectMenu()) return; + + if (interaction.customId === "topLeaderboard") { + const selected = interaction.values[0]; + + await interaction.deferUpdate(); + + const embed = await leaderboard(selected); + replyMessage.edit({ embeds: [embed] }); + interaction.followUp({ + content: "Leaderboard mis à jour", + ephemeral: true, + }); + } + }); + }, +}; diff --git a/commands/casino/withdraw.js b/commands/casino/withdraw.js index 8b3a87e..d3e3cac 100644 --- a/commands/casino/withdraw.js +++ b/commands/casino/withdraw.js @@ -1,58 +1,79 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['ret', 'retrait', 'with', 'withdraw', 'wd', 'take', 'wh'], - description: 'Retire vos coins de votre compte banquaire.', - emote: '🏦', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const pocket = user.pocket; - const bank = user.bank; - - let title = 'Retrait Impossible'; - let description = ''; - - if (args.length === 0) { - description = '❌ Vous devez spécifier un montant à retirer.'; - } else if (args[0] === 'all') { - if (bank <= 0) { - description = '❌ Vous n\'avez pas d\'argent à retirer de votre compte en banque.'; - } else { - title = 'Retrait Réussi'; - description = `🏦 Vous avez retiré \`${bank}\` coins de votre compte en banque.`; - db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [pocket + bank, 0, message.guild.id, message.author.id]); - } - } else if (isNaN(args[0])) { - description = '❌ Vous devez spécifier un montant valide à retirer.'; - } else if (bank <= 0) { - description = '❌ Vous n\'avez pas d\'argent à retirer.' - } else if (parseInt(args[0]) > bank) { - description = '❌ Vous n\'avez pas assez d\'argent dans votre compte en banque pour retirer cette somme.'; - } else if (parseInt(args[0]) <= 0) { - description = '❌ Vous ne pouvez pas retirer une somme négative ou nulle.'; - } else { - title = 'Retrait Réussi'; - description = `🏦 Vous avez retiré ${args[0]} coins de votre compte en banque.`; - db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [pocket + parseInt(args[0]), bank - parseInt(args[0]), message.guild.id, message.author.id]); - } - - const embed = new EmbedBuilder() - .setTitle(title) - .setDescription(description) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }, -}; +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["ret", "retrait", "with", "withdraw", "wd", "take", "wh"], + description: "Retire vos coins de votre compte banquaire.", + emote: "🏦", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + const pocket = user.pocket; + const bank = user.bank; + + let title = "Retrait Impossible"; + let description = ""; + + if (args.length === 0) { + description = "❌ Vous devez spécifier un montant à retirer."; + } else if (args[0] === "all") { + if (bank <= 0) { + description = + "❌ Vous n'avez pas d'argent à retirer de votre compte en banque."; + } else { + title = "Retrait Réussi"; + description = `🏦 Vous avez retiré \`${bank}\` coins de votre compte en banque.`; + db.run( + `UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, + [pocket + bank, 0, message.guild.id, message.author.id], + ); + } + } else if (isNaN(args[0])) { + description = "❌ Vous devez spécifier un montant valide à retirer."; + } else if (bank <= 0) { + description = "❌ Vous n'avez pas d'argent à retirer."; + } else if (parseInt(args[0]) > bank) { + description = + "❌ Vous n'avez pas assez d'argent dans votre compte en banque pour retirer cette somme."; + } else if (parseInt(args[0]) <= 0) { + description = + "❌ Vous ne pouvez pas retirer une somme négative ou nulle."; + } else { + title = "Retrait Réussi"; + description = `🏦 Vous avez retiré ${args[0]} coins de votre compte en banque.`; + db.run( + `UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, + [ + pocket + parseInt(args[0]), + bank - parseInt(args[0]), + message.guild.id, + message.author.id, + ], + ); + } + + const embed = new EmbedBuilder() + .setTitle(title) + .setDescription(description) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + }, +}; diff --git a/commands/casino/work.js b/commands/casino/work.js index 1701148..c2e3f11 100644 --- a/commands/casino/work.js +++ b/commands/casino/work.js @@ -1,88 +1,105 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['wk', 'travail'], - description: 'Travaillez pour gagner des coins.', - emote: '💼', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - const lastWork = user.lastWork - const pocket = user.pocket - - if (lastWork > Date.now() - 2700000) { - const embed = new EmbedBuilder() - .setTitle('Travail Impossible') - .setDescription(`❌ Vous avez déjà travaillé récemment. Veuillez attendre \`${Math.floor((lastWork + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const randomAmount = Math.floor(Math.random() * (500 - 100 + 1) + 100); - db.run(`UPDATE users SET pocket = ?, lastWork = ? WHERE guildId = ? AND userId = ?`, [pocket + randomAmount, Date.now(), message.guild.id, message.author.id]); - - const works = [ - `💼 Vous avez exploré une ancienne ruine et avez trouvé \`${randomAmount}\` coins.`, - `🛠️ Vous avez aidé un marchand à réparer son chariot et il vous a donné \`${randomAmount}\` coins en remerciement.`, - `🌳 En chassant dans la forêt, vous avez découvert un trésor caché contenant \`${randomAmount}\` coins.`, - `🔍 Après avoir résolu une énigme antique, vous avez reçu \`${randomAmount}\` coins comme récompense.`, - `🧪 Vous avez vendu des potions magiques sur le marché et avez gagné \`${randomAmount}\` coins.`, - `🕵️ En explorant une grotte sombre, vous avez trouvé \`${randomAmount}\` coins dissimulés dans un coffre.`, - `🐉 Après avoir vaincu un dragon, vous avez récupéré \`${randomAmount}\` coins dans son repaire.`, - `🏆 Vous avez participé à un tournoi de chevalerie et avez remporté \`${randomAmount}\` coins en prix.`, - `🗺️ En aidant un groupe de voyageurs perdus à retrouver leur chemin, vous avez reçu \`${randomAmount}\` coins.`, - `🔎 Après avoir résolu un mystère criminel, vous avez été récompensé par \`${randomAmount}\` coins par la ville.`, - `⚓ Vous avez navigué sur les mers et avez trouvé \`${randomAmount}\` coins dans une épave.`, - `⛏️ En explorant les catacombes, vous avez découvert \`${randomAmount}\` coins enfouis dans le sol.`, - `🌉 Après avoir construit un pont pour la communauté, vous avez reçu \`${randomAmount}\` coins comme gratitude.`, - `🦅 Vous avez réussi à apprivoiser un griffon et avez reçu \`${randomAmount}\` coins en récompense.`, - `⛏️ En découvrant une mine abandonnée, vous avez extrait \`${randomAmount}\` coins de minerai précieux.`, - `🏹 Vous avez secouru un groupe de voyageurs attaqués par des brigands et avez reçu \`${randomAmount}\` coins comme reconnaissance.`, - `📚 En explorant une ancienne bibliothèque abandonnée, vous avez trouvé \`${randomAmount}\` coins cachés dans un vieux livre.`, - `🏹 Après avoir participé à une compétition de tir à l'arc, vous avez remporté \`${randomAmount}\` coins en prix.`, - `😺 Vous avez sauvé un chaton coincé dans un arbre et son propriétaire vous a donné \`${randomAmount}\` coins en guise de remerciement.`, - `🕊️ En réussissant à apaiser une querelle entre deux factions rivales, vous avez été récompensé par \`${randomAmount}\` coins.`, - `🌊 Vous avez découvert un trésor antique dans les profondeurs de la mer et avez récupéré \`${randomAmount}\` coins.`, - `🏫 Après avoir construit une école pour les enfants du village, vous avez reçu \`${randomAmount}\` coins de la part des parents reconnaissants.`, - `👮 Vous avez capturé un voleur recherché et avez été récompensé par \`${randomAmount}\` coins par les autorités locales.`, - `🏞️ En explorant une caverne mystérieuse, vous avez trouvé \`${randomAmount}\` coins dissimulés derrière une cascade.`, - `🔨 Après avoir prêté main-forte à un forgeron pour créer une armure, vous avez été payé \`${randomAmount}\` coins pour votre travail.`, - `🏛️ Vous avez découvert un artefact magique dans les ruines d'un temple ancien et l'avez échangé contre \`${randomAmount}\` coins.`, - `🚶 En offrant vos services en tant que guide à des voyageurs perdus, vous avez gagné \`${randomAmount}\` coins pour les ramener en sécurité.`, - `🔥 Après avoir éteint un incendie qui menaçait le village, vous avez été récompensé par \`${randomAmount}\` coins par les habitants reconnaissants.`, - `🎉 Vous avez organisé un festival annuel pour célébrer la récolte et avez collecté \`${randomAmount}\` coins en dons des participants.`, - `🐉 En sauvant un noble des griffes d'une bête féroce, vous avez été généreusement récompensé par \`${randomAmount}\` coins et des terres.`, - `🏰 Après avoir découvert un passage secret dans le château du roi, vous avez trouvé \`${randomAmount}\` coins cachés dans un coffre-fort.`, - `👨‍👩‍👧‍👦 Vous avez résolu un conflit familial ancien et avez reçu \`${randomAmount}\` coins en récompense de votre médiation.`, - `⛏️ En explorant les montagnes, vous avez trouvé une mine abandonnée remplie de \`${randomAmount}\` coins de minerai précieux.`, - `📜 Après avoir livré un message crucial à temps, vous avez été payé \`${randomAmount}\` coins par le destinataire reconnaissant.`, - `🤝 Vous avez négocié un accord commercial fructueux entre deux cités et avez reçu \`${randomAmount}\` coins comme commission.`, - `📖 Vous avez ecrit un livre. Une maison d'édition vous l'a racheter \`${randomAmount}\` coins.`, - `💜 Vous avez fait un don au restorant du coeur. L'état vous rembourse \`${randomAmount}\` coins.`, - `🎂 \`${randomAmount}\` coins, c'est la somme que vous a donner votre parton pour l'anniversaire de la creation de l'entreprise.`, - `👶 Vous avez gagner \`${Math.round(randomAmount / 2)}\` coins en gardant l'enfant de vos voisins. Ils sont très satisfait de votre travail et on donc double votre salaire. Vous repartez avec \`${randomAmount}\`.`, - ]; - - - const embed = new EmbedBuilder() - .setTitle('Travail Terminé') - .setDescription(works[Math.floor(Math.random() * works.length)]) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }, -}; \ No newline at end of file +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["wk", "travail"], + description: "Travaillez pour gagner des coins.", + emote: "💼", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + const lastWork = user.lastWork; + const pocket = user.pocket; + + if (lastWork > Date.now() - 2700000) { + const embed = new EmbedBuilder() + .setTitle("Travail Impossible") + .setDescription( + `❌ Vous avez déjà travaillé récemment. Veuillez attendre \`${Math.floor((lastWork + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + + const randomAmount = Math.floor(Math.random() * (500 - 100 + 1) + 100); + db.run( + `UPDATE users SET pocket = ?, lastWork = ? WHERE guildId = ? AND userId = ?`, + [pocket + randomAmount, Date.now(), message.guild.id, message.author.id], + ); + + const works = [ + `💼 Vous avez exploré une ancienne ruine et avez trouvé \`${randomAmount}\` coins.`, + `🛠️ Vous avez aidé un marchand à réparer son chariot et il vous a donné \`${randomAmount}\` coins en remerciement.`, + `🌳 En chassant dans la forêt, vous avez découvert un trésor caché contenant \`${randomAmount}\` coins.`, + `🔍 Après avoir résolu une énigme antique, vous avez reçu \`${randomAmount}\` coins comme récompense.`, + `🧪 Vous avez vendu des potions magiques sur le marché et avez gagné \`${randomAmount}\` coins.`, + `🕵️ En explorant une grotte sombre, vous avez trouvé \`${randomAmount}\` coins dissimulés dans un coffre.`, + `🐉 Après avoir vaincu un dragon, vous avez récupéré \`${randomAmount}\` coins dans son repaire.`, + `🏆 Vous avez participé à un tournoi de chevalerie et avez remporté \`${randomAmount}\` coins en prix.`, + `🗺️ En aidant un groupe de voyageurs perdus à retrouver leur chemin, vous avez reçu \`${randomAmount}\` coins.`, + `🔎 Après avoir résolu un mystère criminel, vous avez été récompensé par \`${randomAmount}\` coins par la ville.`, + `⚓ Vous avez navigué sur les mers et avez trouvé \`${randomAmount}\` coins dans une épave.`, + `⛏️ En explorant les catacombes, vous avez découvert \`${randomAmount}\` coins enfouis dans le sol.`, + `🌉 Après avoir construit un pont pour la communauté, vous avez reçu \`${randomAmount}\` coins comme gratitude.`, + `🦅 Vous avez réussi à apprivoiser un griffon et avez reçu \`${randomAmount}\` coins en récompense.`, + `⛏️ En découvrant une mine abandonnée, vous avez extrait \`${randomAmount}\` coins de minerai précieux.`, + `🏹 Vous avez secouru un groupe de voyageurs attaqués par des brigands et avez reçu \`${randomAmount}\` coins comme reconnaissance.`, + `📚 En explorant une ancienne bibliothèque abandonnée, vous avez trouvé \`${randomAmount}\` coins cachés dans un vieux livre.`, + `🏹 Après avoir participé à une compétition de tir à l'arc, vous avez remporté \`${randomAmount}\` coins en prix.`, + `😺 Vous avez sauvé un chaton coincé dans un arbre et son propriétaire vous a donné \`${randomAmount}\` coins en guise de remerciement.`, + `🕊️ En réussissant à apaiser une querelle entre deux factions rivales, vous avez été récompensé par \`${randomAmount}\` coins.`, + `🌊 Vous avez découvert un trésor antique dans les profondeurs de la mer et avez récupéré \`${randomAmount}\` coins.`, + `🏫 Après avoir construit une école pour les enfants du village, vous avez reçu \`${randomAmount}\` coins de la part des parents reconnaissants.`, + `👮 Vous avez capturé un voleur recherché et avez été récompensé par \`${randomAmount}\` coins par les autorités locales.`, + `🏞️ En explorant une caverne mystérieuse, vous avez trouvé \`${randomAmount}\` coins dissimulés derrière une cascade.`, + `🔨 Après avoir prêté main-forte à un forgeron pour créer une armure, vous avez été payé \`${randomAmount}\` coins pour votre travail.`, + `🏛️ Vous avez découvert un artefact magique dans les ruines d'un temple ancien et l'avez échangé contre \`${randomAmount}\` coins.`, + `🚶 En offrant vos services en tant que guide à des voyageurs perdus, vous avez gagné \`${randomAmount}\` coins pour les ramener en sécurité.`, + `🔥 Après avoir éteint un incendie qui menaçait le village, vous avez été récompensé par \`${randomAmount}\` coins par les habitants reconnaissants.`, + `🎉 Vous avez organisé un festival annuel pour célébrer la récolte et avez collecté \`${randomAmount}\` coins en dons des participants.`, + `🐉 En sauvant un noble des griffes d'une bête féroce, vous avez été généreusement récompensé par \`${randomAmount}\` coins et des terres.`, + `🏰 Après avoir découvert un passage secret dans le château du roi, vous avez trouvé \`${randomAmount}\` coins cachés dans un coffre-fort.`, + `👨‍👩‍👧‍👦 Vous avez résolu un conflit familial ancien et avez reçu \`${randomAmount}\` coins en récompense de votre médiation.`, + `⛏️ En explorant les montagnes, vous avez trouvé une mine abandonnée remplie de \`${randomAmount}\` coins de minerai précieux.`, + `📜 Après avoir livré un message crucial à temps, vous avez été payé \`${randomAmount}\` coins par le destinataire reconnaissant.`, + `🤝 Vous avez négocié un accord commercial fructueux entre deux cités et avez reçu \`${randomAmount}\` coins comme commission.`, + `📖 Vous avez ecrit un livre. Une maison d'édition vous l'a racheter \`${randomAmount}\` coins.`, + `💜 Vous avez fait un don au restorant du coeur. L'état vous rembourse \`${randomAmount}\` coins.`, + `🎂 \`${randomAmount}\` coins, c'est la somme que vous a donner votre parton pour l'anniversaire de la creation de l'entreprise.`, + `👶 Vous avez gagner \`${Math.round(randomAmount / 2)}\` coins en gardant l'enfant de vos voisins. Ils sont très satisfait de votre travail et on donc double votre salaire. Vous repartez avec \`${randomAmount}\`.`, + ]; + + const embed = new EmbedBuilder() + .setTitle("Travail Terminé") + .setDescription(works[Math.floor(Math.random() * works.length)]) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + }, +}; diff --git a/commands/gestion/add.js b/commands/gestion/add.js index 40f4a31..a1665c9 100644 --- a/commands/gestion/add.js +++ b/commands/gestion/add.js @@ -1,51 +1,67 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: [], - description: 'Ajoute de l\'argent de votre compte en banque ou de votre poche ou de votre réputation.', - emote: '💰', - utilisation: ' [@membre]', - permission: 10, - - async execute(message, args, client) { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - let member = message.author; - let title = 'Ajout d\'argent'; - let description = `💰 Vous avez ajouté ${args[0]} à votre ${args[1]}.`; - - if (isNaN(args[0])) { - title = 'Erreur'; - description = '❌ Veuillez entrer un montant valide.'; - } else if (args[0] <= 0) { - title = 'Erreur'; - description = '❌ Veuillez entrer un montant supérieur à 0.'; - } else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') { - title = 'Erreur'; - description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).'; - } else if (message.mentions.users.first()) { - member = message.mentions.users.first(); - description = `💰 Vous avez ajouté ${args[0]} à la ${args[1]} de ${member.tag}.`; - } - - const embed = new EmbedBuilder() - .setTitle(title) - .setDescription(description) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - if (title !== 'Erreur') { - db.run(`UPDATE users SET ${args[1]} = ${args[1]} + ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]); - } - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }, -}; +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: [], + description: + "Ajoute de l'argent de votre compte en banque ou de votre poche ou de votre réputation.", + emote: "💰", + utilisation: " [@membre]", + permission: 10, + + async execute(message, args, client) { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + let member = message.author; + let title = "Ajout d'argent"; + let description = `💰 Vous avez ajouté ${args[0]} à votre ${args[1]}.`; + + if (isNaN(args[0])) { + title = "Erreur"; + description = "❌ Veuillez entrer un montant valide."; + } else if (args[0] <= 0) { + title = "Erreur"; + description = "❌ Veuillez entrer un montant supérieur à 0."; + } else if ( + args[1] !== "pocket" && + args[1] !== "bank" && + args[1] !== "reputation" + ) { + title = "Erreur"; + description = + "❌ Veuillez entrer une destination valide (pocket, bank, reputation)."; + } else if (message.mentions.users.first()) { + member = message.mentions.users.first(); + description = `💰 Vous avez ajouté ${args[0]} à la ${args[1]} de ${member.tag}.`; + } + + const embed = new EmbedBuilder() + .setTitle(title) + .setDescription(description) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + if (title !== "Erreur") { + db.run( + `UPDATE users SET ${args[1]} = ${args[1]} + ? WHERE guildId = ? AND userId = ?`, + [args[0], message.guild.id, member.id], + ); + } + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + }, +}; diff --git a/commands/gestion/ban.js b/commands/gestion/ban.js index 95fca6b..a07e1b7 100644 --- a/commands/gestion/ban.js +++ b/commands/gestion/ban.js @@ -1,88 +1,130 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, + PermissionFlagsBits, + EmbedBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['ban'], - description: 'permet de ban un membre', - emote: '⏱️', - utilisation: '<@membre> ', - permission: 0, + aliases: ["ban"], + description: "permet de ban un membre", + emote: "⏱️", + utilisation: "<@membre> ", + permission: 0, - async execute(message, args, client) { - const authorPerms = message.channel.permissionsFor(message.author) - if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.banMembers)) && !client.config.owners.includes(message.author.id)) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous n\'avez pas les permissions pour expulser.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - let member = message.mentions.members.first() // || message.guild.members.get(args[0]); - if (!member) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez spécifier un membre du serveur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - const motif = args[1] - if (motif.length < 2) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez indiquer un motif.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - - let reponse - member.ban({ reason: motif }) - .then(async () => { - const btn = new ButtonBuilder() - .setCustomId('mp') - .setLabel('Prevenir le membre en MP') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(btn); - - const embed = new EmbedBuilder() - .setTitle('Membre banni !') - .setDescription('Vous avez banni: <@' + member + '>\nMotif: `' + motif + '`') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - reponse = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - }) - - const filter = i => i.customId === 'mp' && i.user.id === message.author.id; - const collector = reponse.createMessageComponentCollector({ filter, time: 30000 }) - collector.on('collect', async (interaction) => { - const embedBanni = new EmbedBuilder() - .setTitle('Bannissement !') - .setDescription('Vous avez été banni du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`') - .setColor("Red") - .setTimestamp() - member.send({ embeds: [embedBanni] }) - interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } }); - }); - - collector.on('end', () => { - reponse.edit({ components: [], allowedMentions: { repliedUser: false } }); - }); + async execute(message, args, client) { + const authorPerms = message.channel.permissionsFor(message.author); + if ( + (!authorPerms || !authorPerms.has(PermissionFlagsBits.banMembers)) && + !client.config.owners.includes(message.author.id) + ) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Vous n'avez pas les permissions pour expulser.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } -}; \ No newline at end of file + let member = message.mentions.members.first(); // || message.guild.members.get(args[0]); + if (!member) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez spécifier un membre du serveur.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + const motif = args[1]; + if (motif.length < 2) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez indiquer un motif.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + let reponse; + member.ban({ reason: motif }).then(async () => { + const btn = new ButtonBuilder() + .setCustomId("mp") + .setLabel("Prevenir le membre en MP") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(btn); + + const embed = new EmbedBuilder() + .setTitle("Membre banni !") + .setDescription( + "Vous avez banni: <@" + member + ">\nMotif: `" + motif + "`", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + reponse = await message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + }); + + const filter = (i) => + i.customId === "mp" && i.user.id === message.author.id; + const collector = reponse.createMessageComponentCollector({ + filter, + time: 30000, + }); + collector.on("collect", async (interaction) => { + const embedBanni = new EmbedBuilder() + .setTitle("Bannissement !") + .setDescription( + "Vous avez été banni du serveur " + + interaction.guild.name + + ", avec comme motif: `" + + motif + + "`", + ) + .setColor("Red") + .setTimestamp(); + member.send({ embeds: [embedBanni] }); + interaction.reply({ + content: "> **Le membre a été prevenu.**", + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + }); + + collector.on("end", () => { + reponse.edit({ components: [], allowedMentions: { repliedUser: false } }); + }); + }, +}; diff --git a/commands/gestion/drop.js b/commands/gestion/drop.js index 65d1e57..f94d7b4 100644 --- a/commands/gestion/drop.js +++ b/commands/gestion/drop.js @@ -1,23 +1,22 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); +const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); module.exports = { - aliases: ['give'], - description: 'Donne des coins au premier qui appuie sur un bouton.', - emote: '🪙', - utilisation: '', + aliases: ["give"], + description: "Donne des coins au premier qui appuie sur un bouton.", + emote: "🪙", + utilisation: "", permission: 0, async execute(message, args, client) { - if (isNaN(args[0])) return message.reply('La somme dois etre un nombre...') + if (isNaN(args[0])) return message.reply("La somme dois etre un nombre..."); const btn = new ButtonBuilder() - .setCustomId('confirm') - .setLabel('💰') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(btn); - + .setCustomId("confirm") + .setLabel("💰") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(btn); + /*const sentMessage = message.channel.send('_ _') let contage = 0 while (contage == 100) { @@ -37,22 +36,37 @@ module.exports = { content: `Appuis vite sur le bouton pour gagner ${args[0]}coins`, components: [row], allowedMentions: { repliedUser: false }, - }) + }); - const filter = i => i.customId === 'confirm' && i.user.id !== message.author.id; - const collector = sentMessage.createMessageComponentCollector({ filter, time: 45000 }) - collector.on('collect', async (interaction) => { + const filter = (i) => + i.customId === "confirm" && i.user.id !== message.author.id; + const collector = sentMessage.createMessageComponentCollector({ + filter, + time: 45000, + }); + collector.on("collect", async (interaction) => { sentMessage.edit({ content: `Le drop est gagner par <@${interaction.user.id}>`, components: [], allowedMentions: { repliedUser: false }, }); - db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, interaction.user.id]); - interaction.reply({ content: 'Tu as gagner le drop !', ephemeral: true, allowedMentions: { repliedUser: false } }); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, + [args[0], message.guild.id, interaction.user.id], + ); + interaction.reply({ + content: "Tu as gagner le drop !", + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); }); - collector.on('end', () => { - sentMessage.edit({ components: [], ephemeral: true, allowedMentions: { repliedUser: false } }); - }); - } -}; \ No newline at end of file + collector.on("end", () => { + sentMessage.edit({ + components: [], + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + }); + }, +}; diff --git a/commands/gestion/kick.js b/commands/gestion/kick.js index 92c2d0a..dd21a8b 100644 --- a/commands/gestion/kick.js +++ b/commands/gestion/kick.js @@ -1,88 +1,130 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, + PermissionFlagsBits, + EmbedBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['kick'], - description: 'permet d\'expulser un membre', - emote: '⏱️', - utilisation: '<@membre> ', - permission: 0, + aliases: ["kick"], + description: "permet d'expulser un membre", + emote: "⏱️", + utilisation: "<@membre> ", + permission: 0, - async execute(message, args, client) { - const authorPerms = message.channel.permissionsFor(message.author) - if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.kickMembers)) && !client.config.owners.includes(message.author.id)) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous n\'avez pas les permissions pour expulser.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - let member = message.mentions.members.first() //|| message.guild.members.get(args[0]); - if (!member) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez spécifier un membre du serveur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - const motif = args[1] - if (motif.length < 2) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez indiquer un motif.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - - let reponse - member.kick({ reason: motif }) - .then(async () => { - const btn = new ButtonBuilder() - .setCustomId('mp') - .setLabel('Prevenir le membre en MP') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(btn); - - const embed = new EmbedBuilder() - .setTitle('Membre expulser !') - .setDescription('Vous avez expulser: <@' + member + '>\nMotif: `' + motif + '`') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - }) - - const filter = i => i.customId === 'mp' && i.user.id === message.author.id; - const collector = reponse.createMessageComponentCollector({ filter, time: 30000 }) - collector.on('collect', async (interaction) => { - const embedkick = new EmbedBuilder() - .setTitle('Expulsion !') - .setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`') - .setColor("Red") - .setTimestamp() - member.send({ embeds: [embedkick] }) - interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } }); - }); - - collector.on('end', () => { - reponse.edit({ components: [], allowedMentions: { repliedUser: false } }); - }); + async execute(message, args, client) { + const authorPerms = message.channel.permissionsFor(message.author); + if ( + (!authorPerms || !authorPerms.has(PermissionFlagsBits.kickMembers)) && + !client.config.owners.includes(message.author.id) + ) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Vous n'avez pas les permissions pour expulser.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } -}; \ No newline at end of file + let member = message.mentions.members.first(); //|| message.guild.members.get(args[0]); + if (!member) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez spécifier un membre du serveur.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + const motif = args[1]; + if (motif.length < 2) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez indiquer un motif.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + let reponse; + member.kick({ reason: motif }).then(async () => { + const btn = new ButtonBuilder() + .setCustomId("mp") + .setLabel("Prevenir le membre en MP") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(btn); + + const embed = new EmbedBuilder() + .setTitle("Membre expulser !") + .setDescription( + "Vous avez expulser: <@" + member + ">\nMotif: `" + motif + "`", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + reponse = message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + }); + + const filter = (i) => + i.customId === "mp" && i.user.id === message.author.id; + const collector = reponse.createMessageComponentCollector({ + filter, + time: 30000, + }); + collector.on("collect", async (interaction) => { + const embedkick = new EmbedBuilder() + .setTitle("Expulsion !") + .setDescription( + "Vous avez été expulser du serveur " + + interaction.guild.name + + ", avec comme motif: `" + + motif + + "`", + ) + .setColor("Red") + .setTimestamp(); + member.send({ embeds: [embedkick] }); + interaction.reply({ + content: "> **Le membre a été prevenu.**", + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + }); + + collector.on("end", () => { + reponse.edit({ components: [], allowedMentions: { repliedUser: false } }); + }); + }, +}; diff --git a/commands/gestion/mute.js b/commands/gestion/mute.js index 15e4c24..ad762ca 100644 --- a/commands/gestion/mute.js +++ b/commands/gestion/mute.js @@ -1,118 +1,178 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, + PermissionFlagsBits, + EmbedBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['timeout'], - description: 'permet de mute un membre', - emote: '⏱️', - utilisation: '<@membre> ', - permission: 0, + aliases: ["timeout"], + description: "permet de mute un membre", + emote: "⏱️", + utilisation: "<@membre> ", + permission: 0, - async execute(message, args, client) { - const authorPerms = message.channel.permissionsFor(message.author) - if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.MuteMembers)) && !client.config.owners.includes(message.author.id)) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous n\'avez pas les permissions pour expulser.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - - if (!args[0] || !args[1] || !args[2]) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez respecter ce format : <@membre|membreId> .') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - - let member = message.mentions.members.first() //|| message.guild.members.get(args[0]) - if (!member) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez spécifier un membre du serveur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - - let time = args[1] - if (time.length <= 3 || !time.includes('min')) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez indiquer une durée valide <`x`min>.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - time = time.replace('min', '') - - const motif = args[2] - if (motif.length <= 2) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Veuillez indiquer un motif (minimum 3caractère).') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - - let reponse - member.timeout(time * 60 * 1000, motif) - .then(async () => { - const btn = new ButtonBuilder() - .setCustomId('mp') - .setLabel('Prevenir le membre en MP') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(btn); - - const embed = new EmbedBuilder() - .setTitle('Membre mute !') - .setDescription('Vous avez mute: <@' + member + '>\nTemps: `' + time + '`min\nMotif: `' + motif + '`') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - }) - - const filter = i => i.customId === 'mp' && i.user.id === message.author.id; - const collector = reponse.createMessageComponentCollector({ filter, time: 30000 }) - collector.on('collect', async (interaction) => { - const embedkick = new EmbedBuilder() - .setTitle('Expulsion !') - .setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`') - .setColor("Red") - .setTimestamp() - member.send({ embeds: [embedkick] }) - interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } }); - }); - - collector.on('end', () => { - reponse.edit({ components: [], allowedMentions: { repliedUser: false } }); - }); + async execute(message, args, client) { + const authorPerms = message.channel.permissionsFor(message.author); + if ( + (!authorPerms || !authorPerms.has(PermissionFlagsBits.MuteMembers)) && + !client.config.owners.includes(message.author.id) + ) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Vous n'avez pas les permissions pour expulser.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } -}; \ No newline at end of file + + if (!args[0] || !args[1] || !args[2]) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + "❌ Veuillez respecter ce format : <@membre|membreId> .", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + let member = message.mentions.members.first(); //|| message.guild.members.get(args[0]) + if (!member) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez spécifier un membre du serveur.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + let time = args[1]; + if (time.length <= 3 || !time.includes("min")) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Veuillez indiquer une durée valide <`x`min>.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + time = time.replace("min", ""); + + const motif = args[2]; + if (motif.length <= 2) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription( + "❌ Veuillez indiquer un motif (minimum 3caractère).", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + let reponse; + member.timeout(time * 60 * 1000, motif).then(async () => { + const btn = new ButtonBuilder() + .setCustomId("mp") + .setLabel("Prevenir le membre en MP") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(btn); + + const embed = new EmbedBuilder() + .setTitle("Membre mute !") + .setDescription( + "Vous avez mute: <@" + + member + + ">\nTemps: `" + + time + + "`min\nMotif: `" + + motif + + "`", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + reponse = message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + }); + + const filter = (i) => + i.customId === "mp" && i.user.id === message.author.id; + const collector = reponse.createMessageComponentCollector({ + filter, + time: 30000, + }); + collector.on("collect", async (interaction) => { + const embedkick = new EmbedBuilder() + .setTitle("Expulsion !") + .setDescription( + "Vous avez été expulser du serveur " + + interaction.guild.name + + ", avec comme motif: `" + + motif + + "`", + ) + .setColor("Red") + .setTimestamp(); + member.send({ embeds: [embedkick] }); + interaction.reply({ + content: "> **Le membre a été prevenu.**", + ephemeral: true, + allowedMentions: { repliedUser: false }, + }); + }); + + collector.on("end", () => { + reponse.edit({ components: [], allowedMentions: { repliedUser: false } }); + }); + }, +}; diff --git a/commands/gestion/perms.js b/commands/gestion/perms.js index c4b08fc..08c9ce3 100644 --- a/commands/gestion/perms.js +++ b/commands/gestion/perms.js @@ -1,29 +1,44 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['perm', 'permission', 'permissions'], - description: 'Affiche les permission des rôles pour utiliser les commandes du bot.', - emote: '⏱️', - utilisation: '', + aliases: ["perm", "permission", "permissions"], + description: + "Affiche les permission des rôles pour utiliser les commandes du bot.", + emote: "⏱️", + utilisation: "", permission: 10, async execute(message, args, client) { const perms = await new Promise((resolve, reject) => { - db.all(`SELECT * FROM rolePermission WHERE guildId = ?`, [message.guild.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); + db.all( + `SELECT * FROM rolePermission WHERE guildId = ?`, + [message.guild.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); }); const embed = new EmbedBuilder() - .setTitle('⏱️ Permissions') - .setDescription(perms.map(perm => `**<@&${perm.roleId}>** : ${perm.permission}`).join('\n')) + .setTitle("⏱️ Permissions") + .setDescription( + perms + .map((perm) => `**<@&${perm.roleId}>** : ${perm.permission}`) + .join("\n"), + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }, }; diff --git a/commands/gestion/remove.js b/commands/gestion/remove.js index add97e4..fd208ca 100644 --- a/commands/gestion/remove.js +++ b/commands/gestion/remove.js @@ -1,51 +1,67 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: [], - description: 'Retire de l\'argent de votre compte en banque ou de votre poche ou de votre réputation.', - emote: '💰', - utilisation: ' [@membre]', - permission: 10, - - async execute(message, args, client) { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - let member = message.author; - let title = 'Argent retiré'; - let description = `💰 Vous avez retiré ${args[0]} à votre ${args[1]}.`; - - if (isNaN(args[0])) { - title = 'Erreur'; - description = '❌ Veuillez entrer un montant valide.'; - } else if (args[0] <= 0) { - title = 'Erreur'; - description = '❌ Veuillez entrer un montant supérieur à 0.'; - } else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') { - title = 'Erreur'; - description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).'; - } else if (message.mentions.users.first()) { - member = message.mentions.users.first(); - description = `💰 Vous avez retiré ${args[0]} à la ${args[1]} de ${member.tag}.`; - } - - const embed = new EmbedBuilder() - .setTitle(title) - .setDescription(description) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - if (title !== 'Erreur') { - db.run(`UPDATE users SET ${args[1]} = ${args[1]} - ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]); - } - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }, -}; +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: [], + description: + "Retire de l'argent de votre compte en banque ou de votre poche ou de votre réputation.", + emote: "💰", + utilisation: " [@membre]", + permission: 10, + + async execute(message, args, client) { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + let member = message.author; + let title = "Argent retiré"; + let description = `💰 Vous avez retiré ${args[0]} à votre ${args[1]}.`; + + if (isNaN(args[0])) { + title = "Erreur"; + description = "❌ Veuillez entrer un montant valide."; + } else if (args[0] <= 0) { + title = "Erreur"; + description = "❌ Veuillez entrer un montant supérieur à 0."; + } else if ( + args[1] !== "pocket" && + args[1] !== "bank" && + args[1] !== "reputation" + ) { + title = "Erreur"; + description = + "❌ Veuillez entrer une destination valide (pocket, bank, reputation)."; + } else if (message.mentions.users.first()) { + member = message.mentions.users.first(); + description = `💰 Vous avez retiré ${args[0]} à la ${args[1]} de ${member.tag}.`; + } + + const embed = new EmbedBuilder() + .setTitle(title) + .setDescription(description) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + if (title !== "Erreur") { + db.run( + `UPDATE users SET ${args[1]} = ${args[1]} - ? WHERE guildId = ? AND userId = ?`, + [args[0], message.guild.id, member.id], + ); + } + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + }, +}; diff --git a/commands/gestion/reset-user.js b/commands/gestion/reset-user.js index 7e0a989..b9201b0 100644 --- a/commands/gestion/reset-user.js +++ b/commands/gestion/reset-user.js @@ -1,41 +1,68 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { aliases: [], - description: 'Reinitialise toutes les données d\'un utilisateur (sur ce serveur).', - emote: '💰', - utilisation: '<@membre>', + description: + "Reinitialise toutes les données d'un utilisateur (sur ce serveur).", + emote: "💰", + utilisation: "<@membre>", permission: 10, async execute(message, args, client) { - const member = message.mentions.users.first(); if (!member) { - const embed = new EmbedBuilder() - .setTitle('Reset :') + const embed = new EmbedBuilder() + .setTitle("Reset :") .setDescription(`**Veuillez mentionner un membre valide**`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - db.run(`UPDATE users SET pocket = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); - db.run(`UPDATE users SET bank = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); - db.run(`UPDATE users SET xp = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); - db.run(`UPDATE users SET lvl = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); - db.run(`UPDATE users SET reputation = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); - db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]); + db.run(`UPDATE users SET pocket = 0 WHERE guildId = ? AND userId = ?`, [ + message.guild.id, + member.id, + ]); + db.run(`UPDATE users SET bank = 0 WHERE guildId = ? AND userId = ?`, [ + message.guild.id, + member.id, + ]); + db.run(`UPDATE users SET xp = 0 WHERE guildId = ? AND userId = ?`, [ + message.guild.id, + member.id, + ]); + db.run(`UPDATE users SET lvl = 0 WHERE guildId = ? AND userId = ?`, [ + message.guild.id, + member.id, + ]); + db.run(`UPDATE users SET reputation = 0 WHERE guildId = ? AND userId = ?`, [ + message.guild.id, + member.id, + ]); + db.run( + `UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + ); const embed = new EmbedBuilder() - .setTitle('Reset :') + .setTitle("Reset :") .setDescription(`**<@${member.id}> reinitialiser avec succès !**`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); }, diff --git a/commands/gestion/set.js b/commands/gestion/set.js index fc8fda2..cf2f930 100644 --- a/commands/gestion/set.js +++ b/commands/gestion/set.js @@ -1,35 +1,45 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { aliases: [], - description: 'Defini la solde d\'un membre (a utiliser pour remplacer un `NaN` dans le `&me`).', - emote: '💰', - utilisation: ' [@membre]', + description: + "Defini la solde d'un membre (a utiliser pour remplacer un `NaN` dans le `&me`).", + emote: "💰", + utilisation: " [@membre]", permission: 10, async execute(message, args, client) { const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); let member = message.author; - let title = 'Definition de solde'; + let title = "Definition de solde"; let description = `💰 Vous avez mis à ${args[0]} votre ${args[1]}.`; if (isNaN(args[0])) { - title = 'Erreur'; - description = '❌ Veuillez entrer un montant valide.'; + title = "Erreur"; + description = "❌ Veuillez entrer un montant valide."; } else if (args[0] < 0) { - title = 'Erreur' - description = '❌ Veuillez entrer un montant supérieur à 0.'; - } else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') { - title = 'Erreur'; - description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).'; + title = "Erreur"; + description = "❌ Veuillez entrer un montant supérieur à 0."; + } else if ( + args[1] !== "pocket" && + args[1] !== "bank" && + args[1] !== "reputation" + ) { + title = "Erreur"; + description = + "❌ Veuillez entrer une destination valide (pocket, bank, reputation)."; } else if (message.mentions.users.first()) { member = message.mentions.users.first(); description = `💰 Vous avez mis à ${args[0]} la ${args[1]} de ${member.tag}.`; @@ -40,10 +50,16 @@ module.exports = { .setDescription(description) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - if (title !== 'Erreur') { - db.run(`UPDATE users SET ${args[1]} = ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]); + if (title !== "Erreur") { + db.run( + `UPDATE users SET ${args[1]} = ? WHERE guildId = ? AND userId = ?`, + [args[0], message.guild.id, member.id], + ); } message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); diff --git a/commands/gestion/setRolePerm.js b/commands/gestion/setRolePerm.js index 44cb4e9..c5b46f8 100644 --- a/commands/gestion/setRolePerm.js +++ b/commands/gestion/setRolePerm.js @@ -1,77 +1,122 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['setperm'], - description: 'Ajoute les permissions d\'un rôle pour utiliser les commandes du bot.', - emote: '⏱️', - utilisation: '<@role|None> <1|2|3|4|5>', + aliases: ["setperm"], + description: + "Ajoute les permissions d'un rôle pour utiliser les commandes du bot.", + emote: "⏱️", + utilisation: "<@role|None> <1|2|3|4|5>", permission: 10, async execute(message, args, client) { if (!args[0] || !args[1]) { const embed = new EmbedBuilder() - .setTitle('⏱️ Ajout de permissions') - .setDescription(`Vous devez spécifier un rôle et un niveau de permission.\n\n**Utilisation:** \`&setRolePerm <@role|None> <1|2|3|4|5>\``) + .setTitle("⏱️ Ajout de permissions") + .setDescription( + `Vous devez spécifier un rôle et un niveau de permission.\n\n**Utilisation:** \`&setRolePerm <@role|None> <1|2|3|4|5>\``, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } let role; - if (args[0] === 'None') { - role = 'None'; + if (args[0] === "None") { + role = "None"; } else { role = message.mentions.roles.first().id; } if (isNaN(parseInt(args[1]))) { const embed = new EmbedBuilder() - .setTitle('⏱️ Ajout de permissions') - .setDescription('Le deuxième argument doit être un nombre.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setTitle("⏱️ Ajout de permissions") + .setDescription("Le deuxième argument doit être un nombre.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } if (args[1] < 1 || args[1] > 5) { const embed = new EmbedBuilder() - .setTitle('⏱️ Ajout de permissions') - .setDescription('Le niveau de permission doit être compris entre 1 et 5.') + .setTitle("⏱️ Ajout de permissions") + .setDescription( + "Le niveau de permission doit être compris entre 1 et 5.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - if (role === 'None') { - db.run(`DELETE FROM rolePermission WHERE guildId = ? AND permission = ?`, [message.guild.id, args[1]]); + if (role === "None") { + db.run( + `DELETE FROM rolePermission WHERE guildId = ? AND permission = ?`, + [message.guild.id, args[1]], + ); const embed = new EmbedBuilder() - .setTitle('⏱️ Ajout de permissions') - .setDescription(`Les permissions de niveau ${args[1]} ont été retirées.`) + .setTitle("⏱️ Ajout de permissions") + .setDescription( + `Les permissions de niveau ${args[1]} ont été retirées.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - db.run(`INSERT OR REPLACE INTO rolePermission (guildId, roleId, permission) VALUES (?, ?, ?)`, [message.guild.id, role, args[1]]); + db.run( + `INSERT OR REPLACE INTO rolePermission (guildId, roleId, permission) VALUES (?, ?, ?)`, + [message.guild.id, role, args[1]], + ); const embed = new EmbedBuilder() - .setTitle('⏱️ Ajout de permissions') - .setDescription(`Le rôle <@&${role}> a maintenant la permission de niveau ${args[1]}.`) + .setTitle("⏱️ Ajout de permissions") + .setDescription( + `Le rôle <@&${role}> a maintenant la permission de niveau ${args[1]}.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }, }; diff --git a/commands/jeux/blackjack.js b/commands/jeux/blackjack.js index a67a1ac..7e3fb6b 100644 --- a/commands/jeux/blackjack.js +++ b/commands/jeux/blackjack.js @@ -1,366 +1,535 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); - - -const cardValues = { - 'A': 11, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10, 'J': 10, 'Q': 10, 'K': 10 -}; - -const cardSymbols = ['♠️', '♥️', '♦️', '♣️']; -const usersWithGameInProgress = new Map(); -setInterval(() => { - usersWithGameInProgress.clear(); -}, 180000); - -function drawCard() { - const symbol = cardSymbols[Math.floor(Math.random() * cardSymbols.length)]; - const value = Object.keys(cardValues)[Math.floor(Math.random() * Object.keys(cardValues).length)]; - return { symbol, value }; -} - - -module.exports = { - aliases: ['bj'], - description: 'Joue au blackjack.', - emote: '🃏', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - if (args.length !== 1) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🃏 Blackjack') - .setDescription(`Vous devez spécifier une mise. Exemple : \`&blackjack 100\`.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } else if (isNaN(args[0])) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🃏 Blackjack') - .setDescription(`La mise doit être un nombre.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } else if (args[0] < 25) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🃏 Blackjack') - .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } - - const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket); - } - }); - }); - - if (pocket < args[0]) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🃏 Blackjack') - .setDescription(`Vous n'avez pas assez d'argent pour miser cette somme.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } else { - const user = message.author; - const guildId = message.guild.id; - const currencyName = 'coins' - - let amount = args[0]; - - let pocketAmount = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket || 0); - } - }); - }); - - - const playerCards = [drawCard(), drawCard()]; - const dealerCards = [drawCard()]; - - const playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0); - if (playerTotal === 21 && playerCards.length === 2) { - const blackjackPayoutMultiplier = 1.25; - const winnings = Math.floor(amount * blackjackPayoutMultiplier); - - let pocketAmount = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket || 0); - } - }); - }); - - await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - const winEmbed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setDescription(`Félicitations ! Vous avez un blackjack naturel et vous avez gagné ${winnings} ${currencyName}.`) - .setColor('#0099ff'); - - return message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); - } - - const embed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setThumbnail('https://cdn.discordapp.com/attachments/1120446538544595005/1190016467257802843/kumarhane-poker.gif?ex=65a04433&is=658dcf33&hm=3ea3b7c74eb724d17249e3a60968f8c10b7d85452f3684b969a02a17ca79ab3e&') - .addFields( - { name: 'Votre main', value: `Cartes: ${playerCards.map(card => card.symbol + ' ' + card.value).join(' ')}\nTotal: ${playerTotal}`, inline: true }, - { name: 'Main du croupier', value: `Cartes: ${dealerCards[0].symbol + ' ' + dealerCards[0].value} ?\nTotal: ?`, inline: true } - ) - .setColor('#0099ff'); - - const row = new ActionRowBuilder() - .addComponents( - new ButtonBuilder() - .setCustomId('blackjack_hit') - .setLabel('Hit') - .setStyle(ButtonStyle.Primary), - new ButtonBuilder() - .setCustomId('blackjack_stand') - .setLabel('Stand') - .setStyle(ButtonStyle.Primary), - new ButtonBuilder() - .setCustomId('blackjack_cancel') - .setLabel('Annuler') - .setStyle(ButtonStyle.Danger) - ); - - const msg = await message.channel.send({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - - const collector = msg.createMessageComponentCollector({time: 60000 }); - - await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount - amount, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - usersWithGameInProgress.set(user.id); - collector.on('collect', async i => { - if (i.user.id !== user.id) { - return i.reply({ content: ":x: Vous n'avez pas la permission d'interagir avec ces boutons", ephemeral: true }); - } - - await i.deferUpdate(); - - if (i.customId === 'blackjack_hit') { - playerCards.push(drawCard()); - - let playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0); - - if (playerTotal === 21) { - const winnings = amount * 1.5; - let pocketAmount = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket || 0); - } - }); - }); - - await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - const winEmbed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setDescription(`Félicitations ! Vous avez atteint 21. Vous avez gagné ${winnings} ${currencyName}.`) - .setColor('#0099ff'); - - message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); - usersWithGameInProgress.delete(user.id); - collector.stop(); - } else if (playerTotal > 21) { - const loseEmbed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setDescription(`Vous avez dépassé 21. Vous avez perdu ${amount} ${currencyName}.`) - .setColor('#0099ff'); - - message.reply({ embeds: [loseEmbed], allowedMentions: { repliedUser: false } }); - collector.stop(); - } else { - embed.spliceFields(0, 1, { name: 'Votre main', value: `Cartes: ${playerCards.map(card => card.symbol + ' ' + card.value).join(' ')}\nTotal: ${playerTotal}`, inline: true }); - i.editReply({ embeds: [embed] }); - } - usersWithGameInProgress.delete(user.id); - } else if (i.customId === 'blackjack_stand') { - let dealerTotal = dealerCards.reduce((total, card) => total + cardValues[card.value], 0); - while (dealerTotal < 17) { - dealerCards.push(drawCard()); - dealerTotal = dealerCards.reduce((total, card) => total + cardValues[card.value], 0); - } - - const playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0); - let result; - if (dealerTotal > 21) { - result = `Le croupier a dépassé 21. Vous gagnez ${amount * 1.5} ${currencyName}. !`; - - let pocketAmount = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket || 0); - } - }); - }); - - await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + amount * 1.5, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - const winEmbed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setDescription(result) - .setColor('#0099ff'); - - message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); - usersWithGameInProgress.delete(user.id); - } else if (dealerTotal > playerTotal) { - result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`; - - const loseEmbed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setDescription(result) - .setColor('#0099ff'); - - message.reply({ embeds: [loseEmbed], allowedMentions: { repliedUser: false } }); - usersWithGameInProgress.delete(user.id); - - } else if (dealerTotal < playerTotal) { - let pocketAmount = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket || 0); - } - }); - }); - - const winnings = amount * 1.5; - - await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`; - - const winEmbed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setDescription(result) - .setColor('#0099ff'); - - message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); - usersWithGameInProgress.delete(user.id); - } else { - result = 'Il y a eu égalité. Vous récupérez votre mise.'; - let pocketAmount = await db.get(`${guildId}.pocket.${user.id}`) || 0; - await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount); - - const tieEmbed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setDescription(result) - .setColor('#0099ff'); - - message.reply({ embeds: [tieEmbed], allowedMentions: { repliedUser: false } }); - } - usersWithGameInProgress.delete(user.id); - collector.stop(); - } else if (i.customId === 'blackjack_cancel') { - let pocketAmount = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket || 0); - } - }); - }); - - await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + amount / 2, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - const cancelEmbed = new EmbedBuilder() - .setTitle('Blackjack 🎲') - .setDescription('Partie annulée. Vous récupérez la moitié de votre mise.') - .setColor('#0099ff'); - - message.reply({ embeds: [cancelEmbed], allowedMentions: { repliedUser: false } }); - - usersWithGameInProgress.delete(user.id); - collector.stop(); - } - }); - } - } -}; \ No newline at end of file +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); + +const cardValues = { + A: 11, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + 10: 10, + J: 10, + Q: 10, + K: 10, +}; + +const cardSymbols = ["♠️", "♥️", "♦️", "♣️"]; +const usersWithGameInProgress = new Map(); +setInterval(() => { + usersWithGameInProgress.clear(); +}, 180000); + +function drawCard() { + const symbol = cardSymbols[Math.floor(Math.random() * cardSymbols.length)]; + const value = + Object.keys(cardValues)[ + Math.floor(Math.random() * Object.keys(cardValues).length) + ]; + return { symbol, value }; +} + +module.exports = { + aliases: ["bj"], + description: "Joue au blackjack.", + emote: "🃏", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + if (args.length !== 1) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🃏 Blackjack") + .setDescription( + `Vous devez spécifier une mise. Exemple : \`&blackjack 100\`.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else if (isNaN(args[0])) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🃏 Blackjack") + .setDescription(`La mise doit être un nombre.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else if (args[0] < 25) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🃏 Blackjack") + .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } + + const pocket = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket); + } + }, + ); + }); + + if (pocket < args[0]) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🃏 Blackjack") + .setDescription( + `Vous n'avez pas assez d'argent pour miser cette somme.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else { + const user = message.author; + const guildId = message.guild.id; + const currencyName = "coins"; + + let amount = args[0]; + + let pocketAmount = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket || 0); + } + }, + ); + }); + + const playerCards = [drawCard(), drawCard()]; + const dealerCards = [drawCard()]; + + const playerTotal = playerCards.reduce( + (total, card) => total + cardValues[card.value], + 0, + ); + if (playerTotal === 21 && playerCards.length === 2) { + const blackjackPayoutMultiplier = 1.25; + const winnings = Math.floor(amount * blackjackPayoutMultiplier); + + let pocketAmount = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket || 0); + } + }, + ); + }); + + await new Promise((resolve, reject) => { + db.run( + `UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, + [pocketAmount + winnings, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); + + const winEmbed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setDescription( + `Félicitations ! Vous avez un blackjack naturel et vous avez gagné ${winnings} ${currencyName}.`, + ) + .setColor("#0099ff"); + + return message.reply({ + embeds: [winEmbed], + allowedMentions: { repliedUser: false }, + }); + } + + const embed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setThumbnail( + "https://cdn.discordapp.com/attachments/1120446538544595005/1190016467257802843/kumarhane-poker.gif?ex=65a04433&is=658dcf33&hm=3ea3b7c74eb724d17249e3a60968f8c10b7d85452f3684b969a02a17ca79ab3e&", + ) + .addFields( + { + name: "Votre main", + value: `Cartes: ${playerCards.map((card) => card.symbol + " " + card.value).join(" ")}\nTotal: ${playerTotal}`, + inline: true, + }, + { + name: "Main du croupier", + value: `Cartes: ${dealerCards[0].symbol + " " + dealerCards[0].value} ?\nTotal: ?`, + inline: true, + }, + ) + .setColor("#0099ff"); + + const row = new ActionRowBuilder().addComponents( + new ButtonBuilder() + .setCustomId("blackjack_hit") + .setLabel("Hit") + .setStyle(ButtonStyle.Primary), + new ButtonBuilder() + .setCustomId("blackjack_stand") + .setLabel("Stand") + .setStyle(ButtonStyle.Primary), + new ButtonBuilder() + .setCustomId("blackjack_cancel") + .setLabel("Annuler") + .setStyle(ButtonStyle.Danger), + ); + + const msg = await message.channel.send({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + const collector = msg.createMessageComponentCollector({ time: 60000 }); + + await new Promise((resolve, reject) => { + db.run( + `UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, + [pocketAmount - amount, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); + + usersWithGameInProgress.set(user.id); + collector.on("collect", async (i) => { + if (i.user.id !== user.id) { + return i.reply({ + content: + ":x: Vous n'avez pas la permission d'interagir avec ces boutons", + ephemeral: true, + }); + } + + await i.deferUpdate(); + + if (i.customId === "blackjack_hit") { + playerCards.push(drawCard()); + + let playerTotal = playerCards.reduce( + (total, card) => total + cardValues[card.value], + 0, + ); + + if (playerTotal === 21) { + const winnings = amount * 1.5; + let pocketAmount = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket || 0); + } + }, + ); + }); + + await new Promise((resolve, reject) => { + db.run( + `UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, + [pocketAmount + winnings, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); + + const winEmbed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setDescription( + `Félicitations ! Vous avez atteint 21. Vous avez gagné ${winnings} ${currencyName}.`, + ) + .setColor("#0099ff"); + + message.reply({ + embeds: [winEmbed], + allowedMentions: { repliedUser: false }, + }); + usersWithGameInProgress.delete(user.id); + collector.stop(); + } else if (playerTotal > 21) { + const loseEmbed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setDescription( + `Vous avez dépassé 21. Vous avez perdu ${amount} ${currencyName}.`, + ) + .setColor("#0099ff"); + + message.reply({ + embeds: [loseEmbed], + allowedMentions: { repliedUser: false }, + }); + collector.stop(); + } else { + embed.spliceFields(0, 1, { + name: "Votre main", + value: `Cartes: ${playerCards.map((card) => card.symbol + " " + card.value).join(" ")}\nTotal: ${playerTotal}`, + inline: true, + }); + i.editReply({ embeds: [embed] }); + } + usersWithGameInProgress.delete(user.id); + } else if (i.customId === "blackjack_stand") { + let dealerTotal = dealerCards.reduce( + (total, card) => total + cardValues[card.value], + 0, + ); + while (dealerTotal < 17) { + dealerCards.push(drawCard()); + dealerTotal = dealerCards.reduce( + (total, card) => total + cardValues[card.value], + 0, + ); + } + + const playerTotal = playerCards.reduce( + (total, card) => total + cardValues[card.value], + 0, + ); + let result; + if (dealerTotal > 21) { + result = `Le croupier a dépassé 21. Vous gagnez ${amount * 1.5} ${currencyName}. !`; + + let pocketAmount = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket || 0); + } + }, + ); + }); + + await new Promise((resolve, reject) => { + db.run( + `UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, + [ + pocketAmount + amount * 1.5, + message.author.id, + message.guild.id, + ], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); + + const winEmbed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setDescription(result) + .setColor("#0099ff"); + + message.reply({ + embeds: [winEmbed], + allowedMentions: { repliedUser: false }, + }); + usersWithGameInProgress.delete(user.id); + } else if (dealerTotal > playerTotal) { + result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`; + + const loseEmbed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setDescription(result) + .setColor("#0099ff"); + + message.reply({ + embeds: [loseEmbed], + allowedMentions: { repliedUser: false }, + }); + usersWithGameInProgress.delete(user.id); + } else if (dealerTotal < playerTotal) { + let pocketAmount = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket || 0); + } + }, + ); + }); + + const winnings = amount * 1.5; + + await new Promise((resolve, reject) => { + db.run( + `UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, + [pocketAmount + winnings, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); + + result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`; + + const winEmbed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setDescription(result) + .setColor("#0099ff"); + + message.reply({ + embeds: [winEmbed], + allowedMentions: { repliedUser: false }, + }); + usersWithGameInProgress.delete(user.id); + } else { + result = "Il y a eu égalité. Vous récupérez votre mise."; + let pocketAmount = + (await db.get(`${guildId}.pocket.${user.id}`)) || 0; + await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount); + + const tieEmbed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setDescription(result) + .setColor("#0099ff"); + + message.reply({ + embeds: [tieEmbed], + allowedMentions: { repliedUser: false }, + }); + } + usersWithGameInProgress.delete(user.id); + collector.stop(); + } else if (i.customId === "blackjack_cancel") { + let pocketAmount = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket || 0); + } + }, + ); + }); + + await new Promise((resolve, reject) => { + db.run( + `UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, + [pocketAmount + amount / 2, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); + + const cancelEmbed = new EmbedBuilder() + .setTitle("Blackjack 🎲") + .setDescription( + "Partie annulée. Vous récupérez la moitié de votre mise.", + ) + .setColor("#0099ff"); + + message.reply({ + embeds: [cancelEmbed], + allowedMentions: { repliedUser: false }, + }); + + usersWithGameInProgress.delete(user.id); + collector.stop(); + } + }); + } + }, +}; diff --git a/commands/jeux/box.js b/commands/jeux/box.js index e539868..9eec34a 100644 --- a/commands/jeux/box.js +++ b/commands/jeux/box.js @@ -1,99 +1,157 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); module.exports = { - aliases: ['roulette'], - description: 'Lance une roulette 100% gagante. (coûte une clef)', - emote: '🎲', - utilisation: '', - permission: 0, + aliases: ["roulette"], + description: "Lance une roulette 100% gagante. (coûte une clef)", + emote: "🎲", + utilisation: "", + permission: 0, - async execute(message, args, client) { - const key = await new Promise((resolve, reject) => { - db.get(`SELECT key FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.key); - } - }); - }); - if (key == 0) return message.reply('Tu n\'as pas de clef, tu ne peux pas ouvrir de box') - db.run(`UPDATE users SET key = key - 1 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]) + async execute(message, args, client) { + const key = await new Promise((resolve, reject) => { + db.get( + `SELECT key FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.key); + } + }, + ); + }); + if (key == 0) + return message.reply("Tu n'as pas de clef, tu ne peux pas ouvrir de box"); + db.run(`UPDATE users SET key = key - 1 WHERE userId = ? AND guildId = ?`, [ + message.author.id, + message.guild.id, + ]); - const embed = new EmbedBuilder() - .setTitle('🗝️ Box') - .setDescription(`🪙👑🗝️\n💰🔺🪙\n🪙🪙🗝️`) + const embed = new EmbedBuilder() + .setTitle("🗝️ Box") + .setDescription(`🪙👑🗝️\n💰🔺🪙\n🪙🪙🗝️`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, + iconURL: message.author.displayAvatarURL(), + }); + + const msg = await message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + + await new Promise((resolve) => setTimeout(resolve, 1000)); + + const result = Math.floor(Math.random() * 30); + let gain = ""; + let emoji = ""; + let recompense = ""; + if (result === 0) { + gain = "30000"; + emoji = "💰"; + recompense = "bank"; + } else if (result === 1) { + gain = "5"; + emoji = "🗝️"; + recompense = "key"; + } else if (result === 2) { + emoji = "👑"; + recompense = "couronne"; + } else if (result % 2 === 0) { + gain = "5000"; + emoji = "🪙"; + recompense = "pocket"; + } else { + gain = "3"; + emoji = "🔺"; + recompense = "reputation"; + } + + if (recompense !== "couronne") { + await new Promise((resolve, reject) => { + db.run( + `UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`, + [gain, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); + msg.delete(); + message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🗝️ Box") + .setDescription( + `${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n\nVous avez gagner ${gain}${recompense} !`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } else { + db.run( + `UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, + [15000, message.author.id, message.guild.id], + ); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [5000, message.author.id, message.guild.id], + ); + db.run( + `UPDATE users SET reputation = reputation + ? WHERE userId = ? AND guildId = ?`, + [5, message.author.id, message.guild.id], + ); + db.run( + `UPDATE users SET key = key + ? WHERE userId = ? AND guildId = ?`, + [5, message.author.id, message.guild.id], + ); + db.run(`UPDATE users SET xp = xp + ? WHERE userId = ? AND guildId = ?`, [ + 50, + message.author.id, + message.guild.id, + ]); + db.run( + `UPDATE users SET lvl = lvl + ? WHERE userId = ? AND guildId = ?`, + [2, message.author.id, message.guild.id], + ); - const msg = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - - await new Promise(resolve => setTimeout(resolve, 1000)); - - const result = Math.floor(Math.random() * 30); - let gain = ''; - let emoji = ''; - let recompense = ''; - if (result === 0) { - gain = '30000'; - emoji = '💰'; - recompense = 'bank'; - } else if (result === 1) { - gain = '5'; - emoji = '🗝️'; - recompense = 'key'; - } else if (result === 2) { - emoji = '👑'; - recompense = 'couronne'; - } else if (result % 2 === 0) { - gain = '5000'; - emoji = '🪙'; - recompense = 'pocket'; - } else { - gain = '3'; - emoji = '🔺'; - recompense = 'reputation'; - } - - if (recompense !== 'couronne') { - await new Promise((resolve, reject) => { - db.run(`UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - msg.delete() - message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🗝️ Box') - .setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\nVous avez gagner ${gain}${recompense} !`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) - } else { - db.run(`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, [15000, message.author.id, message.guild.id]) - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [5000, message.author.id, message.guild.id]) - db.run(`UPDATE users SET reputation = reputation + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id]) - db.run(`UPDATE users SET key = key + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id]) - db.run(`UPDATE users SET xp = xp + ? WHERE userId = ? AND guildId = ?`, [50, message.author.id, message.guild.id]) - db.run(`UPDATE users SET lvl = lvl + ? WHERE userId = ? AND guildId = ?`, [2, message.author.id, message.guild.id]) - - msg.delete() - message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🗝️ Box') - .setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\n## **Vous avez gagner \`15000\`coins en bank, \`5000\`coins en poche, \`5\`reputation, \`5\`clef, \`50\`xp et \`5\`niveau !!**`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) - } + msg.delete(); + message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🗝️ Box") + .setDescription( + `${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n\n## **Vous avez gagner \`15000\`coins en bank, \`5000\`coins en poche, \`5\`reputation, \`5\`clef, \`50\`xp et \`5\`niveau !!**`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } -}; \ No newline at end of file + }, +}; diff --git a/commands/jeux/dice.js b/commands/jeux/dice.js index bb48d5e..0c5d255 100644 --- a/commands/jeux/dice.js +++ b/commands/jeux/dice.js @@ -1,109 +1,169 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); module.exports = { - aliases: ['dice', 'dé'], - description: 'Lance un dé.', - emote: '🎲', - utilisation: ' ', + aliases: ["dice", "dé"], + description: "Lance un dé.", + emote: "🎲", + utilisation: " ", permission: 0, async execute(message, args, client) { - let mise = 0 - let face = `${args[1]}\` et \`${args[2]}` + let mise = 0; + let face = `${args[1]}\` et \`${args[2]}`; const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket); - } - }); + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket); + } + }, + ); }); - if (args[0] == 'all') { - mise = pocket + if (args[0] == "all") { + mise = pocket; } else { - mise = args[0] + mise = args[0]; } if (pocket < mise) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🎲 Lancer de dé') - .setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) + .setTitle("🎲 Lancer de dé") + .setDescription( + `Vous n'avez pas assez d'argent sur vous pour miser cette somme.`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } if (args.length !== 3) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🎲 Lancer de dé') - .setDescription(`Vous devez spécifier une mise et deux face. Exemple : \`&dice 100 1 2\`.`) + .setTitle("🎲 Lancer de dé") + .setDescription( + `Vous devez spécifier une mise et deux face. Exemple : \`&dice 100 1 2\`.`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return - } + return; + } if (isNaN(args[0]) && !args[0] == "all") { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🎲 Lancer de dé') + .setTitle("🎲 Lancer de dé") .setDescription(`La mise doit être un nombre.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else if (mise < 25) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🎲 Lancer de dé') + .setTitle("🎲 Lancer de dé") .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return - } else if (!face.includes(1) && !face.includes(2) && !face.includes(3) && !face.includes(4) && !face.includes(5) && !face.includes(6)) { - embedColor(message.author.id, message.guild.id).then(color => { + return; + } else if ( + !face.includes(1) && + !face.includes(2) && + !face.includes(3) && + !face.includes(4) && + !face.includes(5) && + !face.includes(6) + ) { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🎲 Lancer de dé') + .setTitle("🎲 Lancer de dé") .setDescription(`La face doit être 1, 2, 3, 4, 5 ou 6.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🎲 Lancer de dé') - .setImage('https://cdn.discordapp.com/attachments/1120446538544595005/1195513783997714564/dice.gif?') - .setDescription(`Vous avez misé \`${mise}\` sur \`${face}\`. Le dé tourne...\nRésultat dans 7.5 secondes...`) + .setTitle("🎲 Lancer de dé") + .setImage( + "https://cdn.discordapp.com/attachments/1120446538544595005/1195513783997714564/dice.gif?", + ) + .setDescription( + `Vous avez misé \`${mise}\` sur \`${face}\`. Le dé tourne...\nRésultat dans 7.5 secondes...`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - await new Promise(resolve => setTimeout(resolve, 7500)); + await new Promise((resolve) => setTimeout(resolve, 7500)); const result = Math.floor(Math.random() * 6) + 1; let gain = 0; @@ -114,39 +174,59 @@ module.exports = { } await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [gain, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); }); if (gain >= 0) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🎲 Lancer de dé') - .setDescription(`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez gagné \`${gain}\` !`) + .setTitle("🎲 Lancer de dé") + .setDescription( + `Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez gagné \`${gain}\` !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🎲 Lancer de dé') - .setDescription(`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez perdu \`${0 - gain}\` !`) + .setTitle("🎲 Lancer de dé") + .setDescription( + `Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez perdu \`${0 - gain}\` !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } - } -}; \ No newline at end of file + }, +}; diff --git a/commands/jeux/gunfight.js b/commands/jeux/gunfight.js index 316142d..58fddf6 100644 --- a/commands/jeux/gunfight.js +++ b/commands/jeux/gunfight.js @@ -1,12 +1,17 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); module.exports = { aliases: [], - description: 'Joue au gunfight.', - emote: '🔫', - utilisation: '<@membre> ', + description: "Joue au gunfight.", + emote: "🔫", + utilisation: "<@membre> ", permission: 0, async execute(message, args, client) { @@ -22,231 +27,358 @@ module.exports = { member = args[0]; mise = args[1]; } else { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription( + `Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } if (!member || !mise) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription( + `Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } - + if (isNaN(mise)) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`La mise doit être un nombre.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription(`La mise doit être un nombre.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } if (mise < 25) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } if (member === message.author.id) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Vous ne pouvez pas jouer contre vous-même.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription(`Vous ne pouvez pas jouer contre vous-même.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } if (member === client.user.id) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Je ne peux pas jouer contre vous désolé.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription(`Je ne peux pas jouer contre vous désolé.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } - if (client.users.cache.get(member)?.bot) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription('Vous ne pouvez pas jouer contre un bot.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + if (client.users.cache.get(member)?.bot) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription("Vous ne pouvez pas jouer contre un bot.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } const pocketUser = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - if (row) { - resolve(row.pocket); + db.get( + `SELECT * FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); } else { - resolve(null); + if (row) { + resolve(row.pocket); + } else { + resolve(null); + } } - } - }); + }, + ); }); const pocketMember = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [member, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - if (row) { - resolve(row.pocket); + db.get( + `SELECT * FROM users WHERE userId = ? AND guildId = ?`, + [member, message.guild.id], + (err, row) => { + if (err) { + reject(err); } else { - resolve(null); + if (row) { + resolve(row.pocket); + } else { + resolve(null); + } } - } - }); + }, + ); }); if (pocketUser === null) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Vous n'êtes pas enregistré dans la base de données.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription( + `Vous n'êtes pas enregistré dans la base de données.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } - + if (pocketMember === null) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Le membre spécifié n'existe pas.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription(`Le membre spécifié n'existe pas.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } if (pocketUser < mise) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.\nVotre solde actuel est de ${pocketUser} coins.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription( + `Vous n'avez pas assez d'argent sur vous pour miser cette somme.\nVotre solde actuel est de ${pocketUser} coins.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } if (pocketMember < mise) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Ce membre n'a pas assez d'argent sur lui pour miser cette somme.\nSon solde actuel est de ${pocketMember} coins.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription( + `Ce membre n'a pas assez d'argent sur lui pour miser cette somme.\nSon solde actuel est de ${pocketMember} coins.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } if (pocketUser === 0) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Vous n'avez pas d'argent sur vous pour miser.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription(`Vous n'avez pas d'argent sur vous pour miser.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } if (pocketMember === 0) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Ce membre n'a pas d'argent sur lui pour miser.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription(`Ce membre n'a pas d'argent sur lui pour miser.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } const embed = new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Vous avez défié <@${member}> à un duel de gunfight pour une mise de ${mise} coins.\nVeuillez appuyer sur le bouton pour accepter ou refuser le défi.`) + .setTitle("🔫 Gunfight") + .setDescription( + `Vous avez défié <@${member}> à un duel de gunfight pour une mise de ${mise} coins.\nVeuillez appuyer sur le bouton pour accepter ou refuser le défi.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); const buttonAccept = new ButtonBuilder() - .setCustomId('gunfight-accept') - .setLabel('Accepter') + .setCustomId("gunfight-accept") + .setLabel("Accepter") .setStyle(ButtonStyle.Success); const buttonRefuse = new ButtonBuilder() - .setCustomId('gunfight-refuse') - .setLabel('Refuser') + .setCustomId("gunfight-refuse") + .setLabel("Refuser") .setStyle(ButtonStyle.Danger); - const actionRow = new ActionRowBuilder() - .addComponents(buttonAccept, buttonRefuse); + const actionRow = new ActionRowBuilder().addComponents( + buttonAccept, + buttonRefuse, + ); - const sendMessage = await message.reply({ embeds: [embed], components: [actionRow], allowedMentions: { repliedUser: false } }); + const sendMessage = await message.reply({ + embeds: [embed], + components: [actionRow], + allowedMentions: { repliedUser: false }, + }); - const filter = i => i.user.id === member; - const collector = sendMessage.createMessageComponentCollector({ filter, time: 60000 }); - collector.on('collect', async i => { - if (i.customId === 'gunfight-accept') { + const filter = (i) => i.user.id === member; + const collector = sendMessage.createMessageComponentCollector({ + filter, + time: 60000, + }); + collector.on("collect", async (i) => { + if (i.customId === "gunfight-accept") { collector.stop(); i.deferUpdate(); - db.run(`UPDATE users SET pocket = pocket - ? WHERE userId = ? AND guildId = ?`, [mise, message.author.id, message.guild.id]); - db.run(`UPDATE users SET pocket = pocket - ? WHERE userId = ? AND guildId = ?`, [mise, member, message.guild.id]); + db.run( + `UPDATE users SET pocket = pocket - ? WHERE userId = ? AND guildId = ?`, + [mise, message.author.id, message.guild.id], + ); + db.run( + `UPDATE users SET pocket = pocket - ? WHERE userId = ? AND guildId = ?`, + [mise, member, message.guild.id], + ); const tirerBtn = new ButtonBuilder() - .setCustomId('gunfight-tirer') - .setLabel('Tirer') + .setCustomId("gunfight-tirer") + .setLabel("Tirer") .setStyle(ButtonStyle.Danger); - const actionRow = new ActionRowBuilder() - .addComponents(tirerBtn); + const actionRow = new ActionRowBuilder().addComponents(tirerBtn); - sendMessage.edit({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Le membre a accepté votre défi de gunfight. Le duel va commencer.\nAppuyez sur le bouton pour tirer quand il devient vert.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], components: [actionRow] }); + sendMessage.edit({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription( + `Le membre a accepté votre défi de gunfight. Le duel va commencer.\nAppuyez sur le bouton pour tirer quand il devient vert.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + components: [actionRow], + }); - const timer = Math.floor(Math.random() * 10000) + 5000 + const timer = Math.floor(Math.random() * 10000) + 5000; let fincollector = false; - const filter = i => i.user.id === member || i.user.id === message.member.id; - const tirerCollector = sendMessage.createMessageComponentCollector({ filter, time: timer }); - tirerCollector.on('collect', async i => { - if (i.customId === 'gunfight-tirer') { + const filter = (i) => + i.user.id === member || i.user.id === message.member.id; + const tirerCollector = sendMessage.createMessageComponentCollector({ + filter, + time: timer, + }); + tirerCollector.on("collect", async (i) => { + if (i.customId === "gunfight-tirer") { fincollector = true; tirerCollector.stop(); sendMessage.edit({ components: [] }); @@ -261,55 +393,82 @@ module.exports = { notwinner = member; } - i.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Le duel est terminé. <@${winner}> a gagné la somme de ${mise*2} coins car <@${notwinner}> a tiré trop tôt`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - ] }); + i.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription( + `Le duel est terminé. <@${winner}> a gagné la somme de ${mise * 2} coins car <@${notwinner}> a tiré trop tôt`, + ) + .setColor( + await embedColor(message.author.id, message.guild.id), + ) + .setTimestamp(), + ], + }); - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [mise*2, winner, message.guild.id]); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [mise * 2, winner, message.guild.id], + ); } }); - tirerCollector.on('end', async () => { + tirerCollector.on("end", async () => { if (fincollector) return; tirerBtn.setStyle(ButtonStyle.Success); sendMessage.edit({ components: [actionRow] }); - const filter = i => i.user.id === member || i.user.id === message.member.id; - const tirerCollector = sendMessage.createMessageComponentCollector({ filter, time: 60000 }); - tirerCollector.on('collect', async i => { - if (i.customId === 'gunfight-tirer') { + const filter = (i) => + i.user.id === member || i.user.id === message.member.id; + const tirerCollector = sendMessage.createMessageComponentCollector({ + filter, + time: 60000, + }); + tirerCollector.on("collect", async (i) => { + if (i.customId === "gunfight-tirer") { tirerCollector.stop(); sendMessage.edit({ components: [] }); - i.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Le duel est terminé. <@${i.user.id}> a gagné la somme de ${mise*2} coins.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - ] }); + i.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription( + `Le duel est terminé. <@${i.user.id}> a gagné la somme de ${mise * 2} coins.`, + ) + .setColor( + await embedColor(message.author.id, message.guild.id), + ) + .setTimestamp(), + ], + }); - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [mise*2, i.user.id, message.guild.id]); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [mise * 2, i.user.id, message.guild.id], + ); return; } }); }); - - } else if (i.customId === 'gunfight-refuse') { + } else if (i.customId === "gunfight-refuse") { collector.stop(); - sendMessage.edit({ embeds: [ - new EmbedBuilder() - .setTitle('🔫 Gunfight') - .setDescription(`Le membre a refusé votre défi de gunfight.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], components: [] }); + sendMessage.edit({ + embeds: [ + new EmbedBuilder() + .setTitle("🔫 Gunfight") + .setDescription(`Le membre a refusé votre défi de gunfight.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + components: [], + }); } }); - } -}; \ No newline at end of file + }, +}; diff --git a/commands/jeux/machine-a-sous.js b/commands/jeux/machine-a-sous.js index 6821a86..0c79c61 100644 --- a/commands/jeux/machine-a-sous.js +++ b/commands/jeux/machine-a-sous.js @@ -1,151 +1,230 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); module.exports = { - aliases: ['slot'], - description: 'Lance la machine à sous (si 3caractère identique, tu remporte 3fois ta mise).', - emote: '🪙', - utilisation: '', + aliases: ["slot"], + description: + "Lance la machine à sous (si 3caractère identique, tu remporte 3fois ta mise).", + emote: "🪙", + utilisation: "", permission: 0, async execute(message, args, client) { if (args.length !== 1) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Machine à sous') - .setDescription(`Vous devez spécifier une mise. Exemple : \`&machine-a-sous 100\`.`) + .setTitle("🪙 Machine à sous") + .setDescription( + `Vous devez spécifier une mise. Exemple : \`&machine-a-sous 100\`.`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else if (isNaN(args[0])) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Machine à sous') + .setTitle("🪙 Machine à sous") .setDescription(`La mise doit être un nombre.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else if (args[0] < 25) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Machine à sous') + .setTitle("🪙 Machine à sous") .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], async (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket); - } - }); + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + async (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket); + } + }, + ); }); - if (pocket < args[0]) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Machine à sous') - .setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) + .setTitle("🪙 Machine à sous") + .setDescription( + `Vous n'avez pas assez d'argent sur vous pour miser cette somme.`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Machine à sous') - .setImage('https://cdn.discordapp.com/attachments/1244326671730086049/1246142849955664093/3OkKuOYO.1245413015365488731.gif?ex=665b5077&is=6659fef7&hm=94eb9000c433e25e2e9a2355e693eb8e01b5d27fa250a8889f6098f14bf67a80&') - .setDescription(`Vous avez misé \`${args[0]}\`. Les chiffres deffilent...\nRésultat dans 7.5 secondes...`) + .setTitle("🪙 Machine à sous") + .setImage( + "https://cdn.discordapp.com/attachments/1244326671730086049/1246142849955664093/3OkKuOYO.1245413015365488731.gif?ex=665b5077&is=6659fef7&hm=94eb9000c433e25e2e9a2355e693eb8e01b5d27fa250a8889f6098f14bf67a80&", + ) + .setDescription( + `Vous avez misé \`${args[0]}\`. Les chiffres deffilent...\nRésultat dans 7.5 secondes...`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - await new Promise(resolve => setTimeout(resolve, 7500)); + await new Promise((resolve) => setTimeout(resolve, 7500)); - let nombre1 = await Math.floor(Math.random() * 10) - let nombre2 = await Math.floor(Math.random() * (nombre1 + 1)) - let nombre3 = await Math.floor(Math.random() * (nombre2 + 2)) + let nombre1 = await Math.floor(Math.random() * 10); + let nombre2 = await Math.floor(Math.random() * (nombre1 + 1)); + let nombre3 = await Math.floor(Math.random() * (nombre2 + 2)); let gain = 0; - if (nombre1 === nombre2 === nombre3) { + if ((nombre1 === nombre2) === nombre3) { gain = args[0] * 10; - } else if ((nombre1 === nombre2) || (nombre1 === nombre3) || (nombre2 == nombre3)) { + } else if ( + nombre1 === nombre2 || + nombre1 === nombre3 || + nombre2 == nombre3 + ) { gain = args[0] * 2; } else { gain = 0 - args[0]; } await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [gain, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); }); if (gain == args[0] * 10) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Machine à sous') - .setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez gagné \`${gain}\` !`) + .setTitle("🪙 Machine à sous") + .setDescription( + `Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez gagné \`${gain}\` !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else if (gain == args[0] * 2) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Machine à sous') - .setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous gagner deux fois votre mise (\`${gain}\`) car deux nombres sont identiques :wink: !`) + .setTitle("🪙 Machine à sous") + .setDescription( + `Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous gagner deux fois votre mise (\`${gain}\`) car deux nombres sont identiques :wink: !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Machine à sous') - .setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez perdu \`${0 - gain}\` !\n\nLa probabilité de ne pas perdre à ce jeu est inferieur à 5%. La mise en cas de gain est donc mutiplier par 10`) + .setTitle("🪙 Machine à sous") + .setDescription( + `Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez perdu \`${0 - gain}\` !\n\nLa probabilité de ne pas perdre à ce jeu est inferieur à 5%. La mise en cas de gain est donc mutiplier par 10`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } - } -}; \ No newline at end of file + }, +}; diff --git a/commands/jeux/pierre-feuille-ciseau.js b/commands/jeux/pierre-feuille-ciseau.js index f14b18b..ade2eaa 100644 --- a/commands/jeux/pierre-feuille-ciseau.js +++ b/commands/jeux/pierre-feuille-ciseau.js @@ -1,151 +1,227 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); module.exports = { - aliases: ['pfc'], - description: 'Joue au pierre feuille ciseau.', - emote: '🎲', - utilisation: ' ', + aliases: ["pfc"], + description: "Joue au pierre feuille ciseau.", + emote: "🎲", + utilisation: " ", permission: 0, async execute(message, args, client) { if (args.length !== 2) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🪨 Pierre Feuille Ciseau') - .setDescription(`Vous devez spécifier une mise et un coup. Exemple : \`&pierre-feuille-ciseau 100 pierre\`.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) - + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🪨 Pierre Feuille Ciseau") + .setDescription( + `Vous devez spécifier une mise et un coup. Exemple : \`&pierre-feuille-ciseau 100 pierre\`.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } else if (isNaN(args[0])) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🪨 Pierre Feuille Ciseau') - .setDescription(`La mise doit être un nombre.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) - + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🪨 Pierre Feuille Ciseau") + .setDescription(`La mise doit être un nombre.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } else if (args[0] < 25) { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🪨 Pierre Feuille Ciseau') - .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) - - } else if (args[1] !== 'pierre' && args[1] !== 'p' && args[1] !== 'feuille' && args[1] !== 'f' && args[1] !== 'ciseau' && args[1] !== 'c') { - return message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🪨 Pierre Feuille Ciseau') - .setDescription(`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🪨 Pierre Feuille Ciseau") + .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } else if ( + args[1] !== "pierre" && + args[1] !== "p" && + args[1] !== "feuille" && + args[1] !== "f" && + args[1] !== "ciseau" && + args[1] !== "c" + ) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🪨 Pierre Feuille Ciseau") + .setDescription( + `La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); } const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], async (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket); - } - }); + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + async (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket); + } + }, + ); }); - if (pocket < args[0]) return message.reply({ + if (pocket < args[0]) + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🪨 Pierre Feuille Ciseau") + .setDescription( + `Vous n'avez pas assez d'argent sur vous pour miser cette somme.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + + const sendMessage = await message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🪨 Pierre Feuille Ciseau') - .setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) + .setTitle("🪨 Pierre Feuille Ciseau") + .setDescription( + `Vous avez misé(e) \`${args[0]}\` coins sur \`${args[1]}\`...\nRésultat dans 7.5 secondes...`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); - const sendMessage = await message.reply({ embeds: [ - new EmbedBuilder() - .setTitle('🪨 Pierre Feuille Ciseau') - .setDescription(`Vous avez misé(e) \`${args[0]}\` coins sur \`${args[1]}\`...\nRésultat dans 7.5 secondes...`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } }) - - await new Promise(resolve => setTimeout(resolve, 7500)); + await new Promise((resolve) => setTimeout(resolve, 7500)); const result = Math.floor(Math.random() * 2); - let coupBot = '' - let coupBotA = '' + let coupBot = ""; + let coupBotA = ""; if (result === 0) { - coupBot = 'feuille'; - coupBotA = 'f' + coupBot = "feuille"; + coupBotA = "f"; } else if (result === 1) { - coupBot = 'ciseau'; - coupBotA = 'c' + coupBot = "ciseau"; + coupBotA = "c"; } else { - coupBot = 'pierre'; - coupBotA = 'p' + coupBot = "pierre"; + coupBotA = "p"; } let gain = args[0]; - let description = '' - let coupUser = '' - let win = false - if (args[1] == 'p' || args[1] == 'pierre') { - coupUser = 'p' + let description = ""; + let coupUser = ""; + let win = false; + if (args[1] == "p" || args[1] == "pierre") { + coupUser = "p"; } - if (args[1] == 'f' || args[1] == 'feuille') { - coupUser = 'f' + if (args[1] == "f" || args[1] == "feuille") { + coupUser = "f"; } - if (args[1] == 'c' || args[1] == 'ciseau') { - coupUser = 'c' + if (args[1] == "c" || args[1] == "ciseau") { + coupUser = "c"; } if (args[1] === coupBot || args[1] === coupBotA) { - gain = 0 - description = 'A refaire, le bot a jouer `' + coupBot + '`, comme toi...'; - } else if (coupUser == 'p' && coupBotA == 'c') { - win = true - } else if (coupUser == 'f' && coupBotA == 'p') { - win = true - } else if (coupUser == 'c' && coupBotA == 'f') { - win = true + gain = 0; + description = "A refaire, le bot a jouer `" + coupBot + "`, comme toi..."; + } else if (coupUser == "p" && coupBotA == "c") { + win = true; + } else if (coupUser == "f" && coupBotA == "p") { + win = true; + } else if (coupUser == "c" && coupBotA == "f") { + win = true; } else { gain = 0 - args[0]; - description = 'Tu as perdu `' + args[0] + '`coins... Le bot a jouer `' + coupBot + '` !'; + description = + "Tu as perdu `" + + args[0] + + "`coins... Le bot a jouer `" + + coupBot + + "` !"; } if (win == true) { - gain = gain * 2 - description = 'Bravo, tu as gagné(e) `' + gain + '` coins car le bot a jouer `' + coupBot + '` !' + gain = gain * 2; + description = + "Bravo, tu as gagné(e) `" + + gain + + "` coins car le bot a jouer `" + + coupBot + + "` !"; } - sendMessage.edit({ embeds: [ - new EmbedBuilder() - .setTitle('🪨 Pierre Feuille Ciseau') - .setDescription(description) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ] }) + sendMessage.edit({ + embeds: [ + new EmbedBuilder() + .setTitle("🪨 Pierre Feuille Ciseau") + .setDescription(description) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + }); await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [gain, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); }); - } -}; \ No newline at end of file + }, +}; diff --git a/commands/jeux/pile-face.js b/commands/jeux/pile-face.js index 32cc4c3..c338e26 100644 --- a/commands/jeux/pile-face.js +++ b/commands/jeux/pile-face.js @@ -1,157 +1,238 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); module.exports = { - aliases: ['pf'], - description: 'Lance une piece.', - emote: '🎲', - utilisation: ' ', + aliases: ["pf"], + description: "Lance une piece.", + emote: "🎲", + utilisation: " ", permission: 0, async execute(message, args, client) { - let mise = 0 + let mise = 0; const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket); - } - }); + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket); + } + }, + ); }); - if (args[0] == 'all') { - mise = pocket + if (args[0] == "all") { + mise = pocket; } else { - mise = args[0] + mise = args[0]; } if (pocket < mise) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Pile ou face') - .setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) + .setTitle("🪙 Pile ou face") + .setDescription( + `Vous n'avez pas assez d'argent sur vous pour miser cette somme.`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } if (args.length !== 2) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Pile ou face') - .setDescription(`Vous devez spécifier une mise et un côté. Exemple : \`&pile-face 100 pile\`.`) + .setTitle("🪙 Pile ou face") + .setDescription( + `Vous devez spécifier une mise et un côté. Exemple : \`&pile-face 100 pile\`.`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else if (isNaN(args[0]) && !args[0] == "all") { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Pile ou face') + .setTitle("🪙 Pile ou face") .setDescription(`La mise doit être un nombre.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else if (mise < 25) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Pile ou face') + .setTitle("🪙 Pile ou face") .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return - } else if (args[1] !== 'pile' && args[1] !== 'face' && args[1] !== 'p' && args[1] !== 'f') { - embedColor(message.author.id, message.guild.id).then(color => { + return; + } else if ( + args[1] !== "pile" && + args[1] !== "face" && + args[1] !== "p" && + args[1] !== "f" + ) { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Pile ou face') + .setTitle("🪙 Pile ou face") .setDescription(`Le côté doit être \`pile\` ou \`face\`.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Pile ou face') - .setImage('https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif') - .setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\`. la pièce tourne...\nRésultat dans 7.5 secondes...`) + .setTitle("🪙 Pile ou face") + .setImage( + "https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif", + ) + .setDescription( + `Vous avez misé \`${mise}\` sur \`${args[1]}\`. la pièce tourne...\nRésultat dans 7.5 secondes...`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - await new Promise(resolve => setTimeout(resolve, 7500)); + await new Promise((resolve) => setTimeout(resolve, 7500)); const result = Math.floor(Math.random() * 2); - let colorR = ''; + let colorR = ""; if (result === 0) { - colorR = 'pile'; + colorR = "pile"; } else { - colorR = 'face'; + colorR = "face"; } let gain = 0; - if (((args[1] === 'pile' || args[1] === 'p') && colorR === 'pile') || ((args[1] === 'face' || args[1] === 'f') && colorR === 'face')) { + if ( + ((args[1] === "pile" || args[1] === "p") && colorR === "pile") || + ((args[1] === "face" || args[1] === "f") && colorR === "face") + ) { gain = Math.round(mise * 1.5); } else { gain = 0 - mise; } await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [gain, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); }); if (gain >= 0) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Pile ou face') - .setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la pièce est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`) + .setTitle("🪙 Pile ou face") + .setDescription( + `Vous avez misé \`${mise}\` sur \`${args[1]}\` et la pièce est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🪙 Pile ou face') - .setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la pièce est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`) + .setTitle("🪙 Pile ou face") + .setDescription( + `Vous avez misé \`${mise}\` sur \`${args[1]}\` et la pièce est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } - } -}; \ No newline at end of file + }, +}; diff --git a/commands/jeux/poulet.js b/commands/jeux/poulet.js index 8f40ff5..8df1601 100644 --- a/commands/jeux/poulet.js +++ b/commands/jeux/poulet.js @@ -1,87 +1,124 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); module.exports = { - aliases: ['pouletfight', 'pfight', 'poulet'], - description: 'Fait un combat de poulet.', - emote: '🐔', - utilisation: '', + aliases: ["pouletfight", "pfight", "poulet"], + description: "Fait un combat de poulet.", + emote: "🐔", + utilisation: "", permission: 0, async execute(message, args, client) { - let mise = 0 + let mise = 0; const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket); - } - }); + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket); + } + }, + ); }); - if (args[0] == 'all') { - mise = pocket + if (args[0] == "all") { + mise = pocket; } else { - mise = args[0] + mise = args[0]; } if (pocket < mise) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🐔 Poulet') - .setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) + .setTitle("🐔 Poulet") + .setDescription( + `Vous n'avez pas assez d'argent sur vous pour miser cette somme.`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } if (isNaN(args[0]) && !args[0] == "all") { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🐔 Poulet') + .setTitle("🐔 Poulet") .setDescription(`La mise doit être un nombre.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else if (mise < 25) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🐔 Poulet') + .setTitle("🐔 Poulet") .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return - } + return; + } - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🐔 Poulet') + .setTitle("🐔 Poulet") //.setImage('') // image de combat de poulet - .setDescription(`Vous avez misé \`${mise}\` sur votre poulet. Les poulets se battent...\nRésultat dans 7.5 secondes...`) + .setDescription( + `Vous avez misé \`${mise}\` sur votre poulet. Les poulets se battent...\nRésultat dans 7.5 secondes...`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - await new Promise(resolve => setTimeout(resolve, 7500)); + await new Promise((resolve) => setTimeout(resolve, 7500)); const result = Math.floor(Math.random() * 2); - let win = ''; + let win = ""; if (result === 0) { win = true; } else { @@ -96,39 +133,59 @@ module.exports = { } await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [gain, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); }); if (gain >= 0) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🐔 Poulet') - .setDescription(`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a gagné ! Vous avez gagné \`${gain}\`coins !`) + .setTitle("🐔 Poulet") + .setDescription( + `Vous avez misé \`${mise}\` sur votre poulet et votre poulet a gagné ! Vous avez gagné \`${gain}\`coins !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🐔 Poulet') - .setDescription(`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a perdu. Vous avez perdu \`${0 - gain}\`coins !`) + .setTitle("🐔 Poulet") + .setDescription( + `Vous avez misé \`${mise}\` sur votre poulet et votre poulet a perdu. Vous avez perdu \`${0 - gain}\`coins !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } - } -}; \ No newline at end of file + }, +}; diff --git a/commands/jeux/roll.js b/commands/jeux/roll.js index a9abd05..7b54fc7 100644 --- a/commands/jeux/roll.js +++ b/commands/jeux/roll.js @@ -1,162 +1,250 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); - -module.exports = { - aliases: ['roulette'], - description: 'Lance une roulette.', - emote: '🎲', - utilisation: ' ', - permission: 0, - - async execute(message, args, client) { - let mise = 0 - const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - resolve(row.pocket); - } - }); - }); - if (args[0] == 'all') { - mise = pocket - } else { - mise = args[0] - } - - if (args.length !== 2) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🎲 Roulette') - .setDescription(`Vous devez spécifier une mise et une couleur. Exemple : \`&roulette 100 rouge\`.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - return - } else if (isNaN(args[0]) && !args[0] == "all") { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🎲 Roulette') - .setDescription(`La mise doit être un nombre.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - return - } else if (mise < 25) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🎲 Roulette') - .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - return - } else if (args[1] !== 'rouge' && args[1] !== 'noir' && args[1] !== 'vert' && args[1] !== 'red' && args[1] !== 'black' && args[1] !== 'green') { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🎲 Roulette') - .setDescription(`La couleur doit être \`rouge\`, \`noir\` ou \`vert\`.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - return - } - - if (pocket < mise) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🎲 Roulette') - .setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - return - } - - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🎲 Roulette') - .setImage('https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif') - .setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\`. La bille tourne...\nRésultat dans 7.5 secondes...`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - - await new Promise(resolve => setTimeout(resolve, 7500)); - - const result = Math.floor(Math.random() * 37); - let colorR = ''; - if (result === 0) { - colorR = 'vert'; - } else if (result % 2 === 0) { - colorR = 'rouge'; - } else { - colorR = 'noir'; - } - - let gain = 0; - if (((args[1] === 'rouge' || args[1] === 'red') && colorR === 'rouge') || ((args[1] === 'noir' || args[1] === 'black') && colorR === 'noir')) { - gain = Math.round(mise * 1.5); - } else if ((args[1] === 'vert' || args[1] === 'green') && colorR === 'vert') { - gain = mise * 36; - } else { - gain = 0 - mise; - } - - await new Promise((resolve, reject) => { - db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - if (gain >= 0) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🎲 Roulette') - .setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - return - } else { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🎲 Roulette') - .setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - return - } - } -}; \ No newline at end of file +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); + +module.exports = { + aliases: ["roulette"], + description: "Lance une roulette.", + emote: "🎲", + utilisation: " ", + permission: 0, + + async execute(message, args, client) { + let mise = 0; + const pocket = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket); + } + }, + ); + }); + if (args[0] == "all") { + mise = pocket; + } else { + mise = args[0]; + } + + if (args.length !== 2) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🎲 Roulette") + .setDescription( + `Vous devez spécifier une mise et une couleur. Exemple : \`&roulette 100 rouge\`.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + return; + } else if (isNaN(args[0]) && !args[0] == "all") { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🎲 Roulette") + .setDescription(`La mise doit être un nombre.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + return; + } else if (mise < 25) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🎲 Roulette") + .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + return; + } else if ( + args[1] !== "rouge" && + args[1] !== "noir" && + args[1] !== "vert" && + args[1] !== "red" && + args[1] !== "black" && + args[1] !== "green" + ) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🎲 Roulette") + .setDescription( + `La couleur doit être \`rouge\`, \`noir\` ou \`vert\`.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + return; + } + + if (pocket < mise) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🎲 Roulette") + .setDescription( + `Vous n'avez pas assez d'argent sur vous pour miser cette somme.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + return; + } + + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🎲 Roulette") + .setImage( + "https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif", + ) + .setDescription( + `Vous avez misé \`${mise}\` sur \`${args[1]}\`. La bille tourne...\nRésultat dans 7.5 secondes...`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + + await new Promise((resolve) => setTimeout(resolve, 7500)); + + const result = Math.floor(Math.random() * 37); + let colorR = ""; + if (result === 0) { + colorR = "vert"; + } else if (result % 2 === 0) { + colorR = "rouge"; + } else { + colorR = "noir"; + } + + let gain = 0; + if ( + ((args[1] === "rouge" || args[1] === "red") && colorR === "rouge") || + ((args[1] === "noir" || args[1] === "black") && colorR === "noir") + ) { + gain = Math.round(mise * 1.5); + } else if ( + (args[1] === "vert" || args[1] === "green") && + colorR === "vert" + ) { + gain = mise * 36; + } else { + gain = 0 - mise; + } + + await new Promise((resolve, reject) => { + db.run( + `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, + [gain, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); + + if (gain >= 0) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🎲 Roulette") + .setDescription( + `Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + return; + } else { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🎲 Roulette") + .setDescription( + `Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + return; + } + }, +}; diff --git a/commands/jobs/braquage.js b/commands/jobs/braquage.js index d0b1504..0234bfd 100644 --- a/commands/jobs/braquage.js +++ b/commands/jobs/braquage.js @@ -1,100 +1,154 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); module.exports = { - aliases: ['braquage'], - description: 'Tente un braquage. (cout : 5rep)', - emote: '🏦', - utilisation: '<@membre>', + aliases: ["braquage"], + description: "Tente un braquage. (cout : 5rep)", + emote: "🏦", + utilisation: "<@membre>", permission: 0, async execute(message, args, client) { - /////////////////////////////// Calcule des données de la cible //////////////////////////////////////////////// const cible = message.mentions.users.first(); if (!cible) { const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous devez mentionner un membre.') + .setTitle("Erreur") + .setDescription("❌ Vous devez mentionner un membre.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } const cibleBD = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, cible.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, cible.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (cibleBD.bank <= 100) { - return message.reply('votre cible n\'a pas suffisament de coins en bank pour etre voler.') + return message.reply( + "votre cible n'a pas suffisament de coins en bank pour etre voler.", + ); } - + /////////////////////////////// Calcule des données du message.author ///////////////////////////////////////// const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - const usercoinsEnBank = user.bank + const usercoinsEnBank = user.bank; if (usercoinsEnBank < 8) { const embed = new EmbedBuilder() - .setTitle('Braquage Impossible') - .setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`8\` reputation mais vous n'avez que \`${usercoinsEnBank}\`reputation`) + .setTitle("Braquage Impossible") + .setDescription( + `❌ Vous n'avez pas assez de reputation. Il faut \`8\` reputation mais vous n'avez que \`${usercoinsEnBank}\`reputation`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - const lastBraquage = user.lastBraquage + const lastBraquage = user.lastBraquage; if (lastBraquage > Date.now() - 7200000) { const embed = new EmbedBuilder() - .setTitle('Braquage Impossible') - .setDescription(`❌ Vous avez déjà braquage récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`) + .setTitle("Braquage Impossible") + .setDescription( + `❌ Vous avez déjà braquage récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } ///////////////////////////////// Payage + MaJ du braquage ///////////////////////////////////////////////////// - db.run(`UPDATE users SET reputation = reputation - 5 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); - db.run(`UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + db.run( + `UPDATE users SET reputation = reputation - 5 WHERE guildId =? AND userId =?`, + [message.guild.id, message.author.id], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); + db.run( + `UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`, + [Date.now(), message.guild.id, message.author.id], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); /////////////////////////////////// Affichage du 1er msg /////////////////////////////////////////////////////// - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🔐 Braquage') - .setImage('https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif') - .setDescription(`Vous braquer la banque de ${cible}. La porte du coffre s'ouvre...\nRésultat dans 5 secondes...`) + .setTitle("🔐 Braquage") + .setImage( + "https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif", + ) + .setDescription( + `Vous braquer la banque de ${cible}. La porte du coffre s'ouvre...\nRésultat dans 5 secondes...`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - await new Promise(resolve => setTimeout(resolve, 5000)); + await new Promise((resolve) => setTimeout(resolve, 5000)); /////////////////////////////////// Calcule des resultats /////////////////////////////////////////////////////// - + const result = Math.floor(Math.random() * 4); let gain = 0; let coinsEnBank = 0; @@ -103,63 +157,91 @@ module.exports = { coinsEnBank = Math.floor(Math.random() * (cibleBD.bank / 2)); await new Promise((resolve, reject) => { - db.run(`UPDATE users SET bank = bank - ? WHERE userId = ? AND guildId = ?`, [coinsEnBank, message.author.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); + db.run( + `UPDATE users SET bank = bank - ? WHERE userId = ? AND guildId = ?`, + [coinsEnBank, message.author.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); }); await new Promise((resolve, reject) => { - db.run(`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, [coinsEnBank, cible.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); + db.run( + `UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, + [coinsEnBank, cible.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); }); } else { gain = 0; - coinsEnBank = 0 + coinsEnBank = 0; await new Promise((resolve, reject) => { - db.run(`UPDATE users SET bank = bank - 3 WHERE userId = ? AND guildId = ?`, [cible.id, message.guild.id], (err) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); + db.run( + `UPDATE users SET bank = bank - 3 WHERE userId = ? AND guildId = ?`, + [cible.id, message.guild.id], + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); }); } //////////////////////////////////// Affichage de la reponse /////////////////////////////////////////////////// if (gain == 1) { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🔐 Braquage') - .setDescription(`Vous avez braquer <@${cible.id}> et vous n'etes pas tomber sur un agent de securité. Vous avez gagné \`${coinsEnBank}\`coins !`) + .setTitle("🔐 Braquage") + .setDescription( + `Vous avez braquer <@${cible.id}> et vous n'etes pas tomber sur un agent de securité. Vous avez gagné \`${coinsEnBank}\`coins !`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } else { - embedColor(message.author.id, message.guild.id).then(color => { + embedColor(message.author.id, message.guild.id).then((color) => { const embed = new EmbedBuilder() - .setTitle('🔐 Braquage') - .setDescription(`Vous avez braquer <@${cible.id}> mais vous etes tomber sur un policier. Vous avez non seulement perdu votre gain mais le policier vous a obliger a payer \`3\`reputation de dedommagement`) + .setTitle("🔐 Braquage") + .setDescription( + `Vous avez braquer <@${cible.id}> mais vous etes tomber sur un policier. Vous avez non seulement perdu votre gain mais le policier vous a obliger a payer \`3\`reputation de dedommagement`, + ) .setColor(color) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - return + return; } - } -}; \ No newline at end of file + }, +}; diff --git a/commands/jobs/hack.js b/commands/jobs/hack.js index 3f416e3..3b24b57 100644 --- a/commands/jobs/hack.js +++ b/commands/jobs/hack.js @@ -1,139 +1,232 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['hack'], - description: 'Supprime un cadenas à une team. (coût : 4reputation)', - emote: '🔓', - utilisation: '', + aliases: ["hack"], + description: "Supprime un cadenas à une team. (coût : 4reputation)", + emote: "🔓", + utilisation: "", permission: 0, async execute(message, args, client) { if (args.length >= 2) { const embed = new EmbedBuilder() - .setTitle('Hack Impossible') + .setTitle("Hack Impossible") .setDescription(`❌ Veuillez indiquer l'id une team.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } const teamID = args[0].toLowerCase(); const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - const userRep = user.reputation + const userRep = user.reputation; if (userRep < 4) { const embed = new EmbedBuilder() - .setTitle('Hack Impossible') - .setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais vous n'avez que \`${userRep}\` reputation`) + .setTitle("Hack Impossible") + .setDescription( + `❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais vous n'avez que \`${userRep}\` reputation`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - const lastHack = user.lastHack + const lastHack = user.lastHack; const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, teamID], async (err, row) => { - if (err) reject(err); - if (!row) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ La team spécifié n\'existe pas.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - resolve(parseInt(row.reputation)); - }); + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = ?`, + [message.guild.id, teamID], + async (err, row) => { + if (err) reject(err); + if (!row) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ La team spécifié n'existe pas.") + .setColor( + await embedColor(message.author.id, message.guild.id), + ) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + resolve(parseInt(row.reputation)); + }, + ); }); if (lastHack > Date.now() - 7200000) { const embed = new EmbedBuilder() - .setTitle('Hack Impossible') - .setDescription(`❌ Vous avez déjà hack une team récemment. Veuillez attendre ${Math.floor((lastHack + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`) + .setTitle("Hack Impossible") + .setDescription( + `❌ Vous avez déjà hack une team récemment. Veuillez attendre ${Math.floor((lastHack + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - db.run(`UPDATE users SET lastHack =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); - db.run(`UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + db.run( + `UPDATE users SET lastHack =? WHERE guildId =? AND userId =?`, + [Date.now(), message.guild.id, message.author.id], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); + db.run( + `UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`, + [message.guild.id, message.author.id], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); if (Math.floor(Math.random() * 5) <= 1) { - db.run(`UPDATE teams SET padlock = padlock - 1 WHERE guildId =? AND id =?`, [message.guild.id, teamID], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + db.run( + `UPDATE teams SET padlock = padlock - 1 WHERE guildId =? AND id =?`, + [message.guild.id, teamID], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); const embed = new EmbedBuilder() - .setTitle('Hack réussi !') - .setDescription('Vous avez cassé(e) un cadenas de la team `' + team.name + '`, cette team à maintement `' + team.padlock - 1 + '` cadenas !') + .setTitle("Hack réussi !") + .setDescription( + "Vous avez cassé(e) un cadenas de la team `" + + team.name + + "`, cette team à maintement `" + + team.padlock - + 1 + + "` cadenas !", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setImage('https://cdn.discordapp.com/attachments/1173221717024448573/1188279536467579011/hack-pc.gif?ex=665721ce&is=6655d04e&hm=e2f2aacbc56c96a33cab6ce215bdc9d042c25df5ffc608098dc1595fe81ee710&') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setImage( + "https://cdn.discordapp.com/attachments/1173221717024448573/1188279536467579011/hack-pc.gif?ex=665721ce&is=6655d04e&hm=e2f2aacbc56c96a33cab6ce215bdc9d042c25df5ffc608098dc1595fe81ee710&", + ) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); if (team.padlock == 1) { - db.run(`UPDATE users SET bank =? WHERE guildId =? AND userId =?`, [user.bank + team.bank, message.guild.id, message.author.id], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); - db.run(`UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + db.run( + `UPDATE users SET bank =? WHERE guildId =? AND userId =?`, + [user.bank + team.bank, message.guild.id, message.author.id], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); + db.run( + `UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`, + [message.guild.id, message.author.id], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); const embed2 = new EmbedBuilder() - .setTitle('Vole de la banque !') - .setDescription('La team n\'a plus de cadenas ! Vous avez donc recupéré tout l\'argent de la bank (`' + team.bank + '`coins) !') + .setTitle("Vole de la banque !") + .setDescription( + "La team n'a plus de cadenas ! Vous avez donc recupéré tout l'argent de la bank (`" + + team.bank + + "`coins) !", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setImage('') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setImage("") + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed, embed2], allowedMentions: { repliedUser: false } }); + message.reply({ + embeds: [embed, embed2], + allowedMentions: { repliedUser: false }, + }); + } else { + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - else { - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - } - else { + } else { const embed = new EmbedBuilder() - .setTitle('Erreur lors du hack !') - .setDescription('Vous n\'avez pas reussi à casser un cadenas de la team `' + team.name + '`, qui à donc, toujours, `' + team.padlock + '` cadenas.') + .setTitle("Erreur lors du hack !") + .setDescription( + "Vous n'avez pas reussi à casser un cadenas de la team `" + + team.name + + "`, qui à donc, toujours, `" + + team.padlock + + "` cadenas.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setImage('https://cdn.discordapp.com/attachments/1173221717024448573/1188280123485601842/hacker-meme.gif?ex=6655d0da&is=66547f5a&hm=103ee9971cdb67eb528df4c6031e4da69366fb1d1c638f21d4ebf0ef34220691&') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setImage( + "https://cdn.discordapp.com/attachments/1173221717024448573/1188280123485601842/hacker-meme.gif?ex=6655d0da&is=66547f5a&hm=103ee9971cdb67eb528df4c6031e4da69366fb1d1c638f21d4ebf0ef34220691&", + ) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } }, -}; \ No newline at end of file +}; diff --git a/commands/jobs/juge.js b/commands/jobs/juge.js index 062b69b..6f3fc9f 100644 --- a/commands/jobs/juge.js +++ b/commands/jobs/juge.js @@ -1,177 +1,288 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); const cooldown = new Set(); module.exports = { - aliases: ['jugement', 'procès', 'proces'], - description: 'Juge un membre. (cout : 1reputation + 500coins)', - emote: '🏦', - utilisation: '<@membre>', - permission: 0, + aliases: ["jugement", "procès", "proces"], + description: "Juge un membre. (cout : 1reputation + 500coins)", + emote: "🏦", + utilisation: "<@membre>", + permission: 0, - async execute(message, args, client) { + async execute(message, args, client) { + /////////////////////////////// Calcule des données de la cible //////////////////////////////////////////////// - /////////////////////////////// Calcule des données de la cible //////////////////////////////////////////////// + const cible = message.mentions.users.first(); + if (!cible) { + const embed = new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ Vous devez mentionner un membre.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - const cible = message.mentions.users.first(); - if (!cible) { - const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous devez mentionner un membre.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + const cibleBD = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, cible.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + /////////////////////////////// Calcule des données du message.author ///////////////////////////////////////// + + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + const lastJuge = user.lastJuge; + if (lastJuge > Date.now() - 3600000) { + const embed = new EmbedBuilder() + .setTitle("Jugement Impossible") + .setDescription( + `❌ Vous avez déjà juger récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + + let countPr = 0; + let countContre = 0; + const pour = new ButtonBuilder() + .setCustomId("pour") + .setLabel("✅ Pour la sanction") + .setStyle(ButtonStyle.Primary); + const contre = new ButtonBuilder() + .setCustomId("contre") + .setLabel("😡 Contre la sanction") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(pour); + const msg = message.channel.send({ + embeds: [ + new EmbedBuilder() + .setTitle(`Jugement de ${cible.user.username}`) + .setDescription( + `Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage("") + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + const filter = (i) => + (i.customId === "pour" || i.customId === "contre") && + i.user.id === message.author.id; + const collector = msg.createMessageComponentCollector({ + filter, + time: 60000, + }); + collector.on("collect", async (interaction) => { + if (cooldown.has(message.author.id)) { + return message.reply({ + content: "Vous avez deja voté", + ephemeral: true, + }); + } + cooldown.add(message.author.id); + if (i.customId === "contre") { + if (i.user.id == message.author.id) { + countContre = +2; + } else { + countContre = +1; } - const cibleBD = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, cible.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + msg.edit({ + embeds: [ + new EmbedBuilder() + .setTitle(`Jugement de ${cible.user.username}`) + .setDescription( + `Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage("") + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + components: [row], + allowedMentions: { repliedUser: false }, }); - - /////////////////////////////// Calcule des données du message.author ///////////////////////////////////////// - - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - const lastJuge = user.lastJuge - if (lastJuge > Date.now() - 3600000) { - const embed = new EmbedBuilder() - .setTitle('Jugement Impossible') - .setDescription(`❌ Vous avez déjà juger récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + } else { + if (i.user.id == message.author.id) { + countPr = +2; + } else { + countPr = +1; } - - let countPr = 0 - let countContre = 0 - const pour = new ButtonBuilder() - .setCustomId('pour') - .setLabel('✅ Pour la sanction') - .setStyle(ButtonStyle.Primary); - const contre = new ButtonBuilder() - .setCustomId('contre') - .setLabel('😡 Contre la sanction') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(pour); - const msg = message.channel.send({ - embeds: [ - new EmbedBuilder() - .setTitle(`Jugement de ${cible.user.username}`) - .setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setImage('') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - components: [row], - allowedMentions: { repliedUser: false } + msg.edit({ + embeds: [ + new EmbedBuilder() + .setTitle(`Jugement de <${cible.id}>`) + .setDescription( + `Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage( + "https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947", + ) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + components: [row], + allowedMentions: { repliedUser: false }, }); + } + }); - /////////////////////////////////////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - const filter = i => (i.customId === 'pour' || i.customId === 'contre') && i.user.id === message.author.id; - const collector = msg.createMessageComponentCollector({ filter, time: 60000 }) - collector.on('collect', async (interaction) => { - if (cooldown.has(message.author.id)) { return message.reply({ content: 'Vous avez deja voté', ephemeral: true }) } - cooldown.add(message.author.id); - if (i.customId === 'contre') { - if (i.user.id == message.author.id) { countContre = + 2 } else { countContre = + 1 } - msg.edit({ - embeds: [ - new EmbedBuilder() - .setTitle(`Jugement de ${cible.user.username}`) - .setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setImage('') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - components: [row], - allowedMentions: { repliedUser: false } - }) + collector.on("end", () => { + if (countContre > countPr) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setTitle(`Jugement de ${cible.user.username}`) + .setDescription(`Les charges sont abandonnée`) + .setTimestamp() + .setImage("") + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + components: [], + allowedMentions: { repliedUser: false }, + }); + } + if (countContre == countPr) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setTitle(`Jugement de ${cible.user.username}`) + .setDescription( + `Le jury n'arrive pas à ce mettre d'accord ||(${countPr}pour VS ${countContre}contre)|| Les charges sont donc appliquer mais à moitié, ${cible.user.username} ne pourras plus faire la commande \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour la prochaine heures plus le cooldown de chaque commande qui recommancera a la fin de ce delai.`, + ) + .setTimestamp() + .setImage("") + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + components: [], + allowedMentions: { repliedUser: false }, + }); + db.run( + `UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, + [ + Date.now() + 3600000, + Date.now() + 3600000, + Date.now() + 3600000, + Date.now() + 3600000, + Date.now() + 3600000, + Date.now() + 3600000, + Date.now() + 3600000, + Date.now() + 3600000, + Date.now() + 3600000, + message.guild.id, + cible.id, + ], + (err) => { + if (err) { + console.log(`${err}`); } - else { - if (i.user.id == message.author.id) { countPr = + 2 } else { countPr = + 1 } - msg.edit({ - embeds: [ - new EmbedBuilder() - .setTitle(`Jugement de <${cible.id}>`) - .setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setImage('https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - components: [row], - allowedMentions: { repliedUser: false } - }) + }, + ); + } + if (countContre < countPr) { + msg.edit({ + embeds: [ + new EmbedBuilder() + .setTitle(`Jugement de ${cible.user.username}`) + .setDescription( + `Le jury c'est mis d'accord, ${cible.user.username} ne pourras plus faire les commandes \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour __les deux__ prochaines heure __**plus le cooldown de chaque commande** qui recommancera a la **fin de ce delai**.__`, + ) + .setTimestamp() + .setImage("") + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + components: [], + allowedMentions: { repliedUser: false }, + }); + db.run( + `UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, + [ + Date.now() + 7200000, + Date.now() + 7200000, + Date.now() + 7200000, + Date.now() + 7200000, + Date.now() + 7200000, + Date.now() + 7200000, + Date.now() + 7200000, + Date.now() + 7200000, + Date.now() + 7200000, + message.guild.id, + cible.id, + ], + (err) => { + if (err) { + console.log(`${err}`); } - }) - - collector.on('end', () => { - if (countContre > countPr) { - msg.edit({ - embeds: [ - new EmbedBuilder() - .setTitle(`Jugement de ${cible.user.username}`) - .setDescription(`Les charges sont abandonnée`) - .setTimestamp() - .setImage('') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], components: [], allowedMentions: { repliedUser: false } }); - } - if (countContre == countPr) { - msg.edit({ - embeds: [ - new EmbedBuilder() - .setTitle(`Jugement de ${cible.user.username}`) - .setDescription(`Le jury n'arrive pas à ce mettre d'accord ||(${countPr}pour VS ${countContre}contre)|| Les charges sont donc appliquer mais à moitié, ${cible.user.username} ne pourras plus faire la commande \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour la prochaine heures plus le cooldown de chaque commande qui recommancera a la fin de ce delai.`) - .setTimestamp() - .setImage('') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], components: [], allowedMentions: { repliedUser: false } - }); - db.run(`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, message.guild.id, cible.id], (err) => { - if (err) { - console.log(`${err}`) - } - }) - } - if (countContre < countPr) { - msg.edit({ - embeds: [ - new EmbedBuilder() - .setTitle(`Jugement de ${cible.user.username}`) - .setDescription(`Le jury c'est mis d'accord, ${cible.user.username} ne pourras plus faire les commandes \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour __les deux__ prochaines heure __**plus le cooldown de chaque commande** qui recommancera a la **fin de ce delai**.__`) - .setTimestamp() - .setImage('') - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], components: [], allowedMentions: { repliedUser: false } - }); - db.run(`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, message.guild.id, cible.id], (err) => { - if (err) { - console.log(`${err}`) - } - }) - } - /* CAR TOUJOURS EN TEST ET FLEMME DE ME DROP DES REP ET COINS A CHAQUE FOIS + }, + ); + } + /* CAR TOUJOURS EN TEST ET FLEMME DE ME DROP DES REP ET COINS A CHAQUE FOIS db.run(`UPDATE users SET reputation = reputation - 1 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id]) db.run(`UPDATE users SET pocket = pocket - 500 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id]) */ - }); - } -}; \ No newline at end of file + }); + }, +}; diff --git a/commands/jobs/kill.js b/commands/jobs/kill.js index b97ec09..41111e3 100644 --- a/commands/jobs/kill.js +++ b/commands/jobs/kill.js @@ -1,105 +1,165 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { aliases: [], - description: 'Vole des reputations à un membre. (coût 3rep)', - emote: '🦹', - utilisation: '<@membre>', + description: "Vole des reputations à un membre. (coût 3rep)", + emote: "🦹", + utilisation: "<@membre>", permission: 0, async execute(message, args, client) { const member = message.mentions.users.first(); if (!member) { const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous devez mentionner un membre.') + .setTitle("Erreur") + .setDescription("❌ Vous devez mentionner un membre.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (user.lastKill + 7200000 > Date.now()) { const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription(`❌ Vous devez encore attendre ${Math.floor((user.lastKill + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`) + .setTitle("Erreur") + .setDescription( + `❌ Vous devez encore attendre ${Math.floor((user.lastKill + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } const memberInfo = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, member.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); const killer = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - const memberRep = memberInfo.reputation; - + if (killer < 3) { const embed = new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ Vous devez avoir `3`reputation.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setTitle("Erreur") + .setDescription("❌ Vous devez avoir `3`reputation.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else if (memberRep <= 0) { const embed = new EmbedBuilder() - .setTitle('Erreur') + .setTitle("Erreur") .setDescription(`❌ <@${member.id}> n'a pas de reputation.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } if (Math.floor(Math.random() * 5) <= 1) { - - const amount = Math.floor(Math.random() * memberRep) + 1; - db.run(`UPDATE users SET reputation = reputation - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]); - db.run(`UPDATE users SET reputation = reputation + ?, lastKill = ? WHERE guildId = ? AND userId = ?`, [amount - 3, Date.now(), message.guild.id, message.author.id]); + const amount = Math.floor(Math.random() * memberRep) + 1; + db.run( + `UPDATE users SET reputation = reputation - ? WHERE guildId = ? AND userId = ?`, + [amount, message.guild.id, member.id], + ); + db.run( + `UPDATE users SET reputation = reputation + ?, lastKill = ? WHERE guildId = ? AND userId = ?`, + [amount - 3, Date.now(), message.guild.id, message.author.id], + ); - const embed = new EmbedBuilder() - .setTitle('Vol') - .setDescription(`💰 Vous avez volé **${amount}rep** à <@${member.id}>.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + const embed = new EmbedBuilder() + .setTitle("Vol") + .setDescription(`💰 Vous avez volé **${amount}rep** à <@${member.id}>.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { const embed = new EmbedBuilder() - .setTitle('Erreur lors du kill !') - .setDescription('Vous n\'avez pas reussi à voler de reputation à <@' + member.id + '>, qui à donc, toujours, `' + memberRep + '` reputation.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setImage() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setTitle("Erreur lors du kill !") + .setDescription( + "Vous n'avez pas reussi à voler de reputation à <@" + + member.id + + ">, qui à donc, toujours, `" + + memberRep + + "` reputation.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });} + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } }, -}; \ No newline at end of file +}; diff --git a/commands/teams admin/tcreate.js b/commands/teams admin/tcreate.js index 0c5206a..63efee1 100644 --- a/commands/teams admin/tcreate.js +++ b/commands/teams admin/tcreate.js @@ -1,141 +1,200 @@ -const { EmbedBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); +const { EmbedBuilder } = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); -let teamName -let teamDescription +let teamName; +let teamDescription; module.exports = { - aliases: ['teamcreate'], - description: 'Crée une team.', - emote: '✒️', - utilisation: '', + aliases: ["teamcreate"], + description: "Crée une team.", + emote: "✒️", + utilisation: "", permission: 0, async execute(message, args, client) { await new Promise((resolve, reject) => { - db.get(`SELECT teamId, pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - if (row.teamId !== null ) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛡️ Création de team') - .setDescription(`Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } else if (row.pocket < 3000) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛡️ Création de team') - .setDescription(`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); + db.get( + `SELECT teamId, pocket FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); } else { - db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]); - resolve(); + if (row.teamId !== null) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛡️ Création de team") + .setDescription( + `Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else if (row.pocket < 3000) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛡️ Création de team") + .setDescription( + `Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else { + db.run( + `UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + ); + resolve(); + } } - } - }); + }, + ); }); const embed = new EmbedBuilder() - .setTitle('🛡️ Création de team') + .setTitle("🛡️ Création de team") .setDescription(`Ecrivez le nom de votre team dans le chat.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - const messageTeam = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + const messageTeam = await message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); - const filter = m => m.author.id === message.author.id; - const collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 }); - collector.on('collect', async m => { + const filter = (m) => m.author.id === message.author.id; + const collector = message.channel.createMessageCollector({ + filter, + time: 60000, + max: 1, + }); + collector.on("collect", async (m) => { if (m.content.length > 25) { - m.reply('Le nom de la team ne doit pas dépasser 25 caractères.'); + m.reply("Le nom de la team ne doit pas dépasser 25 caractères."); return collector.stop(); } else if (m.content.length < 3) { - m.reply('Le nom de la team doit contenir au moins 3 caractères.'); + m.reply("Le nom de la team doit contenir au moins 3 caractères."); return collector.stop(); } else { teamName = m.content; const embed = new EmbedBuilder() - .setTitle('🛡️ Création de team') + .setTitle("🛡️ Création de team") .setDescription(`Ecrivez la description de votre team dans le chat.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); messageTeam.edit({ embeds: [embed] }); m.delete(); - const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 }); - collectorD.on('collect', async m => { + const collectorD = message.channel.createMessageCollector({ + filter, + time: 60000, + max: 1, + }); + collectorD.on("collect", async (m) => { if (m.content.length > 250) { - m.reply('La description de la team ne doit pas dépasser 250 caractères.'); + m.reply( + "La description de la team ne doit pas dépasser 250 caractères.", + ); return collectorD.stop(); } else if (m.content.length < 5) { - m.reply('La description de la team doit contenir au moins 5 caractères.'); + m.reply( + "La description de la team doit contenir au moins 5 caractères.", + ); return collectorD.stop(); } else { teamDescription = m.content; - - let idBase = teamName.toLowerCase().replace(/ /g, ''); - idBase = idBase.replace('0', ''); - idBase = idBase.replace('1', ''); - idBase = idBase.replace('2', ''); - idBase = idBase.replace('3', ''); - idBase = idBase.replace('4', ''); - idBase = idBase.replace('5', ''); - idBase = idBase.replace('6', ''); - idBase = idBase.replace('7', ''); - idBase = idBase.replace('8', ''); - idBase = idBase.replace('9', ''); + + let idBase = teamName.toLowerCase().replace(/ /g, ""); + idBase = idBase.replace("0", ""); + idBase = idBase.replace("1", ""); + idBase = idBase.replace("2", ""); + idBase = idBase.replace("3", ""); + idBase = idBase.replace("4", ""); + idBase = idBase.replace("5", ""); + idBase = idBase.replace("6", ""); + idBase = idBase.replace("7", ""); + idBase = idBase.replace("8", ""); + idBase = idBase.replace("9", ""); let id = idBase; let increment = 0; let exists = true; do { await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE id = ? AND guildId = ?`, [id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - exists = !!row; - if (exists) { - increment += 1; - id = idBase + increment; + db.get( + `SELECT * FROM teams WHERE id = ? AND guildId = ?`, + [id, message.guild.id], + (err, row) => { + if (err) { + reject(err); } else { - db.run(`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`, [message.guild.id, id, teamName, teamDescription]); - db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [id, 'owner', message.guild.id, message.author.id]); + exists = !!row; + if (exists) { + increment += 1; + id = idBase + increment; + } else { + db.run( + `INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`, + [message.guild.id, id, teamName, teamDescription], + ); + db.run( + `UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, + [id, "owner", message.guild.id, message.author.id], + ); + } + resolve(); } - resolve(); - } - }); + }, + ); }); } while (exists); const embed = new EmbedBuilder() - .setTitle('🛡️ Création de team') - .setDescription(`Votre team a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${teamName}\n**Description :** ${teamDescription}\n\nVous pouvez maintenant inviter des membres dans votre team avec la commande \`&teaminvite\`.\n\nPour quitter la team, utilisez la commande \`&teamleave\` (vous deverez d'abord donner la team a quelqu'un d'autre).`) + .setTitle("🛡️ Création de team") + .setDescription( + `Votre team a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${teamName}\n**Description :** ${teamDescription}\n\nVous pouvez maintenant inviter des membres dans votre team avec la commande \`&teaminvite\`.\n\nPour quitter la team, utilisez la commande \`&teamleave\` (vous deverez d'abord donner la team a quelqu'un d'autre).`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + messageTeam.edit({ embeds: [embed] }); m.delete(); } }); } }); - } -}; \ No newline at end of file + }, +}; diff --git a/commands/teams admin/tdelete.js b/commands/teams admin/tdelete.js index 64bb54a..43c74dc 100644 --- a/commands/teams admin/tdelete.js +++ b/commands/teams admin/tdelete.js @@ -1,105 +1,177 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, + EmbedBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['teamdelete'], - description: 'Supprime votre équipe.', - emote: '🗑️', - util: '', + aliases: ["teamdelete"], + description: "Supprime votre équipe.", + emote: "🗑️", + util: "", permission: 0, async execute(message, args, client) { const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, + [message.guild.id, message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (!team) { const embed = new EmbedBuilder() - .setTitle('🛡️ Suppression de l\'équipe') - .setDescription('Vous n\'êtes actuellement pas dans une équipe.') + .setTitle("🛡️ Suppression de l'équipe") + .setDescription("Vous n'êtes actuellement pas dans une équipe.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { const teamRole = await new Promise((resolve, reject) => { - db.get(`SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row.teamRole); - }); + db.get( + `SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row.teamRole); + }, + ); }); - if (teamRole !== 'owner') { + if (teamRole !== "owner") { const embed = new EmbedBuilder() - .setTitle('Suppression Impossible') - .setDescription('❌ Vous n\'avez pas la permission de supprimer cette équipe.') + .setTitle("Suppression Impossible") + .setDescription( + "❌ Vous n'avez pas la permission de supprimer cette équipe.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - const row = new ActionRowBuilder() - .addComponents( - new ButtonBuilder() - .setCustomId('confirm_delete') - .setLabel('Confirmer') - .setStyle(ButtonStyle.Danger), - new ButtonBuilder() - .setCustomId('cancel_delete') - .setLabel('Annuler') - .setStyle(ButtonStyle.Secondary) - ); + const row = new ActionRowBuilder().addComponents( + new ButtonBuilder() + .setCustomId("confirm_delete") + .setLabel("Confirmer") + .setStyle(ButtonStyle.Danger), + new ButtonBuilder() + .setCustomId("cancel_delete") + .setLabel("Annuler") + .setStyle(ButtonStyle.Secondary), + ); const embed = new EmbedBuilder() - .setTitle('🛡️ Suppression de l\'équipe') - .setDescription(`Êtes-vous sûr de vouloir supprimer l'équipe ${team.name}? Cette action est irréversible.`) + .setTitle("🛡️ Suppression de l'équipe") + .setDescription( + `Êtes-vous sûr de vouloir supprimer l'équipe ${team.name}? Cette action est irréversible.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }).then(sentMessage => { - const filter = i => i.customId === 'confirm_delete' || i.customId === 'cancel_delete' && i.user.id === message.author.id; + message + .reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }) + .then((sentMessage) => { + const filter = (i) => + i.customId === "confirm_delete" || + (i.customId === "cancel_delete" && i.user.id === message.author.id); - const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 }); + const collector = sentMessage.createMessageComponentCollector({ + filter, + time: 15000, + }); - collector.on('collect', async i => { - if (i.customId === 'confirm_delete') { - db.run(`DELETE FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, team.id], async (err) => { - if (err) { - return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'équipe.', components: [] }); - } + collector.on("collect", async (i) => { + if (i.customId === "confirm_delete") { + db.run( + `DELETE FROM teams WHERE guildId = ? AND id = ?`, + [message.guild.id, team.id], + async (err) => { + if (err) { + return i.update({ + content: + "Une erreur est survenue lors de la suppression de l'équipe.", + components: [], + }); + } - db.run(`UPDATE users SET teamRole = NULL, teamId = NULL WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], async (err) => { - if (err) { - return i.update({ content: 'Une erreur est survenue lors de la mise à jour des membres de l\'équipe.', components: [] }); - } + db.run( + `UPDATE users SET teamRole = NULL, teamId = NULL WHERE guildId = ? AND teamId = ?`, + [message.guild.id, team.id], + async (err) => { + if (err) { + return i.update({ + content: + "Une erreur est survenue lors de la mise à jour des membres de l'équipe.", + components: [], + }); + } - const embed = new EmbedBuilder() - .setTitle('🛡️ Suppression de l\'équipe') - .setDescription(`L'équipe ${team.name} a été supprimée avec succès.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + const embed = new EmbedBuilder() + .setTitle("🛡️ Suppression de l'équipe") + .setDescription( + `L'équipe ${team.name} a été supprimée avec succès.`, + ) + .setColor( + await embedColor(message.author.id, message.guild.id), + ) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return i.update({ embeds: [embed], components: [] }); + return i.update({ embeds: [embed], components: [] }); + }, + ); + }, + ); + } else { + await i.update({ + content: "Suppression de l'équipe annulée.", + components: [], }); - }); - } else { - await i.update({ content: 'Suppression de l\'équipe annulée.', components: [] }); - } - }); + } + }); - collector.on('end', collected => { - if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] }); + collector.on("end", (collected) => { + if (collected.size === 0) + sentMessage.edit({ + content: "Temps écoulé. Suppression de l'équipe annulée.", + components: [], + }); + }); }); - }); } }, -}; \ No newline at end of file +}; diff --git a/commands/teams admin/tdemote.js b/commands/teams admin/tdemote.js index 9843c48..cf62097 100644 --- a/commands/teams admin/tdemote.js +++ b/commands/teams admin/tdemote.js @@ -1,113 +1,157 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['teamdemote', 'tderank'], - description: 'Rétrograder un officier à membre dans votre équipe.', - emote: '🛡️', - utilisation: '<@user>', + aliases: ["teamdemote", "tderank"], + description: "Rétrograder un officier à membre dans votre équipe.", + emote: "🛡️", + utilisation: "<@user>", permission: 0, async execute(message, args, client) { if (!args[0]) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Rétrograder un officier') - .setDescription('Veuillez mentionner un utilisateur à rétrograder.') + .setTitle("🛡️ Rétrograder un officier") + .setDescription("Veuillez mentionner un utilisateur à rétrograder.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const userToDemote = message.mentions.users.first(); if (!userToDemote) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Rétrograder un officier') - .setDescription('Utilisateur non trouvé.') + .setTitle("🛡️ Rétrograder un officier") + .setDescription("Utilisateur non trouvé.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - if (!user || user.teamRole !== 'owner') { - return message.reply({ + if (!user || user.teamRole !== "owner") { + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Rétrograder un officier') - .setDescription('Vous n\'êtes pas administrateur de cette équipe.') + .setTitle("🛡️ Rétrograder un officier") + .setDescription("Vous n'êtes pas administrateur de cette équipe.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const userToDemoteInfo = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToDemote.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, userToDemote.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (!userToDemoteInfo || userToDemoteInfo.teamId !== user.teamId) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Rétrograder un officier') - .setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.') + .setTitle("🛡️ Rétrograder un officier") + .setDescription( + "L'utilisateur mentionné n'est pas dans votre équipe.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } - if (userToDemoteInfo.teamRole !== 'officer') { - return message.reply({ + if (userToDemoteInfo.teamRole !== "officer") { + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Rétrograder un officier') - .setDescription('L\'utilisateur mentionné n\'est pas un officier.') + .setTitle("🛡️ Rétrograder un officier") + .setDescription("L'utilisateur mentionné n'est pas un officier.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } - db.run(`UPDATE users SET teamRole = 'membre' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToDemote.id], async (err) => { - if (err) { - return message.reply('Une erreur est survenue lors de la rétrogradation de l\'utilisateur.'); - } + db.run( + `UPDATE users SET teamRole = 'membre' WHERE guildId = ? AND userId = ?`, + [message.guild.id, userToDemote.id], + async (err) => { + if (err) { + return message.reply( + "Une erreur est survenue lors de la rétrogradation de l'utilisateur.", + ); + } - const embed = new EmbedBuilder() - .setTitle('🛡️ Rétrogradation dans l\'équipe') - .setDescription(`${userToDemote.tag} a été rétrogradé au rang de membre.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + const embed = new EmbedBuilder() + .setTitle("🛡️ Rétrogradation dans l'équipe") + .setDescription( + `${userToDemote.tag} a été rétrogradé au rang de membre.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }, + ); }, -}; \ No newline at end of file +}; diff --git a/commands/teams admin/tedit.js b/commands/teams admin/tedit.js index bb2d20c..41bed49 100644 --- a/commands/teams admin/tedit.js +++ b/commands/teams admin/tedit.js @@ -1,66 +1,92 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['tedit'], - description: 'Modifie les informations de votre team.', - emote: '🖋️', - utilisation: ' ', + aliases: ["tedit"], + description: "Modifie les informations de votre team.", + emote: "🖋️", + utilisation: " ", permission: 0, async execute(message, args, client) { if (args.length > 0) { let subCommand = args[0].toLowerCase(); - subCommand = subCommand.replice('n', 'name') - subCommand = subCommand.replice('nom', 'name') - subCommand = subCommand.replice('noms', 'name') - subCommand = subCommand.replice('banniere', 'banner') - subCommand = subCommand.replice('bannière', 'banner') - subCommand = subCommand.replice('b', 'banner') - subCommand = subCommand.replice('i', 'icon') - subCommand = subCommand.replice('p', 'icon') - subCommand = subCommand.replice('photo', 'icon') - subCommand = subCommand.replice('icone', 'icon') - subCommand = subCommand.replice('d', 'description') + subCommand = subCommand.replice("n", "name"); + subCommand = subCommand.replice("nom", "name"); + subCommand = subCommand.replice("noms", "name"); + subCommand = subCommand.replice("banniere", "banner"); + subCommand = subCommand.replice("bannière", "banner"); + subCommand = subCommand.replice("b", "banner"); + subCommand = subCommand.replice("i", "icon"); + subCommand = subCommand.replice("p", "icon"); + subCommand = subCommand.replice("photo", "icon"); + subCommand = subCommand.replice("icone", "icon"); + subCommand = subCommand.replice("d", "description"); - const newValue = args.slice(1).join(' '); + const newValue = args.slice(1).join(" "); - if (['name', 'banner', 'icon', 'description'].includes(subCommand)) { + if (["name", "banner", "icon", "description"].includes(subCommand)) { await new Promise((resolve, reject) => { - db.run(`UPDATE teams SET ${subCommand} = ? WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [newValue, message.guild.id, message.guild.id, message.author.id], (err) => { - if (err) reject(err); - resolve(); - }); + db.run( + `UPDATE teams SET ${subCommand} = ? WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, + [newValue, message.guild.id, message.guild.id, message.author.id], + (err) => { + if (err) reject(err); + resolve(); + }, + ); }); const embed = new EmbedBuilder() - .setTitle('🖋️ Modification de team') + .setTitle("🖋️ Modification de team") .setDescription(`La ${subCommand} de votre team a été mise à jour.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { const embed = new EmbedBuilder() - .setTitle('🖋️ Modification de team') - .setDescription('❌ Vous devez spécifier ce que vous voulez modifier (name, banner, icon ou description).') + .setTitle("🖋️ Modification de team") + .setDescription( + "❌ Vous devez spécifier ce que vous voulez modifier (name, banner, icon ou description).", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } } else { const embed = new EmbedBuilder() - .setTitle('🖋️ Modification de team') - .setDescription('Veuillez spécifier ce que vous voulez modifier et la nouvelle valeur.') + .setTitle("🖋️ Modification de team") + .setDescription( + "Veuillez spécifier ce que vous voulez modifier et la nouvelle valeur.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } }, -}; \ No newline at end of file +}; diff --git a/commands/teams admin/tkick.js b/commands/teams admin/tkick.js index 14691ae..6309b9b 100644 --- a/commands/teams admin/tkick.js +++ b/commands/teams admin/tkick.js @@ -1,144 +1,193 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['teamkick'], - description: 'Expulse un utilisateur de votre team.', - emote: '🛠️', - utilisation: '<@user>', + aliases: ["teamkick"], + description: "Expulse un utilisateur de votre team.", + emote: "🛠️", + utilisation: "<@user>", permission: 0, async execute(message, args, client) { if (!args[0]) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛠️ Expulsion de l\'équipe') - .setDescription('Veuillez mentionner un utilisateur à expulser.') + .setTitle("🛠️ Expulsion de l'équipe") + .setDescription("Veuillez mentionner un utilisateur à expulser.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const userToKick = message.mentions.users.first(); if (!userToKick) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛠️ Expulsion de l\'équipe') - .setDescription('Utilisateur non trouvé.') + .setTitle("🛠️ Expulsion de l'équipe") + .setDescription("Utilisateur non trouvé.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } else if (userToKick.id === message.author.id) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛠️ Expulsion de l\'équipe') - .setDescription('Vous ne pouvez pas vous expulser de votre propre équipe. Si vous souhaitez quitter votre équipe, utilisez la commande `&tleave`.') + .setTitle("🛠️ Expulsion de l'équipe") + .setDescription( + "Vous ne pouvez pas vous expulser de votre propre équipe. Si vous souhaitez quitter votre équipe, utilisez la commande `&tleave`.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, + [message.guild.id, message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (!team) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛠️ Expulsion de l\'équipe') - .setDescription('Vous n\'êtes pas dans une équipe.') + .setTitle("🛠️ Expulsion de l'équipe") + .setDescription("Vous n'êtes pas dans une équipe.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); const userToKickInfo = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, userToKick.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - + if (!userToKickInfo || userToKickInfo.teamId !== user.teamId) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛠️ Expulsion de l\'équipe') - .setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.') + .setTitle("🛠️ Expulsion de l'équipe") + .setDescription( + "L'utilisateur mentionné n'est pas dans votre équipe.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } - }); - } - - if (!user || user.teamRole !== 'owner') { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('🛠️ Expulsion de l\'équipe') - .setDescription('Vous n\'êtes pas administrateur de cette équipe.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } - db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], async (err) => { - if (err) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('🛠️ Expulsion de l\'équipe') - .setDescription('Une erreur est survenue lors de l\'expulsion de l\'utilisateur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - allowedMentions: { repliedUser: false } + if (!user || user.teamRole !== "owner") { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🛠️ Expulsion de l'équipe") + .setDescription("Vous n'êtes pas administrateur de cette équipe.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + db.run( + `UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`, + [message.guild.id, userToKick.id], + async (err) => { + if (err) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🛠️ Expulsion de l'équipe") + .setDescription( + "Une erreur est survenue lors de l'expulsion de l'utilisateur.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛠️ Expulsion de l'équipe") + .setDescription(`${userToKick.tag} a été expulsé de l'équipe.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); }); - } - - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛠️ Expulsion de l\'équipe') - .setDescription(`${userToKick.tag} a été expulsé de l'équipe.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - }); + }, + ); }, -}; \ No newline at end of file +}; diff --git a/commands/teams admin/towner.js b/commands/teams admin/towner.js index c334e14..00585d8 100644 --- a/commands/teams admin/towner.js +++ b/commands/teams admin/towner.js @@ -1,147 +1,213 @@ -const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, + EmbedBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['teamowner', 'towner', 'teamadmin'], - description: 'Transfère votre team à un utilisteur de votre équipe.', - emote: '👑', - utilisation: '<@user>', + aliases: ["teamowner", "towner", "teamadmin"], + description: "Transfère votre team à un utilisteur de votre équipe.", + emote: "👑", + utilisation: "<@user>", permission: 0, async execute(message, args, client) { if (!args[0]) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('👑 Transfere de la propriété de la team') - .setDescription('Veuillez mentionner un utilisateur à promouvoir.') + .setTitle("👑 Transfere de la propriété de la team") + .setDescription("Veuillez mentionner un utilisateur à promouvoir.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const userToPromote = message.mentions.users.first(); if (!userToPromote) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('👑 Transfere de la propriété de la team') - .setDescription('Utilisateur non trouvé.') + .setTitle("👑 Transfere de la propriété de la team") + .setDescription("Utilisateur non trouvé.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - if (!user || user.teamRole !== 'owner') { - return message.reply({ + if (!user || user.teamRole !== "owner") { + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('👑 Transfere de la propriété de la team') - .setDescription('Vous n\'êtes pas administrateur de cette équipe.') + .setTitle("👑 Transfere de la propriété de la team") + .setDescription("Vous n'êtes pas administrateur de cette équipe.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const userToPromoteInfo = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, userToPromote.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('👑 Transfere de la propriété de la team') - .setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.') + .setTitle("👑 Transfere de la propriété de la team") + .setDescription( + "L'utilisateur mentionné n'est pas dans votre équipe.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const bouton = new ButtonBuilder() - .setCustomId('promote_to_admin') - .setLabel('Confirmer') + .setCustomId("promote_to_admin") + .setLabel("Confirmer") .setStyle(ButtonStyle.Success); - const row = new ActionRowBuilder() - .addComponents(bouton); + const row = new ActionRowBuilder().addComponents(bouton); const embed = new EmbedBuilder() - .setTitle('👑 Transfere de la propriété de la team') - .setDescription(`Êtes-vous sûr de vouloir promouvoir ${userToPromote.tag} au rang d'administrateur ?`) + .setTitle("👑 Transfere de la propriété de la team") + .setDescription( + `Êtes-vous sûr de vouloir promouvoir ${userToPromote.tag} au rang d'administrateur ?`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - const sendMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - - const filter = i => i.customId === 'promote_to_admin' && i.user.id === message.author.id; - const collector = sendMessage.createMessageComponentCollector({ filter, time: 120000 }); - - collector.on('collect', async (interaction) => { - db.run(`UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => { - if (err) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('👑 Transfere de la propriété de la team') - .setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - allowedMentions: { repliedUser: false } - }); - } - - db.run(`UPDATE users SET teamRole = 'officier' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], async (err) => { + const sendMessage = await message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + const filter = (i) => + i.customId === "promote_to_admin" && i.user.id === message.author.id; + const collector = sendMessage.createMessageComponentCollector({ + filter, + time: 120000, + }); + + collector.on("collect", async (interaction) => { + db.run( + `UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`, + [message.guild.id, userToPromote.id], + async (err) => { if (err) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('👑 Transfere de la propriété de la team') - .setDescription('Une erreur est survenue lors de la mise à jour de votre rôle.') - .setColor(await embedColor(message.author.id, message.guild.id)) + .setTitle("👑 Transfere de la propriété de la team") + .setDescription( + "Une erreur est survenue lors de la promotion de l'utilisateur.", + ) + .setColor( + await embedColor(message.author.id, message.guild.id), + ) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } - - const embed = new EmbedBuilder() - .setTitle('👑 Transfere de la propriété de la team') - .setDescription(`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - sendMessage.edit({ embeds: [embed], components: [] }); - }); - }); + + db.run( + `UPDATE users SET teamRole = 'officier' WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + async (err) => { + if (err) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("👑 Transfere de la propriété de la team") + .setDescription( + "Une erreur est survenue lors de la mise à jour de votre rôle.", + ) + .setColor( + await embedColor(message.author.id, message.guild.id), + ) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + const embed = new EmbedBuilder() + .setTitle("👑 Transfere de la propriété de la team") + .setDescription( + `${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + sendMessage.edit({ embeds: [embed], components: [] }); + }, + ); + }, + ); }); }, -}; \ No newline at end of file +}; diff --git a/commands/teams admin/tpromote.js b/commands/teams admin/tpromote.js index 26ee3f4..2eabedb 100644 --- a/commands/teams admin/tpromote.js +++ b/commands/teams admin/tpromote.js @@ -1,123 +1,170 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['teampromote', 'trankup'], - description: 'Promouvoir un utilisateur à officier dans votre équipe.', - emote: '🛡️', - utilisation: '<@user>', + aliases: ["teampromote", "trankup"], + description: "Promouvoir un utilisateur à officier dans votre équipe.", + emote: "🛡️", + utilisation: "<@user>", permission: 0, async execute(message, args, client) { if (!args[0]) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Promotion dans l\'équipe') - .setDescription('Veuillez mentionner un utilisateur à promouvoir.') + .setTitle("🛡️ Promotion dans l'équipe") + .setDescription("Veuillez mentionner un utilisateur à promouvoir.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const userToPromote = message.mentions.users.first(); if (!userToPromote) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Promotion dans l\'équipe') - .setDescription('Utilisateur non trouvé.') + .setTitle("🛡️ Promotion dans l'équipe") + .setDescription("Utilisateur non trouvé.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - if (!user || user.teamRole !== 'owner') { - return message.reply({ + if (!user || user.teamRole !== "owner") { + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Promotion dans l\'équipe') - .setDescription('Vous n\'êtes pas administrateur de cette équipe.') + .setTitle("🛡️ Promotion dans l'équipe") + .setDescription("Vous n'êtes pas administrateur de cette équipe.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } const userToPromoteInfo = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, userToPromote.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) { - return message.reply({ + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Promotion dans l\'équipe') - .setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.') + .setTitle("🛡️ Promotion dans l'équipe") + .setDescription( + "L'utilisateur mentionné n'est pas dans votre équipe.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } - if (userToPromoteInfo.teamRole === 'officer') { - return message.reply({ + if (userToPromoteInfo.teamRole === "officer") { + return message.reply({ embeds: [ new EmbedBuilder() - .setTitle('🛡️ Promotion dans l\'équipe') - .setDescription('L\'utilisateur mentionné est déjà un officier.') + .setTitle("🛡️ Promotion dans l'équipe") + .setDescription("L'utilisateur mentionné est déjà un officier.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), ], - allowedMentions: { repliedUser: false } + allowedMentions: { repliedUser: false }, }); } - db.run(`UPDATE users SET teamRole = 'officer' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => { - if (err) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('🛡️ Promotion dans l\'équipe') - .setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - allowedMentions: { repliedUser: false } + db.run( + `UPDATE users SET teamRole = 'officer' WHERE guildId = ? AND userId = ?`, + [message.guild.id, userToPromote.id], + async (err) => { + if (err) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🛡️ Promotion dans l'équipe") + .setDescription( + "Une erreur est survenue lors de la promotion de l'utilisateur.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + const embed = new EmbedBuilder() + .setTitle("🛡️ Promotion dans l'équipe") + .setDescription( + `${userToPromote.tag} a été promu au rang d'officier.`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, }); - } - - const embed = new EmbedBuilder() - .setTitle('🛡️ Promotion dans l\'équipe') - .setDescription(`${userToPromote.tag} a été promu au rang d'officier.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - }); + }, + ); }, -}; \ No newline at end of file +}; diff --git a/commands/teams admin/twithdraw.js b/commands/teams admin/twithdraw.js index 0afb924..9dfca94 100644 --- a/commands/teams admin/twithdraw.js +++ b/commands/teams admin/twithdraw.js @@ -1,113 +1,180 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['tretirer', 'teamwithdraw', 'teamretirer', 'teamwh', 'twh'], - description: 'Retire de l\'argent de la banque de votre team.', - emote: '💰', - utilisation: '', + aliases: ["tretirer", "teamwithdraw", "teamretirer", "teamwh", "twh"], + description: "Retire de l'argent de la banque de votre team.", + emote: "💰", + utilisation: "", permission: 0, async execute(message, args, client) { if (args.length !== 1) { const embed = new EmbedBuilder() - .setTitle('Retrait Impossible') - .setDescription('❌ Vous devez spécifier un montant à retirer.') + .setTitle("Retrait Impossible") + .setDescription("❌ Vous devez spécifier un montant à retirer.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (args[0] !== 'all' && isNaN(args[0])) { + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] !== "all" && isNaN(args[0])) { const embed = new EmbedBuilder() - .setTitle('Retrait Impossible') - .setDescription('❌ Vous devez spécifier un montant valide à retirer.') + .setTitle("Retrait Impossible") + .setDescription("❌ Vous devez spécifier un montant valide à retirer.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else if (args[0] < 1) { const embed = new EmbedBuilder() - .setTitle('Retrait Impossible') - .setDescription('❌ Vous devez retirer au moins 1 coin.') + .setTitle("Retrait Impossible") + .setDescription("❌ Vous devez retirer au moins 1 coin.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } const teamRole = await new Promise((resolve, reject) => { - db.get(`SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row.teamRole); - }); + db.get( + `SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row.teamRole); + }, + ); }); - - if (!teamRole || (teamRole !== 'officier' && teamRole !== 'owner')) { + + if (!teamRole || (teamRole !== "officier" && teamRole !== "owner")) { const embed = new EmbedBuilder() - .setTitle('Retrait Impossible') - .setDescription('❌ Vous n\'avez pas la permission de retirer de l\'argent de la banque de l\'équipe.') + .setTitle("Retrait Impossible") + .setDescription( + "❌ Vous n'avez pas la permission de retirer de l'argent de la banque de l'équipe.", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } const team = await new Promise((resolve, reject) => { - db.get(`SELECT teamId FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row.teamId); - }); + db.get( + `SELECT teamId FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row.teamId); + }, + ); }); if (!team) { const embed = new EmbedBuilder() - .setTitle('Retrait Impossible') - .setDescription('❌ Vous n\'êtes pas dans une team.') + .setTitle("Retrait Impossible") + .setDescription("❌ Vous n'êtes pas dans une team.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { const bank = await new Promise((resolve, reject) => { - db.get(`SELECT bank FROM teams WHERE id = ? AND guildId = ?`, [team, message.guild.id], (err, row) => { - if (err) reject(err); - resolve(row.bank); - }); + db.get( + `SELECT bank FROM teams WHERE id = ? AND guildId = ?`, + [team, message.guild.id], + (err, row) => { + if (err) reject(err); + resolve(row.bank); + }, + ); }); let amount; - if (args[0] === 'all') { + if (args[0] === "all") { amount = bank; } else if (args[0] > bank) { const embed = new EmbedBuilder() - .setTitle('Retrait Impossible') - .setDescription(`❌ Votre team n'a pas assez d'argent dans la banque pour retirer cette somme.\n\n💰 Votre team a actuellement **${bank} coins** dans la banque.`) + .setTitle("Retrait Impossible") + .setDescription( + `❌ Votre team n'a pas assez d'argent dans la banque pour retirer cette somme.\n\n💰 Votre team a actuellement **${bank} coins** dans la banque.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } else { amount = args[0]; } - db.run(`UPDATE users SET pocket = pocket + ?, teamDroper = teamDroper - ? WHERE guildId = ? AND userId = ?`, [amount, amount, message.guild.id, message.author.id]); - db.run(`UPDATE teams SET bank = bank - ? WHERE id = ? AND guildId = ?`, [amount, team, message.guild.id]); + db.run( + `UPDATE users SET pocket = pocket + ?, teamDroper = teamDroper - ? WHERE guildId = ? AND userId = ?`, + [amount, amount, message.guild.id, message.author.id], + ); + db.run(`UPDATE teams SET bank = bank - ? WHERE id = ? AND guildId = ?`, [ + amount, + team, + message.guild.id, + ]); const embed = new EmbedBuilder() - .setTitle('Retrait Effectué') - .setDescription(`💰 Vous avez retiré **${amount}** coins de la banque de votre team.`) + .setTitle("Retrait Effectué") + .setDescription( + `💰 Vous avez retiré **${amount}** coins de la banque de votre team.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } }, -}; \ No newline at end of file +}; diff --git a/commands/teams/tcadenas.js b/commands/teams/tcadenas.js index ada8624..26de032 100644 --- a/commands/teams/tcadenas.js +++ b/commands/teams/tcadenas.js @@ -1,78 +1,129 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['tcadena'], - description: 'Ajoute un cadenas à une team. (max : 5, coût : 3reputation)', - emote: '🔒', - utilisation: '', - permission: 0, + aliases: ["tcadena"], + description: "Ajoute un cadenas à une team. (max : 5, coût : 3reputation)", + emote: "🔒", + utilisation: "", + permission: 0, - async execute(message, args, client) { - - const teamID = args[0].toLowerCase(); - const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, teamID], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - if (!team) { - const embed = new EmbedBuilder() - .setTitle('Ajout Impossible') - .setDescription(`❌ Veuillez indiquer l'id une team.`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const teamRep = team.reputation - if (teamRep < 4) { - const embed = new EmbedBuilder() - .setTitle('Ajout de cadenas impossible') - .setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais la team n'a que \`${teamRep}\` reputation`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - db.run(`UPDATE teams SET reputation = reputation - 4 WHERE guildId =? AND Id =?`, [message.guild.id, teamID], (err) => { - if (err) { - console.log(`${err}`.red) - } + async execute(message, args, client) { + const teamID = args[0].toLowerCase(); + const team = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = ?`, + [message.guild.id, teamID], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + if (!team) { + const embed = new EmbedBuilder() + .setTitle("Ajout Impossible") + .setDescription(`❌ Veuillez indiquer l'id une team.`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), }); - if (team.padlock < 5) { - db.run(`UPDATE teams SET padlock = padlock + 1 WHERE guildId =? AND Id =?`, [message.guild.id, teamID], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } - const embed = new EmbedBuilder() - .setTitle('Ajout de cadenas réussi !') - .setDescription('Vous avez ajouter un cadenas à team `' + team.name + '`, cette team à maintement `' + team.padlock + 1 + '` cadenas !') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setImage() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + const teamRep = team.reputation; + if (teamRep < 4) { + const embed = new EmbedBuilder() + .setTitle("Ajout de cadenas impossible") + .setDescription( + `❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais la team n'a que \`${teamRep}\` reputation`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else { - const embed = new EmbedBuilder() - .setTitle('Ajout de cadenas impossible') - .setDescription('`' + team.name + '` à le maximum de cadenas (`' + team.padlock + 1 + '` cadenas !)') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setImage() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } - message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + db.run( + `UPDATE teams SET reputation = reputation - 4 WHERE guildId =? AND Id =?`, + [message.guild.id, teamID], + (err) => { + if (err) { + console.log(`${err}`.red); } - }, -}; \ No newline at end of file + }, + ); + + if (team.padlock < 5) { + db.run( + `UPDATE teams SET padlock = padlock + 1 WHERE guildId =? AND Id =?`, + [message.guild.id, teamID], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); + + const embed = new EmbedBuilder() + .setTitle("Ajout de cadenas réussi !") + .setDescription( + "Vous avez ajouter un cadenas à team `" + + team.name + + "`, cette team à maintement `" + + team.padlock + + 1 + + "` cadenas !", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else { + const embed = new EmbedBuilder() + .setTitle("Ajout de cadenas impossible") + .setDescription( + "`" + + team.name + + "` à le maximum de cadenas (`" + + team.padlock + + 1 + + "` cadenas !)", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + }, +}; diff --git a/commands/teams/tdeposit.js b/commands/teams/tdeposit.js index 009d8fe..0e35971 100644 --- a/commands/teams/tdeposit.js +++ b/commands/teams/tdeposit.js @@ -1,94 +1,153 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['tdep', 'tdepot', 'teamdep', 'teamdepot'], - description: 'Dépose de l\'argent dans la banque de votre team.', - emote: '💰', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - if (args.length == 0) { - const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous devez spécifier un montant à déposer.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (args[0] !== 'all' && isNaN(args[0])) { - const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous devez spécifier un montant valide à déposer.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else if (args[0] < 1) { - const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous devez déposer au moins 1 coin.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - - const pocket = await new Promise((resolve, reject) => { - db.get(`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row.pocket); - }); - }); - - let amout; - if (args[0] === 'all') { - amout = pocket; - } else if (args[0] > pocket) { - const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous n\'avez pas assez d\'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **' + pocket + 'coins** sur vous.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else { - amout = args[0]; - } - - const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - if (!team) { - const embed = new EmbedBuilder() - .setTitle('Dépôt Impossible') - .setDescription('❌ Vous n\'êtes pas dans une team.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else { - db.run(`UPDATE users SET pocket = pocket - ?, teamDroper = teamDroper + ? WHERE guildId = ? AND userId = ?`, [amout, amout, message.guild.id, message.author.id]); - db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, team.id]); - - const embed = new EmbedBuilder() - .setTitle('Dépôt Effectué') - .setDescription('💰 Vous avez déposé **' + amout + '** coins dans la banque de votre team.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } - }, -}; \ No newline at end of file +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["tdep", "tdepot", "teamdep", "teamdepot"], + description: "Dépose de l'argent dans la banque de votre team.", + emote: "💰", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + if (args.length == 0) { + const embed = new EmbedBuilder() + .setTitle("Dépôt Impossible") + .setDescription("❌ Vous devez spécifier un montant à déposer.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] !== "all" && isNaN(args[0])) { + const embed = new EmbedBuilder() + .setTitle("Dépôt Impossible") + .setDescription("❌ Vous devez spécifier un montant valide à déposer.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else if (args[0] < 1) { + const embed = new EmbedBuilder() + .setTitle("Dépôt Impossible") + .setDescription("❌ Vous devez déposer au moins 1 coin.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + + const pocket = await new Promise((resolve, reject) => { + db.get( + `SELECT pocket FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row.pocket); + }, + ); + }); + + let amout; + if (args[0] === "all") { + amout = pocket; + } else if (args[0] > pocket) { + const embed = new EmbedBuilder() + .setTitle("Dépôt Impossible") + .setDescription( + "❌ Vous n'avez pas assez d'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **" + + pocket + + "coins** sur vous.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else { + amout = args[0]; + } + + const team = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + if (!team) { + const embed = new EmbedBuilder() + .setTitle("Dépôt Impossible") + .setDescription("❌ Vous n'êtes pas dans une team.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else { + db.run( + `UPDATE users SET pocket = pocket - ?, teamDroper = teamDroper + ? WHERE guildId = ? AND userId = ?`, + [amout, amout, message.guild.id, message.author.id], + ); + db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND id = ?`, [ + amout, + message.guild.id, + team.id, + ]); + + const embed = new EmbedBuilder() + .setTitle("Dépôt Effectué") + .setDescription( + "💰 Vous avez déposé **" + + amout + + "** coins dans la banque de votre team.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } + }, +}; diff --git a/commands/teams/team.js b/commands/teams/team.js index 1a907bf..ebf78f8 100644 --- a/commands/teams/team.js +++ b/commands/teams/team.js @@ -1,122 +1,157 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['t', 'tinfo', 'teaminfo'], - description: 'Affiche les informations de votre team.', - emote: '🛡️', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - const member = message.mentions.members.first() || message.member; - const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, member.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - if (!team) { - const embed = new EmbedBuilder() - .setTitle('🛡️ Informations de team') - .setDescription('<@' + member.id + '> n\'est actuellement dans aucune une team.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); - } else { - - const alliance = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - let Aname - if (alliance) { - Aname = alliance.name - } - else { - Aname = 'aucune alliance' - } - - const memberlist = await new Promise((resolve, reject) => { - db.all(`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - let CadenaS = "🔓" - if (team.padlock == 5) { - CadenaS = "🔐🔐🔐🔐🔐" - } - if (team.padlock == 4) { - CadenaS = "🔐🔐🔐🔐" - } - if (team.padlock == 3) { - CadenaS = "🔐🔐🔐" - } - if (team.padlock == 2) { - CadenaS = "🔐🔐" - } - if (team.padlock == 1) { - CadenaS = "🔐" - } - - //////////////////////////////////////////////////// TEAM DROPER /////////////////////////////////////////////////////////////////// - data = await new Promise((resolve, reject) => { - db.all(`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`, [team.id], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); - }); - let leaderboard = data.map((row, i) => { - let position; - switch (i) { - case 0: - position = ':first_place:'; - break; - case 1: - position = ':second_place:'; - break; - case 2: - position = ':third_place:'; - break; - default: - position = `**${i + 1}.**`; - } - return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`; - }).join('\n'); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - const embed = new EmbedBuilder() - .setTitle('🛡️ Informations de `' + team.name + '`:') - .setDescription(`**Id:** \`${team.id}\`\n**Description:** \`${team.description}\`\n**Banque:** \`${team.bank}\`coins\n**Niveau:** \`${team.level}\`\n**Reputation:** \`${team.reputation}\`\n\n**Soldats:** \`${team.soldiers}\`\n**Soldats blessés:** \`${team.woundedSoldiers}\`\n**Niveau du camp:** \`${team.campLevel}\`\n**Tourelles:** \`${team.turrets}\`\n**Cadenas:** \`${CadenaS}\`\n\n\nAlliance : ${Aname}\n\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.teamRole}:** <@${member.userId}>`).join('\n')}\n`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - const embedTopDonnateur = new EmbedBuilder() - .setTitle('**Les 10 meilleurs donnateurs de la team sont :**') - .setDescription(`${leaderboard}`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - const urlRegex1 = /(https?:\/\/[^\s]+)/g; - if (team.icon && urlRegex1.test(team.icon)) { - embed.setThumbnail(team.icon); - } - - const urlRegex2 = /(https?:\/\/[^\s]+)/g; - if (team.banner && urlRegex2.test(team.banner)) { - embedTopDonnateur.setImage(team.banner); - } - - return message.reply({ embeds: [embed, embedTopDonnateur], allowedMentions: { repliedUser: false } }); - } - }, -}; \ No newline at end of file +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["t", "tinfo", "teaminfo"], + description: "Affiche les informations de votre team.", + emote: "🛡️", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + const member = message.mentions.members.first() || message.member; + const team = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, + [message.guild.id, message.guild.id, member.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + if (!team) { + const embed = new EmbedBuilder() + .setTitle("🛡️ Informations de team") + .setDescription( + "<@" + member.id + "> n'est actuellement dans aucune une team.", + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + } else { + const alliance = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, + [message.guild.id, message.guild.id, team.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + let Aname; + if (alliance) { + Aname = alliance.name; + } else { + Aname = "aucune alliance"; + } + + const memberlist = await new Promise((resolve, reject) => { + db.all( + `SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`, + [message.guild.id, team.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + let CadenaS = "🔓"; + if (team.padlock == 5) { + CadenaS = "🔐🔐🔐🔐🔐"; + } + if (team.padlock == 4) { + CadenaS = "🔐🔐🔐🔐"; + } + if (team.padlock == 3) { + CadenaS = "🔐🔐🔐"; + } + if (team.padlock == 2) { + CadenaS = "🔐🔐"; + } + if (team.padlock == 1) { + CadenaS = "🔐"; + } + + //////////////////////////////////////////////////// TEAM DROPER /////////////////////////////////////////////////////////////////// + data = await new Promise((resolve, reject) => { + db.all( + `SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`, + [team.id], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); + }); + let leaderboard = data + .map((row, i) => { + let position; + switch (i) { + case 0: + position = ":first_place:"; + break; + case 1: + position = ":second_place:"; + break; + case 2: + position = ":third_place:"; + break; + default: + position = `**${i + 1}.**`; + } + return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`; + }) + .join("\n"); + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + const embed = new EmbedBuilder() + .setTitle("🛡️ Informations de `" + team.name + "`:") + .setDescription( + `**Id:** \`${team.id}\`\n**Description:** \`${team.description}\`\n**Banque:** \`${team.bank}\`coins\n**Niveau:** \`${team.level}\`\n**Reputation:** \`${team.reputation}\`\n\n**Soldats:** \`${team.soldiers}\`\n**Soldats blessés:** \`${team.woundedSoldiers}\`\n**Niveau du camp:** \`${team.campLevel}\`\n**Tourelles:** \`${team.turrets}\`\n**Cadenas:** \`${CadenaS}\`\n\n\nAlliance : ${Aname}\n\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map((member) => `**${member.teamRole}:** <@${member.userId}>`).join("\n")}\n`, + ) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + const embedTopDonnateur = new EmbedBuilder() + .setTitle("**Les 10 meilleurs donnateurs de la team sont :**") + .setDescription(`${leaderboard}`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + const urlRegex1 = /(https?:\/\/[^\s]+)/g; + if (team.icon && urlRegex1.test(team.icon)) { + embed.setThumbnail(team.icon); + } + + const urlRegex2 = /(https?:\/\/[^\s]+)/g; + if (team.banner && urlRegex2.test(team.banner)) { + embedTopDonnateur.setImage(team.banner); + } + + return message.reply({ + embeds: [embed, embedTopDonnateur], + allowedMentions: { repliedUser: false }, + }); + } + }, +}; diff --git a/commands/teams/tinvite.js b/commands/teams/tinvite.js index abb48d2..bb20067 100644 --- a/commands/teams/tinvite.js +++ b/commands/teams/tinvite.js @@ -1,110 +1,159 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); - -module.exports = { - aliases: ['tinvite'], - description: 'Invite un utilisateur à votre team.', - emote: '🛡️', - utilisation: '<@user>', - permission: 0, - - async execute(message, args, client) { - if (!args[0]) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('🛡️ Invitation à l\'équipe') - .setDescription('Veuillez mentionner un utilisateur à inviter.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - allowedMentions: { repliedUser: false } - }); - } - - const userToInvite = message.mentions.users.first(); - if (!userToInvite) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('🛡️ Invitation à l\'équipe') - .setDescription('Utilisateur non trouvé.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - allowedMentions: { repliedUser: false } - }); - } - const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, userToInvite.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - if (team) { - return message.channel.reply('<@' + userToInvite.id + '> a déjà une team') - } - - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - if (!user || user.teamRole !== 'owner' || user.teamRole !== 'officer') { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('🛡️ Invitation à l\'équipe') - .setDescription('Vous n\'êtes pas administrateur de cette équipe.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], - allowedMentions: { repliedUser: false } - }); - } - embedColor(message.author.id, message.guild.id).then(color => { - const accept = new ButtonBuilder() - .setCustomId('accept') - .setLabel('Rejoindre la team') - .setStyle(ButtonStyle.Success); - - const row = new ActionRowBuilder() - .addComponents(accept); - - const embed = new EmbedBuilder() - .setTitle('🛡️ Invitation à l\'équipe') - .setDescription(`<@${userToInvite.id}> tu as été invité à rejoindre l'équipe de <@${message.author.id}>. Pour accepter l'invitation, clique sur le bouton.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - (async () => { - const sentMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - - const filter = i => i.customId === 'accept' && i.user.id === userToInvite.id; - const collector = sentMessage.createMessageComponentCollector({ filter, time: 120000 }); - collector.on('collect', async (interaction) => { - db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [user.teamId, 'membre', message.guild.id, userToInvite.id], (err) => { - if (err) { - return message.reply('Une erreur est survenue lors de l\'invitation de l\'utilisateur.'); - } - const embed = new EmbedBuilder() - .setTitle('🛡️ Invitation à l\'équipe') - .setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - sentMessage.edit({ embeds: [embed], components: [], allowedMentions: { repliedUser: false } }); - }); - }); - })(); - }); - }, -}; \ No newline at end of file +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); + +module.exports = { + aliases: ["tinvite"], + description: "Invite un utilisateur à votre team.", + emote: "🛡️", + utilisation: "<@user>", + permission: 0, + + async execute(message, args, client) { + if (!args[0]) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🛡️ Invitation à l'équipe") + .setDescription("Veuillez mentionner un utilisateur à inviter.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + + const userToInvite = message.mentions.users.first(); + if (!userToInvite) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🛡️ Invitation à l'équipe") + .setDescription("Utilisateur non trouvé.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + const team = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, + [message.guild.id, message.guild.id, userToInvite.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + if (team) { + return message.channel.reply( + "<@" + userToInvite.id + "> a déjà une team", + ); + } + + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + + if (!user || user.teamRole !== "owner" || user.teamRole !== "officer") { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("🛡️ Invitation à l'équipe") + .setDescription("Vous n'êtes pas administrateur de cette équipe.") + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + embedColor(message.author.id, message.guild.id).then((color) => { + const accept = new ButtonBuilder() + .setCustomId("accept") + .setLabel("Rejoindre la team") + .setStyle(ButtonStyle.Success); + + const row = new ActionRowBuilder().addComponents(accept); + + const embed = new EmbedBuilder() + .setTitle("🛡️ Invitation à l'équipe") + .setDescription( + `<@${userToInvite.id}> tu as été invité à rejoindre l'équipe de <@${message.author.id}>. Pour accepter l'invitation, clique sur le bouton.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + (async () => { + const sentMessage = await message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + const filter = (i) => + i.customId === "accept" && i.user.id === userToInvite.id; + const collector = sentMessage.createMessageComponentCollector({ + filter, + time: 120000, + }); + collector.on("collect", async (interaction) => { + db.run( + `UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, + [user.teamId, "membre", message.guild.id, userToInvite.id], + (err) => { + if (err) { + return message.reply( + "Une erreur est survenue lors de l'invitation de l'utilisateur.", + ); + } + const embed = new EmbedBuilder() + .setTitle("🛡️ Invitation à l'équipe") + .setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + sentMessage.edit({ + embeds: [embed], + components: [], + allowedMentions: { repliedUser: false }, + }); + }, + ); + }); + })(); + }); + }, +}; diff --git a/commands/teams/tleave.js b/commands/teams/tleave.js index 65ceacf..567960a 100644 --- a/commands/teams/tleave.js +++ b/commands/teams/tleave.js @@ -1,101 +1,143 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); -const embedColor = require('../../fonctions/embedColor.js'); -const db = require('../../fonctions/database.js'); - -module.exports = { - aliases: ['teamleave'], - description: 'Quitte une team.', - emote: '🛡️', - utilisation: '', - permission: 0, - - async execute(message, args, client) { - await new Promise((resolve, reject) => { - db.get(`SELECT teamId FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - if (row.teamId === null ) { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛡️ Quitter une team') - .setDescription(`Vous n'êtes dans aucune team.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } else { - resolve(); - } - } - }); - }); - - await new Promise((resolve, reject) => { - db.get(`SELECT teamRole FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { - if (err) { - reject(err); - } else { - if (row.teamRole === 'owner') { - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛡️ Quitter une team') - .setDescription(`Vous êtes le leader de votre team. Vous devez nommer un autre membre leader avant de quitter la team. Pour cela, utilisez la commande \`&tpromote \` jusqu'à ce que vous ne soyez plus leader.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) - }); - } else { - resolve(); - } - } - }); - }); - - - const embed = new EmbedBuilder() - .setTitle('🛡️ Quitter une team') - .setDescription(`Êtes-vous sûr de vouloir quitter votre team ?`) - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); - - const confirmeButton = new ButtonBuilder() - .setCustomId('confirme') - .setLabel('✅') - .setStyle(ButtonStyle.Primary); - - const row = new ActionRowBuilder() - .addComponents(confirmeButton); - - const messageTeam = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); - - const filter = i => i.user.id === message.author.id; - const collector = messageTeam.createMessageComponentCollector({ filter, time: 60000 }); - collector.on('collect', async i => { - if (i.customId === 'confirme') { - db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], err => { - if (err) { - console.error(err); - return i.reply('Une erreur est survenue.'); - } - - embedColor(message.author.id, message.guild.id).then(color => { - const embed = new EmbedBuilder() - .setTitle('🛡️ Quitter une team') - .setDescription(`Vous avez quitté votre team.`) - .setColor(color) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - - return i.update({ embeds: [embed], components: [] }); - }); - }); - } - }); - } -}; \ No newline at end of file +const { + EmbedBuilder, + ButtonStyle, + ButtonBuilder, + ActionRowBuilder, +} = require("discord.js"); +const embedColor = require("../../fonctions/embedColor.js"); +const db = require("../../fonctions/database.js"); + +module.exports = { + aliases: ["teamleave"], + description: "Quitte une team.", + emote: "🛡️", + utilisation: "", + permission: 0, + + async execute(message, args, client) { + await new Promise((resolve, reject) => { + db.get( + `SELECT teamId FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + if (row.teamId === null) { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛡️ Quitter une team") + .setDescription(`Vous n'êtes dans aucune team.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else { + resolve(); + } + } + }, + ); + }); + + await new Promise((resolve, reject) => { + db.get( + `SELECT teamRole FROM users WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err, row) => { + if (err) { + reject(err); + } else { + if (row.teamRole === "owner") { + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛡️ Quitter une team") + .setDescription( + `Vous êtes le leader de votre team. Vous devez nommer un autre membre leader avant de quitter la team. Pour cela, utilisez la commande \`&tpromote \` jusqu'à ce que vous ne soyez plus leader.`, + ) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); + }); + } else { + resolve(); + } + } + }, + ); + }); + + const embed = new EmbedBuilder() + .setTitle("🛡️ Quitter une team") + .setDescription(`Êtes-vous sûr de vouloir quitter votre team ?`) + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + const confirmeButton = new ButtonBuilder() + .setCustomId("confirme") + .setLabel("✅") + .setStyle(ButtonStyle.Primary); + + const row = new ActionRowBuilder().addComponents(confirmeButton); + + const messageTeam = await message.reply({ + embeds: [embed], + components: [row], + allowedMentions: { repliedUser: false }, + }); + + const filter = (i) => i.user.id === message.author.id; + const collector = messageTeam.createMessageComponentCollector({ + filter, + time: 60000, + }); + collector.on("collect", async (i) => { + if (i.customId === "confirme") { + db.run( + `UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, + [message.author.id, message.guild.id], + (err) => { + if (err) { + console.error(err); + return i.reply("Une erreur est survenue."); + } + + embedColor(message.author.id, message.guild.id).then((color) => { + const embed = new EmbedBuilder() + .setTitle("🛡️ Quitter une team") + .setDescription(`Vous avez quitté votre team.`) + .setColor(color) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); + + return i.update({ embeds: [embed], components: [] }); + }); + }, + ); + } + }); + }, +}; diff --git a/commands/teams/trep.js b/commands/teams/trep.js index 6ea09e7..079a8a4 100644 --- a/commands/teams/trep.js +++ b/commands/teams/trep.js @@ -1,84 +1,129 @@ -const { EmbedBuilder } = require('discord.js'); -const db = require('../../fonctions/database.js'); -const embedColor = require('../../fonctions/embedColor.js'); +const { EmbedBuilder } = require("discord.js"); +const db = require("../../fonctions/database.js"); +const embedColor = require("../../fonctions/embedColor.js"); module.exports = { - aliases: ['teamrep'], - description: 'Ajoute un point de reputation à une team.', - emote: '➕', - utilisation: '', + aliases: ["teamrep"], + description: "Ajoute un point de reputation à une team.", + emote: "➕", + utilisation: "", permission: 0, async execute(message, args, client) { if (!args[0]) { const embed = new EmbedBuilder() - .setTitle('Ajout Impossible') + .setTitle("Ajout Impossible") .setDescription(`❌ Veuillez indiquer l'id une team.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } const teamID = args[0].toLowerCase(); const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - const lastTrep = user.lastTrep + const lastTrep = user.lastTrep; const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, teamID], async (err, row) => { - if (err) reject(err); - if (!row) { - return message.reply({ - embeds: [ - new EmbedBuilder() - .setTitle('Erreur') - .setDescription('❌ La team spécifié n\'existe pas.') - .setColor(await embedColor(message.author.id, message.guild.id)) - .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) - ], allowedMentions: { repliedUser: false } - }); - } - resolve(parseInt(row.reputation)); - }); + db.get( + `SELECT * FROM teams WHERE guildId = ? AND id = ?`, + [message.guild.id, teamID], + async (err, row) => { + if (err) reject(err); + if (!row) { + return message.reply({ + embeds: [ + new EmbedBuilder() + .setTitle("Erreur") + .setDescription("❌ La team spécifié n'existe pas.") + .setColor( + await embedColor(message.author.id, message.guild.id), + ) + .setTimestamp() + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }), + ], + allowedMentions: { repliedUser: false }, + }); + } + resolve(parseInt(row.reputation)); + }, + ); }); if (lastTrep > Date.now() - 5400000) { const embed = new EmbedBuilder() - .setTitle('Ajout Impossible') - .setDescription(`❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastTrep + 5400000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`) + .setTitle("Ajout Impossible") + .setDescription( + `❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastTrep + 5400000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`, + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); - return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + return message.reply({ + embeds: [embed], + allowedMentions: { repliedUser: false }, + }); } - db.run(`UPDATE users SET lastTrep =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + db.run( + `UPDATE users SET lastTrep =? WHERE guildId =? AND userId =?`, + [Date.now(), message.guild.id, message.author.id], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); - db.run(`UPDATE teams SET reputation = reputation + 1 WHERE guildId =? AND id =?`, [message.guild.id, teamID], (err) => { - if (err) { - console.log(`${err}`.red) - } - }); + db.run( + `UPDATE teams SET reputation = reputation + 1 WHERE guildId =? AND id =?`, + [message.guild.id, teamID], + (err) => { + if (err) { + console.log(`${err}`.red); + } + }, + ); const embed = new EmbedBuilder() - .setTitle('Reputation ajouté !') - .setDescription('Vous avez ajouter une reputation à la team `' + team.name + '`, qui a maintement `' + (team.reputation + 1) + '` reputation !') + .setTitle("Reputation ajouté !") + .setDescription( + "Vous avez ajouter une reputation à la team `" + + team.name + + "`, qui a maintement `" + + (team.reputation + 1) + + "` reputation !", + ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() - .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + .setFooter({ + text: `Demandé par ${message.author.tag}`, + iconURL: message.author.displayAvatarURL(), + }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); }, -}; \ No newline at end of file +}; diff --git a/config.json b/config.json index ae6d848..b9f1b99 100644 --- a/config.json +++ b/config.json @@ -1,3 +1,3 @@ { - "owners": ["1066067393123733595", "671763971803447298"] -} \ No newline at end of file + "owners": ["1066067393123733595", "671763971803447298"] +} diff --git a/events/guildCreate.js b/events/guildCreate.js index 2e8e053..5a66e30 100644 --- a/events/guildCreate.js +++ b/events/guildCreate.js @@ -1,12 +1,18 @@ -const { Events } = require('discord.js'); -const db = require('../fonctions/database.js'); - -module.exports = { - name: Events.GuildCreate, - async execute(guild) { - db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']); - guild.members.cache.forEach(member => { - db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]); - }); - }, -}; \ No newline at end of file +const { Events } = require("discord.js"); +const db = require("../fonctions/database.js"); + +module.exports = { + name: Events.GuildCreate, + async execute(guild) { + db.run( + `INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, + [guild.id, "prefix", "&"], + ); + guild.members.cache.forEach((member) => { + db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [ + guild.id, + member.id, + ]); + }); + }, +}; diff --git a/events/guildMemberAdd.js b/events/guildMemberAdd.js index 5ea31af..ab6c407 100644 --- a/events/guildMemberAdd.js +++ b/events/guildMemberAdd.js @@ -1,9 +1,12 @@ -const { Events } = require('discord.js'); -const db = require('../fonctions/database.js'); - -module.exports = { - name: Events.GuildMemberAdd, - async execute(member) { - db.run(`INSERT INTO users (guildId, userId) VALUES (?, ?)`, [member.guild.id, member.id]); - }, -}; \ No newline at end of file +const { Events } = require("discord.js"); +const db = require("../fonctions/database.js"); + +module.exports = { + name: Events.GuildMemberAdd, + async execute(member) { + db.run(`INSERT INTO users (guildId, userId) VALUES (?, ?)`, [ + member.guild.id, + member.id, + ]); + }, +}; diff --git a/events/messageCreate.js b/events/messageCreate.js index 274be83..3f9a4f3 100644 --- a/events/messageCreate.js +++ b/events/messageCreate.js @@ -1,45 +1,71 @@ -const { Message, Events } = require("discord.js"); -const db = require('../fonctions/database.js'); -var loggT = require('../loggerT.js'); -var loggE = require('../loggerE.js'); -const getPermissionLevel = require("../fonctions/getPermissionLevel.js"); - -module.exports = { - name: Events.MessageCreate, - async execute(message, client) { - if (message.author.bot) return; - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - if (user.blacklist == true) { return } - - const prefix = db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [message.guild.id, 'prefix'])?.value || '&'; - if (message.content.startsWith(prefix)) { - const args = message.content.slice(prefix.length).trim().split(/ +/); - const commandName = args.shift()?.toLowerCase(); - - const command = client.commands.get(commandName); - if (!command) return; - - const permissionLevel = await getPermissionLevel(message.guild.id, message.member); - if ((permissionLevel < command.permission) && (!client.config.owners.includes(message.author.id))) { - return message.reply("Vous n'avez pas la permission d'utiliser cette commande."); - } - - try { - command.execute(message, args, client); - console.log(`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue) - loggT(`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`) - } catch (error) { - console.error(error); - loggE(error) - message.reply("Erreur lors de l'exécution de la commande"); - } - } else if (message.content === `<@!${client.user.id}>` || message.content === `<@${client.user.id}>`) { - message.reply(`Mon prefix est \`${prefix}\``); - } - } -}; \ No newline at end of file +const { Message, Events } = require("discord.js"); +const db = require("../fonctions/database.js"); +var loggT = require("../loggerT.js"); +var loggE = require("../loggerE.js"); +const getPermissionLevel = require("../fonctions/getPermissionLevel.js"); + +module.exports = { + name: Events.MessageCreate, + async execute(message, client) { + if (message.author.bot) return; + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + if (user.blacklist == true) { + return; + } + + const prefix = + db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [ + message.guild.id, + "prefix", + ])?.value || "&"; + if (message.content.startsWith(prefix)) { + const args = message.content.slice(prefix.length).trim().split(/ +/); + const commandName = args.shift()?.toLowerCase(); + + const command = client.commands.get(commandName); + if (!command) return; + + const permissionLevel = await getPermissionLevel( + message.guild.id, + message.member, + ); + if ( + permissionLevel < command.permission && + !client.config.owners.includes(message.author.id) + ) { + return message.reply( + "Vous n'avez pas la permission d'utiliser cette commande.", + ); + } + + try { + command.execute(message, args, client); + console.log( + `[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}` + .blue, + ); + loggT( + `[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`, + ); + } catch (error) { + console.error(error); + loggE(error); + message.reply("Erreur lors de l'exécution de la commande"); + } + } else if ( + message.content === `<@!${client.user.id}>` || + message.content === `<@${client.user.id}>` + ) { + message.reply(`Mon prefix est \`${prefix}\``); + } + }, +}; diff --git a/events/messageCreateLVL.js b/events/messageCreateLVL.js index f9546a2..6c50958 100644 --- a/events/messageCreateLVL.js +++ b/events/messageCreateLVL.js @@ -8,14 +8,20 @@ module.exports = { async execute(message, client) { if (message.channel.type === "DM") return; if (message.author.bot) return; - + const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { - if (err) reject(err); - resolve(row); - }); + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [message.guild.id, message.author.id], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); }); - if (user.blacklist == true) { return } + if (user.blacklist == true) { + return; + } ////////////////////////////////////////////////////////////////// /////////////////////////// xp systeme /////////////////////////// @@ -37,7 +43,6 @@ module.exports = { ]); } - ////////////////////////////////////////////////////////////////// /////////////////////////// lvl systeme ////////////////////////// ////////////////////////////////////////////////////////////////// @@ -45,12 +50,20 @@ module.exports = { if (user.xp >= 100 * user.lvl) { db.run( `UPDATE users SET xp = xp - ?, lvl = lvl + 1, pocket = pocket + ?, reputation = reputation + ? WHERE guildId = ? AND userId = ?`, - [100 * user.lvl, ((user.lvl + 1) * 250), Math.ceil((user.lvl + 1) / 5), message.guild.id, message.author.id] + [ + 100 * user.lvl, + (user.lvl + 1) * 250, + Math.ceil((user.lvl + 1) / 5), + message.guild.id, + message.author.id, + ], ); const embedlvl = new EmbedBuilder() .setTitle("Nouveau niveau !") - .setDescription(`Bravo ${message.author}, tu es passé niveau ${user.lvl + 1} sur le serveur \`${message.guild.name}\` !\nTu as reçu \`${(user.lvl + 1) * 250}\` 🪙 et \`${Math.ceil((user.lvl + 1) / 5)}\` 🔺 !`) + .setDescription( + `Bravo ${message.author}, tu es passé niveau ${user.lvl + 1} sur le serveur \`${message.guild.name}\` !\nTu as reçu \`${(user.lvl + 1) * 250}\` 🪙 et \`${Math.ceil((user.lvl + 1) / 5)}\` 🔺 !`, + ) .setColor(await embedColor(message.author.id, message.guild.id)); message.author.send({ embeds: [embedlvl] }); diff --git a/events/ready.js b/events/ready.js index b0863ce..0c7107f 100644 --- a/events/ready.js +++ b/events/ready.js @@ -1,117 +1,161 @@ -const { Events, ActivityType } = require('discord.js'); -const db = require('../fonctions/database.js'); -var loggT = require('../loggerT.js'); -var loggE = require('../loggerE.js'); - -module.exports = { - name: Events.ClientReady, - async execute(client) { - console.log(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs\n`.green); - loggT(`\n\n`) - loggT(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs`); - - console.log('setPresence : ...') - client.user.setPresence({ - activities: [{ - name: '/azelie', - type: ActivityType.Streaming, - url: 'https://twitch.tv/tuturp33' - }], - status: 'online' - }); - console.log('setPresence : OK') - - - client.guilds.cache.forEach(guild => { - console.log('BD update : ...') - db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']); - guild.members.cache.forEach(member => { - db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]); - }); - console.log('BD update : OK') - }); - - - setInterval(async () => { - console.log('Recompense vocal : ...') - client.guilds.cache.forEach(guild => { - guild.members.cache.filter(member => member.voice.channel).forEach(member => { - if (member.voice.selfMute == true) { - db.run('UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); - db.run('UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); - - } else { - db.run('UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); - db.run('UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); - } - }); - guild.members.cache.filter(member => member.voice.channel && member.voice.streaming).forEach(member => { - db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); - db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); - - }); - guild.members.cache.filter(member => member.voice.channel && member.voice.selfVideo).forEach(member => { - db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); - db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); - }); - }); - console.log('Recompense vocal : OK') - }, 15 * 60 * 1000); - - setInterval(async () => { - console.log('Bâtiment : ...') - const team = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM teams`, (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - - if (team.location == 0) return - db.run(`UPDATE teams SET bank = bank + ?`, [team.location]); - console.log('Bâtiment : OK') - }, 1 * 60 * 1000) - - //AntiCrash - process.on('unhandledRejection', (error) => { - if (error.code == "10064") return - if (error.code == "10008") return - console.log(' [antiCrash] :: Unhandled Rejection/Catch'.red); - console.log(`${error}`.grey); - loggE(error) - }); - - process.on("uncaughtException", (error, origin) => { - if (error.code == "10064") return - if (error.code == "10008") return - console.log(' [antiCrash] :: Uncaught Exception/Catch'.red); - console.log(`${error}`.grey); - console.log('Information supplémentaire:', origin); - loggE(error) - }); - - process.on('uncaughtExceptionMonitor', (error, origin) => { - if (error.code == "10064") return - if (error.code == "10008") return - console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch'.red); - console.log(`${error}`.grey); - console.log('Information supplémentaire:', origin); - loggE(error) - }); - - process.on('beforeExit', (code) => { - if (error.code == "10064") return - if (error.code == "10008") return - console.log(' [antiCrash] :: Before Exit'.red); - console.log('Code de sortie:', code); - }); - - process.on('exit', (code) => { - if (error.code == "10064") return - if (error.code == "10008") return - console.log(' [antiCrash] :: Exit'.red); - console.log('Code de sortie:', code); - }); - - }, -}; \ No newline at end of file +const { Events, ActivityType } = require("discord.js"); +const db = require("../fonctions/database.js"); +var loggT = require("../loggerT.js"); +var loggE = require("../loggerE.js"); + +module.exports = { + name: Events.ClientReady, + async execute(client) { + console.log( + `[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs\n` + .green, + ); + loggT(`\n\n`); + loggT( + `[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs`, + ); + + console.log("setPresence : ..."); + client.user.setPresence({ + activities: [ + { + name: "/azelie", + type: ActivityType.Streaming, + url: "https://twitch.tv/tuturp33", + }, + ], + status: "online", + }); + console.log("setPresence : OK"); + + client.guilds.cache.forEach((guild) => { + console.log("BD update : ..."); + db.run( + `INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, + [guild.id, "prefix", "&"], + ); + guild.members.cache.forEach((member) => { + db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [ + guild.id, + member.id, + ]); + }); + console.log("BD update : OK"); + }); + + setInterval( + async () => { + console.log("Recompense vocal : ..."); + client.guilds.cache.forEach((guild) => { + guild.members.cache + .filter((member) => member.voice.channel) + .forEach((member) => { + if (member.voice.selfMute == true) { + db.run( + "UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?", + [guild.id, member.id], + ); + db.run( + "UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?", + [guild.id, member.id], + ); + } else { + db.run( + "UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?", + [guild.id, member.id], + ); + db.run( + "UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?", + [guild.id, member.id], + ); + } + }); + guild.members.cache + .filter((member) => member.voice.channel && member.voice.streaming) + .forEach((member) => { + db.run( + "UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?", + [guild.id, member.id], + ); + db.run( + "UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?", + [guild.id, member.id], + ); + }); + guild.members.cache + .filter((member) => member.voice.channel && member.voice.selfVideo) + .forEach((member) => { + db.run( + "UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?", + [guild.id, member.id], + ); + db.run( + "UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?", + [guild.id, member.id], + ); + }); + }); + console.log("Recompense vocal : OK"); + }, + 15 * 60 * 1000, + ); + + setInterval( + async () => { + console.log("Bâtiment : ..."); + const team = await new Promise((resolve, reject) => { + db.get(`SELECT * FROM teams`, (err, row) => { + if (err) reject(err); + resolve(row); + }); + }); + + if (team.location == 0) return; + db.run(`UPDATE teams SET bank = bank + ?`, [team.location]); + console.log("Bâtiment : OK"); + }, + 1 * 60 * 1000, + ); + + //AntiCrash + process.on("unhandledRejection", (error) => { + if (error.code == "10064") return; + if (error.code == "10008") return; + console.log(" [antiCrash] :: Unhandled Rejection/Catch".red); + console.log(`${error}`.grey); + loggE(error); + }); + + process.on("uncaughtException", (error, origin) => { + if (error.code == "10064") return; + if (error.code == "10008") return; + console.log(" [antiCrash] :: Uncaught Exception/Catch".red); + console.log(`${error}`.grey); + console.log("Information supplémentaire:", origin); + loggE(error); + }); + + process.on("uncaughtExceptionMonitor", (error, origin) => { + if (error.code == "10064") return; + if (error.code == "10008") return; + console.log(" [antiCrash] :: Uncaught Exception Monitor/Catch".red); + console.log(`${error}`.grey); + console.log("Information supplémentaire:", origin); + loggE(error); + }); + + process.on("beforeExit", (code) => { + if (error.code == "10064") return; + if (error.code == "10008") return; + console.log(" [antiCrash] :: Before Exit".red); + console.log("Code de sortie:", code); + }); + + process.on("exit", (code) => { + if (error.code == "10064") return; + if (error.code == "10008") return; + console.log(" [antiCrash] :: Exit".red); + console.log("Code de sortie:", code); + }); + }, +}; diff --git a/fonctions/database.js b/fonctions/database.js index 4685a08..777799a 100644 --- a/fonctions/database.js +++ b/fonctions/database.js @@ -1,85 +1,85 @@ -const sqlite3 = require('sqlite3').verbose(); - -let db = new sqlite3.Database('./db.sqlite'); - -db.run(`CREATE TABLE IF NOT EXISTS config ( - guildId TEXT, - name TEXT, - value TEXT, - PRIMARY KEY (guildId, name) -)`); - -db.run(`CREATE TABLE IF NOT EXISTS users ( - guildId TEXT, - userId TEXT, - pocket INTEGER DEFAULT 0, - bank INTEGER DEFAULT 0, - reputation INTEGER DEFAULT 0, - lvl INTERGER DEFAULT 0, - xp INTERGER DEFAULT 0, - objet INTERGER DEFAULT 0, - key INTERGER DEFAULT 0, - buyer BOOLEAN DEFAULT FALSE, - owner BOOLEAN DEFAULT FALSE, - whitelist BOOLEAN DEFAULT FALSE, - blacklist BOOLEAN DEFAULT FALSE, - antiRob INTEGER DEFAULT 0, - lastRob INTEGER DEFAULT 0, - lastRecolt INTEGER DEFAULT 0, - lastWork INTEGER DEFAULT 0, - lastDaily INTEGER DEFAULT 0, - lastRep INTERGER DEFAULT 0, - lastTrep INTERGER DEFAULT 0, - lastArep INTERGER DEFAULT 0, - lastHack INTERGER DEFAULT 0, - lastKill INTERGER DEFAULT 0, - lastBraquage INTERGER DEFAULT 0, - job TEXT, - teamId TEXT, - teamRole TEXT, - teamDroper INTERGER DEFAULT 0, - embed TEXT, - PRIMARY KEY (guildId, userId) -)`); - -db.run(`CREATE TABLE IF NOT EXISTS teams ( - guildId TEXT, - id TEXT, - name TEXT, - description TEXT, - icon TEXT, - banner TEXT, - reputation INTERGER DEFAULT 0, - bank INTEGER DEFAULT 0, - location INTERGER DEFAULT 0, - level INTEGER DEFAULT 1, - padlock INTEGER DEFAULT 5, - soldiers INTEGER DEFAULT 0, - woundedSoldiers INTEGER DEFAULT 0, - campLevel INTEGER DEFAULT 1, - turrets INTEGER DEFAULT 0, - alliancesId TEXT, - PRIMARY KEY (guildId, id) -)`); - -db.run(`CREATE TABLE IF NOT EXISTS alliances ( - guildId TEXT, - id TEXT, - creator TEXT, - name TEXT, - description TEXT, - icon TEXT, - banner TEXT, - reputation INTERGER DEFAULT 0, - bank INTEGER DEFAULT 0, - PRIMARY KEY (guildId, id) -)`); - -db.run(`CREATE TABLE IF NOT EXISTS rolePermission ( - guildId TEXT, - roleId TEXT, - permission INTEGER, - PRIMARY KEY (guildId, permission) -)`); - -module.exports = db; \ No newline at end of file +const sqlite3 = require("sqlite3").verbose(); + +let db = new sqlite3.Database("./db.sqlite"); + +db.run(`CREATE TABLE IF NOT EXISTS config ( + guildId TEXT, + name TEXT, + value TEXT, + PRIMARY KEY (guildId, name) +)`); + +db.run(`CREATE TABLE IF NOT EXISTS users ( + guildId TEXT, + userId TEXT, + pocket INTEGER DEFAULT 0, + bank INTEGER DEFAULT 0, + reputation INTEGER DEFAULT 0, + lvl INTERGER DEFAULT 0, + xp INTERGER DEFAULT 0, + objet INTERGER DEFAULT 0, + key INTERGER DEFAULT 0, + buyer BOOLEAN DEFAULT FALSE, + owner BOOLEAN DEFAULT FALSE, + whitelist BOOLEAN DEFAULT FALSE, + blacklist BOOLEAN DEFAULT FALSE, + antiRob INTEGER DEFAULT 0, + lastRob INTEGER DEFAULT 0, + lastRecolt INTEGER DEFAULT 0, + lastWork INTEGER DEFAULT 0, + lastDaily INTEGER DEFAULT 0, + lastRep INTERGER DEFAULT 0, + lastTrep INTERGER DEFAULT 0, + lastArep INTERGER DEFAULT 0, + lastHack INTERGER DEFAULT 0, + lastKill INTERGER DEFAULT 0, + lastBraquage INTERGER DEFAULT 0, + job TEXT, + teamId TEXT, + teamRole TEXT, + teamDroper INTERGER DEFAULT 0, + embed TEXT, + PRIMARY KEY (guildId, userId) +)`); + +db.run(`CREATE TABLE IF NOT EXISTS teams ( + guildId TEXT, + id TEXT, + name TEXT, + description TEXT, + icon TEXT, + banner TEXT, + reputation INTERGER DEFAULT 0, + bank INTEGER DEFAULT 0, + location INTERGER DEFAULT 0, + level INTEGER DEFAULT 1, + padlock INTEGER DEFAULT 5, + soldiers INTEGER DEFAULT 0, + woundedSoldiers INTEGER DEFAULT 0, + campLevel INTEGER DEFAULT 1, + turrets INTEGER DEFAULT 0, + alliancesId TEXT, + PRIMARY KEY (guildId, id) +)`); + +db.run(`CREATE TABLE IF NOT EXISTS alliances ( + guildId TEXT, + id TEXT, + creator TEXT, + name TEXT, + description TEXT, + icon TEXT, + banner TEXT, + reputation INTERGER DEFAULT 0, + bank INTEGER DEFAULT 0, + PRIMARY KEY (guildId, id) +)`); + +db.run(`CREATE TABLE IF NOT EXISTS rolePermission ( + guildId TEXT, + roleId TEXT, + permission INTEGER, + PRIMARY KEY (guildId, permission) +)`); + +module.exports = db; diff --git a/fonctions/embedColor.js b/fonctions/embedColor.js index a2df899..4af0515 100644 --- a/fonctions/embedColor.js +++ b/fonctions/embedColor.js @@ -1,37 +1,51 @@ -const db = require('./database.js'); - -module.exports = async function embedColor(memberId, serverId) { - const user = await new Promise((resolve, reject) => { - db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [serverId, memberId], (err, row) => { - if (err) reject(err); - resolve(row); - }); - }); - let embedColor = user.embed; - if (embedColor === 'random') { - const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'brown', 'black', 'white']; - embedColor = colors[Math.floor(Math.random() * colors.length)]; - } - if (!embedColor) { - embedColor = '#FFD700'; - } else if (embedColor === 'red') { - embedColor = '#FF0000'; - } else if (embedColor === 'orange') { - embedColor = '#FFA500'; - } else if (embedColor === 'yellow') { - embedColor = '#FFFF00'; - } else if (embedColor === 'green') { - embedColor = '#008000'; - } else if (embedColor === 'blue') { - embedColor = '#0000FF'; - } else if (embedColor === 'purple') { - embedColor = '#800080'; - } else if (embedColor === 'brown') { - embedColor = '#A52A2A'; - } else if (embedColor === 'black') { - embedColor = '#000000'; - } else if (embedColor === 'white') { - embedColor = '#FFFFFF'; - } - return embedColor; -} \ No newline at end of file +const db = require("./database.js"); + +module.exports = async function embedColor(memberId, serverId) { + const user = await new Promise((resolve, reject) => { + db.get( + `SELECT * FROM users WHERE guildId = ? AND userId = ?`, + [serverId, memberId], + (err, row) => { + if (err) reject(err); + resolve(row); + }, + ); + }); + let embedColor = user.embed; + if (embedColor === "random") { + const colors = [ + "red", + "orange", + "yellow", + "green", + "blue", + "purple", + "brown", + "black", + "white", + ]; + embedColor = colors[Math.floor(Math.random() * colors.length)]; + } + if (!embedColor) { + embedColor = "#FFD700"; + } else if (embedColor === "red") { + embedColor = "#FF0000"; + } else if (embedColor === "orange") { + embedColor = "#FFA500"; + } else if (embedColor === "yellow") { + embedColor = "#FFFF00"; + } else if (embedColor === "green") { + embedColor = "#008000"; + } else if (embedColor === "blue") { + embedColor = "#0000FF"; + } else if (embedColor === "purple") { + embedColor = "#800080"; + } else if (embedColor === "brown") { + embedColor = "#A52A2A"; + } else if (embedColor === "black") { + embedColor = "#000000"; + } else if (embedColor === "white") { + embedColor = "#FFFFFF"; + } + return embedColor; +}; diff --git a/fonctions/getPermissionLevel.js b/fonctions/getPermissionLevel.js index 62665df..2b93f85 100644 --- a/fonctions/getPermissionLevel.js +++ b/fonctions/getPermissionLevel.js @@ -1,15 +1,19 @@ -const db = require('./database.js'); +const db = require("./database.js"); module.exports = async function getPermissionLevel(serverId, user) { - const roles = user.roles.cache.map(role => role.id); + const roles = user.roles.cache.map((role) => role.id); const perms = await new Promise((resolve, reject) => { - db.all(`SELECT * FROM rolePermission WHERE guildId = ? AND roleId IN (${roles.map(() => '?').join(',')})`, [serverId, ...roles], (err, rows) => { - if (err) reject(err); - resolve(rows); - }); + db.all( + `SELECT * FROM rolePermission WHERE guildId = ? AND roleId IN (${roles.map(() => "?").join(",")})`, + [serverId, ...roles], + (err, rows) => { + if (err) reject(err); + resolve(rows); + }, + ); }); - - const highestPermission = Math.max(...perms.map(perm => perm.permission)); + + const highestPermission = Math.max(...perms.map((perm) => perm.permission)); return highestPermission; -} \ No newline at end of file +}; diff --git a/fonctions/getPrefix.js b/fonctions/getPrefix.js index 5b87cbc..848c75b 100644 --- a/fonctions/getPrefix.js +++ b/fonctions/getPrefix.js @@ -1,12 +1,16 @@ -const db = require('./database.js'); +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); - }); + 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 + return prefix ? prefix.value : "&"; +}; diff --git a/fonctions/loadCommands.js b/fonctions/loadCommands.js index 8f930f5..34c6d1a 100644 --- a/fonctions/loadCommands.js +++ b/fonctions/loadCommands.js @@ -1,35 +1,35 @@ -const fs = require('fs'); -const path = require('path'); - -module.exports = function loadCommands(client, dir) { - let count = 0; - fs.readdirSync(path.join(__dirname, dir)).forEach((file) => { - const filePath = path.join(__dirname, dir, file); - if (fs.statSync(filePath).isDirectory()) { - count += loadCommands(client, path.join(dir, file)); - } else if (file.endsWith('.js') || file.endsWith('.ts')) { - try { - delete require.cache[require.resolve(filePath)]; - const command = require(filePath); - const fileName = file.replace(/\.js|\.ts/g, ''); - if (!command.name) command.name = fileName; - if (!command.category) { - const parentDir = path.basename(path.dirname(filePath)); - command.category = parentDir === 'commands' ? 'other' : parentDir; - } - if (!command.permission) command.permission = 0; - client.commands.set(fileName, command); - if (command.aliases) { - command.aliases.forEach((alias) => { - client.commands.set(alias, command); - }); - } - count++; - } catch (error) { - console.error(`Failed to load file: ${filePath}`); - console.error(error); - } - } - }); - return count; -} \ No newline at end of file +const fs = require("fs"); +const path = require("path"); + +module.exports = function loadCommands(client, dir) { + let count = 0; + fs.readdirSync(path.join(__dirname, dir)).forEach((file) => { + const filePath = path.join(__dirname, dir, file); + if (fs.statSync(filePath).isDirectory()) { + count += loadCommands(client, path.join(dir, file)); + } else if (file.endsWith(".js") || file.endsWith(".ts")) { + try { + delete require.cache[require.resolve(filePath)]; + const command = require(filePath); + const fileName = file.replace(/\.js|\.ts/g, ""); + if (!command.name) command.name = fileName; + if (!command.category) { + const parentDir = path.basename(path.dirname(filePath)); + command.category = parentDir === "commands" ? "other" : parentDir; + } + if (!command.permission) command.permission = 0; + client.commands.set(fileName, command); + if (command.aliases) { + command.aliases.forEach((alias) => { + client.commands.set(alias, command); + }); + } + count++; + } catch (error) { + console.error(`Failed to load file: ${filePath}`); + console.error(error); + } + } + }); + return count; +}; diff --git a/fonctions/loadEvents.js b/fonctions/loadEvents.js index d22c845..d24aa5b 100644 --- a/fonctions/loadEvents.js +++ b/fonctions/loadEvents.js @@ -1,22 +1,22 @@ -const fs = require('fs'); -const path = require('path'); - -module.exports = function loadEvents(client, dir) { - let count = 0; - fs.readdirSync(path.join(__dirname, dir)).forEach((file) => { - const filePath = path.join(__dirname, dir, file); - if (fs.statSync(filePath).isDirectory()) { - loadEvents(client, path.join(dir, file)); - } else if (file.endsWith('.js') || file.endsWith('.ts')) { - delete require.cache[require.resolve(filePath)]; - const event = require(filePath); - if (typeof event.execute === 'function') { - client.on(event.name, (...args) => event.execute(...args, client)); // Specify the type of 'args' as an array of any type - count++; - } else { - console.error(`Event ${event.name} does not have an execute method.`); - } - } - }); - return count; -} \ No newline at end of file +const fs = require("fs"); +const path = require("path"); + +module.exports = function loadEvents(client, dir) { + let count = 0; + fs.readdirSync(path.join(__dirname, dir)).forEach((file) => { + const filePath = path.join(__dirname, dir, file); + if (fs.statSync(filePath).isDirectory()) { + loadEvents(client, path.join(dir, file)); + } else if (file.endsWith(".js") || file.endsWith(".ts")) { + delete require.cache[require.resolve(filePath)]; + const event = require(filePath); + if (typeof event.execute === "function") { + client.on(event.name, (...args) => event.execute(...args, client)); // Specify the type of 'args' as an array of any type + count++; + } else { + console.error(`Event ${event.name} does not have an execute method.`); + } + } + }); + return count; +}; diff --git a/loggerE.js b/loggerE.js index acc31d6..713e211 100644 --- a/loggerE.js +++ b/loggerE.js @@ -1,4 +1,4 @@ -const fs = require("fs") +const fs = require("fs"); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////// @@ -7,32 +7,32 @@ const fs = require("fs") ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// function saveLOGE(LOG) { - try { - let data = fs.readFileSync('logs/ERROR.txt', 'utf8'); - const log = data.split('\n'); - log.push(...LOG); - data = log.join('\n'); - fs.writeFileSync('logs/ERROR.txt', data); - } catch (err) { - console.log(err); - } + try { + let data = fs.readFileSync("logs/ERROR.txt", "utf8"); + const log = data.split("\n"); + log.push(...LOG); + data = log.join("\n"); + fs.writeFileSync("logs/ERROR.txt", data); + } catch (err) { + console.log(err); + } } module.exports = function loggE(erreur) { - const config = require("./config.json"); - //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME ///////////////////////////////////////////////////////////////////////////// - const d = new Date() - var jours = d.getDate().toString().padStart(2, "0") - var mois = d.getMonth().toString().padStart(2, "0") + 1 - var année = d.getFullYear().toString().padStart(2, "0") - var heures = d.getHours().toString().padStart(2, "0") - var minutes = d.getMinutes().toString().padStart(2, "0") - var secondes = d.getSeconds().toString().padStart(2, "0") - var milliseconds = d.getMilliseconds().toString().padStart(3, "0") - const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms ` - //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG /////////////////////////////////////////////////////////////////////// - const text = erreur - const ERROR = `[ERROR] || ${time} || ${text}` - const LOG = []; - LOG.push(ERROR); - saveLOGE(LOG); -} + const config = require("./config.json"); + //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME ///////////////////////////////////////////////////////////////////////////// + const d = new Date(); + var jours = d.getDate().toString().padStart(2, "0"); + var mois = d.getMonth().toString().padStart(2, "0") + 1; + var année = d.getFullYear().toString().padStart(2, "0"); + var heures = d.getHours().toString().padStart(2, "0"); + var minutes = d.getMinutes().toString().padStart(2, "0"); + var secondes = d.getSeconds().toString().padStart(2, "0"); + var milliseconds = d.getMilliseconds().toString().padStart(3, "0"); + const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `; + //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG /////////////////////////////////////////////////////////////////////// + const text = erreur; + const ERROR = `[ERROR] || ${time} || ${text}`; + const LOG = []; + LOG.push(ERROR); + saveLOGE(LOG); +}; diff --git a/loggerT.js b/loggerT.js index eb75e8e..e96ae38 100644 --- a/loggerT.js +++ b/loggerT.js @@ -1,4 +1,4 @@ -const fs = require("fs") +const fs = require("fs"); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////// @@ -7,45 +7,44 @@ const fs = require("fs") ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// function saveLOGT(LOG) { - try { - let data = fs.readFileSync('logs/TEXT.txt', 'utf8'); - const log = data.split('\n'); - log.push(...LOG); - data = log.join('\n'); - fs.writeFileSync('logs/TEXT.txt', data); - } catch (err) { - console.log(err); - } + try { + let data = fs.readFileSync("logs/TEXT.txt", "utf8"); + const log = data.split("\n"); + log.push(...LOG); + data = log.join("\n"); + fs.writeFileSync("logs/TEXT.txt", data); + } catch (err) { + console.log(err); + } } module.exports = function loggT(msg) { - const config = require("./config.json"); - if (config.test == true) { - return - } - - if (!msg == "\n" || !msg == "\n\n") { - //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME ///////////////////////////////////////////////////////////////////////////// - const d = new Date() - var jours = d.getDate().toString().padStart(2, "0") - var mois = d.getMonth().toString().padStart(2, "0") - var année = d.getFullYear().toString().padStart(2, "0") - var heures = d.getHours().toString().padStart(2, "0") - var minutes = d.getMinutes().toString().padStart(2, "0") - var secondes = d.getSeconds().toString().padStart(2, "0") - var milliseconds = d.getMilliseconds().toString().padStart(3, "0") - const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms ` - //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG /////////////////////////////////////////////////////////////////////// - const text = msg - const MSG_T = `[TEXT] || ${time} || ${text}` - const LOG = []; - LOG.push(MSG_T); - saveLOGT(LOG); - } - else { - const MSG_T = `\n\n` - const LOG = []; - LOG.push(MSG_T); - saveLOGT(LOG); - } -} \ No newline at end of file + const config = require("./config.json"); + if (config.test == true) { + return; + } + + if (!msg == "\n" || !msg == "\n\n") { + //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME ///////////////////////////////////////////////////////////////////////////// + const d = new Date(); + var jours = d.getDate().toString().padStart(2, "0"); + var mois = d.getMonth().toString().padStart(2, "0"); + var année = d.getFullYear().toString().padStart(2, "0"); + var heures = d.getHours().toString().padStart(2, "0"); + var minutes = d.getMinutes().toString().padStart(2, "0"); + var secondes = d.getSeconds().toString().padStart(2, "0"); + var milliseconds = d.getMilliseconds().toString().padStart(3, "0"); + const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `; + //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG /////////////////////////////////////////////////////////////////////// + const text = msg; + const MSG_T = `[TEXT] || ${time} || ${text}`; + const LOG = []; + LOG.push(MSG_T); + saveLOGT(LOG); + } else { + const MSG_T = `\n\n`; + const LOG = []; + LOG.push(MSG_T); + saveLOGT(LOG); + } +}; diff --git a/main.js b/main.js index 644215c..228ddd7 100644 --- a/main.js +++ b/main.js @@ -1,19 +1,19 @@ -require('dotenv').config(); -const { Client, IntentsBitField, Collection } = require("discord.js"); -const loadCommands = require("./fonctions/loadCommands"); -const loadEvents = require("./fonctions/loadEvents"); -const client = new Client({intents: new IntentsBitField(3276799)}); -const color = require('colors') -var loggT = require('./loggerT.js'); -var loggE = require('./loggerE.js'); - -client.events = new Collection(); -client.commands = new Collection(); -client.config = require("./config.json"); - -console.log(`${loadEvents(client, '..\\events')} events loaded`.grey); -console.log(`${loadCommands(client, '..\\commands')} commands loaded`.grey); -loggT(`${loadEvents(client, '..\\events')} events loaded`) -loggT(`${loadCommands(client, '..\\commands')} commands loaded`) - -client.login(process.env.TOKEN); \ No newline at end of file +require("dotenv").config(); +const { Client, IntentsBitField, Collection } = require("discord.js"); +const loadCommands = require("./fonctions/loadCommands"); +const loadEvents = require("./fonctions/loadEvents"); +const client = new Client({ intents: new IntentsBitField(3276799) }); +const color = require("colors"); +var loggT = require("./loggerT.js"); +var loggE = require("./loggerE.js"); + +client.events = new Collection(); +client.commands = new Collection(); +client.config = require("./config.json"); + +console.log(`${loadEvents(client, "..\\events")} events loaded`.grey); +console.log(`${loadCommands(client, "..\\commands")} commands loaded`.grey); +loggT(`${loadEvents(client, "..\\events")} events loaded`); +loggT(`${loadCommands(client, "..\\commands")} commands loaded`); + +client.login(process.env.TOKEN);