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|membreID>", 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 }, }); } 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.teamId === member.teamId) { const embed = new EmbedBuilder() .setTitle("Erreur") .setDescription( `❌ Vous ne pouvez pas voler un membre 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 }, }); } 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], (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}> 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}> 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}>.`) .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 } }); }, };