From 868e56dfded8be5cb784956ff54bc6e51dbac6e2 Mon Sep 17 00:00:00 2001 From: *x1 Date: Mon, 27 May 2024 11:12:45 +0200 Subject: [PATCH] =?UTF-8?q?Add=20:=20cmd=20hack=20(co=C3=BBt=204rep=20mais?= =?UTF-8?q?=20ouvert=20a=20tous)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commands/bot control/help.js | 2 +- commands/jobs/hack.js | 118 +++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 commands/jobs/hack.js diff --git a/commands/bot control/help.js b/commands/bot control/help.js index 5615db6..c152f6d 100644 --- a/commands/bot control/help.js +++ b/commands/bot control/help.js @@ -97,7 +97,7 @@ module.exports = { const embedPage5 = new EmbedBuilder() .setTitle('🏭 Metier et capacitĂ©') .setThumbnail(message.guild.iconURL()) - .setDescription(`page 5`) + .setDescription(commandsList(client, 'jobs')) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Page 5/10 | DemandĂ© par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); diff --git a/commands/jobs/hack.js b/commands/jobs/hack.js new file mode 100644 index 0000000..020efa7 --- /dev/null +++ b/commands/jobs/hack.js @@ -0,0 +1,118 @@ +const { EmbedBuilder } = require('discord.js'); +const db = require('../../fonctions/database.js'); +const embedColor = require('../../fonctions/embedColor.js'); + +module.exports = { + aliases: ['hack'], + description: 'Supprime un cadenas Ă  une team. (coĂ»t : 4reputation)', + emote: '🔓', + utilisation: '', + permission: 0, + + async execute(message, args, client) { + if (args.length > 0) { + const teamID = args[0].toLowerCase(); + + 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 userRep = user.reputation + if (userRep < 4) { + const embed = new EmbedBuilder() + .setTitle('Hack Impossible') + .setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais vous n'avez que \`${userRep}\` reputation`) + .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 lastHack = user.lastHack + + const team = await new Promise((resolve, reject) => { + db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, teamID], (err, row) => { + if (err) reject(err); + resolve(row); + }); + }); + + if (lastHack > Date.now() - 7200000) { + const embed = new EmbedBuilder() + .setTitle('Hack Impossible') + .setDescription(`❌ Vous avez dĂ©jĂ  hack une team rĂ©cemment. Veuillez attendre ${Math.floor((lastHack + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation Ă  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 } }); + } + + db.run(`UPDATE users SET lastHack =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => { + if (err) { + console.log(`${err}`.red) + } + }); + db.run(`UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { + if (err) { + console.log(`${err}`.red) + } + }); + + if (Math.floor(Math.random() * 5) <= 1) { + db.run(`UPDATE teams SET padlock = padlock - 1 WHERE guildId =? AND id =?`, [message.guild.id, teamID], (err) => { + if (err) { + console.log(`${err}`.red) + } + }); + + const embed = new EmbedBuilder() + .setTitle('Hack rĂ©ussi !') + .setDescription('Vous avez cassĂ©(e) un cadenas de la team `' + team.name + '`, cette team Ă  maintement `' + team.padlock - 1 + '` cadenas !') + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage() + .setFooter({ text: `DemandĂ© par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + + if (team.padlock == 1) { + db.run(`UPDATE users SET bank =? WHERE guildId =? AND userId =?`, [user.bank + team.bank, message.guild.id, message.author.id], (err) => { + if (err) { + console.log(`${err}`.red) + } + }); + db.run(`UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { + if (err) { + console.log(`${err}`.red) + } + }); + + const embed2 = new EmbedBuilder() + .setTitle('Vole de la banque !') + .setDescription('La team n\'a plus de cadenas ! Vous avez donc recupĂ©rĂ© tout l\'argent de la bank (`' + team.bank + '`coins) !') + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage() + .setFooter({ text: `DemandĂ© par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + + message.reply({ embeds: [embed, embed2], allowedMentions: { repliedUser: false } }); + } + else { + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + } + } + else { + const embed = new EmbedBuilder() + .setTitle('Erreur lors du hack !') + .setDescription('Vous n\'avez pas reussi Ă  casser un cadenas de la team `' + team.name + '`, qui Ă  donc, toujours, `' + team.padlock + '` cadenas.') + .setColor(await embedColor(message.author.id, message.guild.id)) + .setTimestamp() + .setImage() + .setFooter({ text: `DemandĂ© par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); + } + } + }, +}; \ No newline at end of file