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: "", 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.") .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("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(), }); 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.") .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 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); }, ); }); if (!teamRole || teamRole == "membre") { 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.", ) .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 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); }, ); }); if (!team) { const embed = new EmbedBuilder() .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(), }); 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); }, ); }); let amount; 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.`, ) .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 { 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, ]); const embed = new EmbedBuilder() .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(), }); return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false }, }); } }, };