From 2979ea1bd3885c1859872883b968acc6770fb728 Mon Sep 17 00:00:00 2001 From: *x1 Date: Mon, 17 Jun 2024 19:24:07 +0200 Subject: [PATCH] Update me, team and ADD juge --- commands/casino/me.js | 3 +- commands/jobs/juge.js | 122 +++++++++++++++++++++++++++++++++++++++++ commands/teams/team.js | 6 +- 3 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 commands/jobs/juge.js diff --git a/commands/casino/me.js b/commands/casino/me.js index 5949f2b..1d39832 100644 --- a/commands/casino/me.js +++ b/commands/casino/me.js @@ -22,6 +22,7 @@ module.exports = { const reputation = user.reputation const niveau = user.lvl const xp = user.xp + const tdrop = user.tdroper let anti_rob = `` if (user.antiRob + 7200000 > Date.now()) { @@ -30,7 +31,7 @@ module.exports = { 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}\``) + .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() }); diff --git a/commands/jobs/juge.js b/commands/jobs/juge.js new file mode 100644 index 0000000..913a66c --- /dev/null +++ b/commands/jobs/juge.js @@ -0,0 +1,122 @@ +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 : 5coins)', + 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.') + .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); + }); + }); + + /////////////////////////////// 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); + }); + }); + 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.id}>`) + .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 (i.customId === 'contre') { + if (i.user.id == message.author.id) { countContre =+ 2} else {countContre =+ 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('') + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + ], + components: [row], + allowedMentions: { repliedUser: false } + }) + } + 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 } + }) + } + }) + + collector.on('end', () => { + if (countContre > countPr) { + msg.edit({ embeds: [ + new EmbedBuilder() + .setTitle(`Jugement de <${cible.id}>`) + .setDescription(`Les charges sont abandonnée`) + .setTimestamp() + .setImage('') + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + ], components: [], allowedMentions: { repliedUser: false } }); + } + }); + } +}; \ No newline at end of file diff --git a/commands/teams/team.js b/commands/teams/team.js index 2be77ff..ed338ed 100644 --- a/commands/teams/team.js +++ b/commands/teams/team.js @@ -12,7 +12,7 @@ module.exports = { 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], (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); }); @@ -53,7 +53,7 @@ module.exports = { //////////////////////////////////////////////////// TEAM DROPER /////////////////////////////////////////////////////////////////// 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) => { + 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); }); @@ -79,7 +79,7 @@ module.exports = { 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**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.teamRole}:** <@${member.userId}>`).join('\n')}\nLes 10 meilleurs donnateur de la team sont :\n\n${leaderboard}`) + .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**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.teamRole}:** <@${member.userId}>`).join('\n')}\n\n**Les 10 meilleurs donnateur de la team sont :**\n${leaderboard}\n`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });