Files
bot-discord-coins/commands/casino/withdraw.js
T
2024-06-24 00:32:05 +02:00

80 lines
2.7 KiB
JavaScript

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: "<montant|all>",
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 } });
},
};