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 } }); }, };