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 !== '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.') .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 + ? WHERE guildId = ? AND userId = ?`, [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 } }); } }, };