diff --git a/commands/casino/rep.js b/commands/casino/rep.js new file mode 100644 index 0000000..58e9505 --- /dev/null +++ b/commands/casino/rep.js @@ -0,0 +1,64 @@ +const { EmbedBuilder } = require('discord.js'); +const db = require('../../fonctions/database.js'); +const embedColor = require('../../fonctions/embedColor.js'); + +module.exports = { + aliases: ['reputation'], + description: `Ajoute un point de reputation a un membre. (Ne pas confondre avec ${db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [message.guild.id, 'prefix'])?.value || '&'}trep qui ajoute une reputation a une team)`, + emote: '➕', + utilisation: '', + permission: 0, + + async execute(message, args, client) { + if (args.length > 0) { + const userArgs = args[0].toLowerCase() + const userID = userArgs.replace(`<`, ``).replace(`@`, ``).replace(`>`, ``) + + const author = 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 lastRep = author.lastRep + const user = await new Promise((resolve, reject) => { + db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userID], (err, row) => { + if (err) reject(err); + resolve(row); + }); + }); + + if (lastRep > Date.now() - 5400000) { + const embed = new EmbedBuilder() + .setTitle('Ajout Impossible') + .setDescription(`❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastRep + 5400000 - 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 lastRep =? 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 + 1 WHERE guildId =? AND userId =?`, [message.guild.id, userID], (err) => { + if (err) { + console.log(`${err}`.red) + } + }); + + const embed = new EmbedBuilder() + .setTitle('Reputation ajouté !') + .setDescription('Vous avez ajouter une reputation à <@' + userID + '>, qui a maintement `' + user.reputation + 1 + '` reputation !') + .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 } }); + } + }, +}; \ No newline at end of file