Files
bot-discord-coins/commands/casino/rep.js
T
2024-05-27 21:44:43 +02:00

92 lines
3.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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: '<membre-id|@membre>',
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 } });
},
};