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.`, emote: "➕", utilisation: "", permission: 0, async execute(message, args, client) { const member = message.mentions.members.first()?.id || args[0]; if (args.length < 1 && !member) { return message.reply({ embeds: [ new EmbedBuilder() .setTitle("Erreur") .setDescription("❌ Veuillez spécifier un membre du serveur.") .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL(), }), ], allowedMentions: { repliedUser: false }, }); } const lastRep = 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 (lastRep > Date.now() - 7200000) { return message.reply({ embeds: [ 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(), }), ], allowedMentions: { repliedUser: false }, }); } const userReputation = await new Promise((resolve, reject) => { db.get( `SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member], async (err, row) => { if (err) reject(err); if (!row) { return message.reply({ embeds: [ new EmbedBuilder() .setTitle("Erreur") .setDescription("❌ L'utilisateur spécifié n'existe pas.") .setColor( await embedColor(message.author.id, message.guild.id), ) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL(), }), ], allowedMentions: { repliedUser: false }, }); } resolve(parseInt(row.reputation)); }, ); }); if (member === message.author.id) { return message.reply({ embeds: [ new EmbedBuilder() .setTitle("Erreur") .setDescription( "❌ Vous ne pouvez pas vous donner une réputation à vous-même.", ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL(), }), ], 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, member], (err) => { if (err) { console.log(`${err}`.red); } }, ); message.reply({ embeds: [ new EmbedBuilder() .setTitle("Reputation ajouté !") .setDescription( "Vous avez ajouter une reputation à <@" + member + ">, qui a maintement `" + (userReputation + 1) + "` reputation !", ) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL(), }), ], allowedMentions: { repliedUser: false }, }); }, };