From 428ade4c4d29a1eb1129224514f89e06c7044604 Mon Sep 17 00:00:00 2001 From: *x1 Date: Wed, 19 Jun 2024 09:21:02 +0200 Subject: [PATCH] Add alliances sys (partit 6) --- commands/Alliance/Adep.js | 2 +- commands/Alliance/Arep.js | 77 +++++++++++++++++++++ commands/Alliance/Awithdraw.js | 123 +++++++++++++++++++++++++++++++++ commands/Alliance/alliance.js | 2 +- 4 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 commands/Alliance/Arep.js create mode 100644 commands/Alliance/Awithdraw.js diff --git a/commands/Alliance/Adep.js b/commands/Alliance/Adep.js index bac34cf..2174857 100644 --- a/commands/Alliance/Adep.js +++ b/commands/Alliance/Adep.js @@ -4,7 +4,7 @@ const embedColor = require('../../fonctions/embedColor.js'); module.exports = { aliases: ['adep', 'adepot', 'alliancedep', 'alliancedepot'], - description: 'Dépose de l\'argent dans la banque de votre alliance.', + description: 'Dépose de l\'argent dans la banque de votre alliance. (tout le monde peux en recupéré ⚠️)', emote: '💰', utilisation: '', permission: 0, diff --git a/commands/Alliance/Arep.js b/commands/Alliance/Arep.js new file mode 100644 index 0000000..7bd156b --- /dev/null +++ b/commands/Alliance/Arep.js @@ -0,0 +1,77 @@ +const { EmbedBuilder } = require('discord.js'); +const db = require('../../fonctions/database.js'); +const embedColor = require('../../fonctions/embedColor.js'); + +module.exports = { + aliases: ['arep', 'areputation', 'alliancereputation', 'alliancerep'], + description: 'Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)', + emote: '💰', + utilisation: '', + permission: 0, + + async execute(message, args, client) { + if (args.length == 0) { + const embed = new EmbedBuilder() + .setTitle('Ajout de reputation') + .setDescription('❌ Vous devez spécifier une alliance a rep.') + .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] < 3) { + const embed = new EmbedBuilder() + .setTitle('Ajout de reputation') + .setDescription('❌ Vous devez mettre l\'id d\'une alliance.') + .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 alliance = await new Promise((resolve, reject) => { + db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]], (err, row) => { + if (err) reject(err); + resolve(row); + }); + }); + 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.lastRep); + }); + }); + + if (!alliance) { + const embed = new EmbedBuilder() + .setTitle('Ajout de reputation') + .setDescription('❌ Alliance introuvable.') + .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 (user.lastArep > Date.now() - 1800000) { + const embed = new EmbedBuilder() + .setTitle('Ajout de reputation impossible') + .setDescription(`❌ Vous avez déjà ajouté une reputation récemment. Veuillez attendre \`${Math.floor((user.lastArep + 1800000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à 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 } }); + } else { + db.run(`UPDATE alliances SET reputation = reputation + 1 WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]]); + + const embed = new EmbedBuilder() + .setTitle('Ajout de reputation effectué') + .setDescription('💰 Vous avez ajouter `1` reputation à l\`alliance `' + args[0] + '`.') + .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 } }); + } + }, +}; \ No newline at end of file diff --git a/commands/Alliance/Awithdraw.js b/commands/Alliance/Awithdraw.js new file mode 100644 index 0000000..f46070f --- /dev/null +++ b/commands/Alliance/Awithdraw.js @@ -0,0 +1,123 @@ +const { EmbedBuilder } = require('discord.js'); +const db = require('../../fonctions/database.js'); +const embedColor = require('../../fonctions/embedColor.js'); + +module.exports = { + aliases: ['awh', 'awith', 'alliancewh', 'alliancewith'], + description: 'Récupere de l\'argent/des reputation dans la banque de votre alliance.', + emote: '💰', + utilisation: ' ', + permission: 0, + + async execute(message, args, client) { + if (args.length == 0) { + const embed = new EmbedBuilder() + .setTitle('Récuperation Impossible') + .setDescription('❌ Vous devez spécifier un type et un montant à récupérer (`awith coins 200`).') + .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[1] !== 'all' && isNaN(args[1])) { + const embed = new EmbedBuilder() + .setTitle('Récuperation Impossible') + .setDescription('❌ Vous devez spécifier un montant valide à récupérer.') + .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[1] < 1) { + const embed = new EmbedBuilder() + .setTitle('Récuperation Impossible') + .setDescription('❌ Vous devez récupérer au moins 1 coin/rep.') + .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 alliance = await new Promise((resolve, reject) => { + db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`, [message.guild.id, message.guild.id, message.author.id], (err, row) => { + if (err) reject(err); + resolve(row); + }); + }); + if (!alliance) { + const embed = new EmbedBuilder() + .setTitle('Récuperation Impossible') + .setDescription('❌ Vous n\'êtes pas dans une alliances.') + .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] == 'rep' || args[0] == 'r' || args[0] == 'reputation') { + let amout; + if (args[1] === 'all') { + amout = alliance.bank; + } else if (args[1] > alliance.bank) { + const embed = new EmbedBuilder() + .setTitle('Récuperation Impossible') + .setDescription('❌ Il n\'y a pas suffisament de reputation dans l\'alliance pour en recupéré autant.\n\n💰 Il y a actuellement `' + alliance.reputation + '`rep') + .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 { + amout = args[1]; + } + + db.run(`UPDATE users SET reputation = reputation + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]); + db.run(`UPDATE alliances SET reputation = reputation - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]); + + const embed = new EmbedBuilder() + .setTitle('Récuperation Effectué') + .setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.') + .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[1] == 'coin' || args[0] == 'c' || args[0] == 'coins') { + let amout; + if (args[1] === 'all') { + amout = alliance.bank; + } else if (args[1] > alliance.bank) { + const embed = new EmbedBuilder() + .setTitle('Récuperation Impossible') + .setDescription('❌ Il n\'y a pas suffisament de coins dans l\'alliance pour récupérer cette somme.\n\n💰 il y a actuellement `' + alliance.bank + '`coins') + .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 { + amout = args[1]; + } + + db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]); + db.run(`UPDATE alliances SET bank = bank - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]); + + const embed = new EmbedBuilder() + .setTitle('Récuperation Effectué') + .setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.') + .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 embed = new EmbedBuilder() + .setTitle('Récuperation Impossible') + .setDescription('❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith `)') + .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 } }); + } + } +}; \ No newline at end of file diff --git a/commands/Alliance/alliance.js b/commands/Alliance/alliance.js index 03fdb86..239e7ec 100644 --- a/commands/Alliance/alliance.js +++ b/commands/Alliance/alliance.js @@ -45,7 +45,7 @@ module.exports = { const embed = new EmbedBuilder() .setTitle('🛡️ Informations de `' + alliance.name + '`:') - .setDescription(`**Id:** \`${alliance.id}\`\n**Description:** \`${alliance.description}\`\n**Banque:** \`${alliance.bank}\`coins\n**Reputation:** \`${alliance.reputation}\`\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.allianceRole}:** <@${member.userId}>`).join('\n')}\n`) + .setDescription(`**Id:** \`${alliance.id}\`\n**Description:** \`${alliance.description}\`\n**Banque:** \`${alliance.bank}\`coins => Tout le monde peux recupéré ces coins.\n**Reputation:** \`${alliance.reputation} => Tout le monde peux recupéré ces reputations\`\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.allianceRole}:** <@${member.userId}>`).join('\n')}\n`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });