mirror of
https://github.com/arthur-pbty/bot-discord-coins.git
synced 2026-06-16 00:02:37 +02:00
Add braquage
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['braquage'],
|
||||
description: 'Tente un braquage. (cout : 5coins)',
|
||||
emote: '🔐',
|
||||
utilisation: '<@membre>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
|
||||
/////////////////////////////// Calcule des données de la cible ////////////////////////////////////////////////
|
||||
|
||||
const cible = message.mentions.users.first();
|
||||
if (!cible) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Erreur')
|
||||
.setDescription('❌ Vous devez mentionner un membre.')
|
||||
.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 cibleBD = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, cible.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
if (cibleBD.bank <= 100) {
|
||||
return message.reply('votre cible n\'a pas suffisament de coins en bank pour etre voler.')
|
||||
}
|
||||
|
||||
/////////////////////////////// Calcule des données du message.author /////////////////////////////////////////
|
||||
|
||||
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 usercoinsEnBank = user.bank
|
||||
if (usercoinsEnBank < 8) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Braquage Impossible')
|
||||
.setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`8\` reputation mais vous n'avez que \`${usercoinsEnBank}\`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 lastBraquage = user.lastBraquage
|
||||
if (lastBraquage > Date.now() - 7200000) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Braquage Impossible')
|
||||
.setDescription(`❌ Vous avez déjà braquage récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à 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 } });
|
||||
}
|
||||
|
||||
///////////////////////////////// Payage + MaJ du braquage /////////////////////////////////////////////////////
|
||||
|
||||
db.run(`UPDATE users SET reputation = reputation - 5 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => {
|
||||
if (err) {
|
||||
console.log(`${err}`.red)
|
||||
}
|
||||
});
|
||||
db.run(`UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => {
|
||||
if (err) {
|
||||
console.log(`${err}`.red)
|
||||
}
|
||||
});
|
||||
|
||||
/////////////////////////////////// Affichage du 1er msg ///////////////////////////////////////////////////////
|
||||
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🔐 Braquage')
|
||||
.setImage('https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif')
|
||||
.setDescription(`Vous braquer la banque de ${cible}. La porte du coffre s'ouvre...\nRésultat dans 5 secondes...`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
await new Promise(resolve => setTimeout(resolve, 5000));
|
||||
|
||||
/////////////////////////////////// Calcule des resultats ///////////////////////////////////////////////////////
|
||||
|
||||
const result = Math.floor(Math.random() * 4);
|
||||
let gain = 0;
|
||||
let coinsEnBank = 0;
|
||||
if (result === 0) {
|
||||
gain = 1;
|
||||
coinsEnBank = Math.floor(Math.random() * (cibleBD.bank / 2));
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
db.run(`UPDATE users SET bank = bank - ? WHERE userId = ? AND guildId = ?`, [coinsEnBank, message.author.id, message.guild.id], (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
await new Promise((resolve, reject) => {
|
||||
db.run(`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, [coinsEnBank, cible.id, message.guild.id], (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
gain = 0;
|
||||
coinsEnBank = 0
|
||||
await new Promise((resolve, reject) => {
|
||||
db.run(`UPDATE users SET bank = bank - 3 WHERE userId = ? AND guildId = ?`, [cible.id, message.guild.id], (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//////////////////////////////////// Affichage de la reponse ///////////////////////////////////////////////////
|
||||
|
||||
if (gain == 1) {
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🔐 Braquage')
|
||||
.setDescription(`Vous avez braquer <@${cible.id}> et vous n'etes pas tomber sur un agent de securité. Vous avez gagné \`${coinsEnBank}\`coins !`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
return
|
||||
} else {
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🔐 Braquage')
|
||||
.setDescription(`Vous avez braquer ${args[0]} mais vous etes tomber sur un policier. Vous avez non seulement perdu votre gain mais le policier vous a obliger a payer \`3\`reputation de dedommagement`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -29,6 +29,7 @@ db.run(`CREATE TABLE IF NOT EXISTS users (
|
||||
lastTrep INTERGER DEFAULT 0,
|
||||
lastHack INTERGER DEFAULT 0,
|
||||
lastKill INTERGER DEFAULT 0,
|
||||
lastBraquage INTERGER DEFAULT 0,
|
||||
job TEXT,
|
||||
teamId TEXT,
|
||||
teamRole TEXT,
|
||||
|
||||
Reference in New Issue
Block a user