mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-06 14:20:38 +02:00
62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
const sqlite3 = require('sqlite3').verbose();
|
|
const db = new sqlite3.Database('myDatabase.db');
|
|
|
|
module.exports = {
|
|
name: 'rolereact',
|
|
description: 'Associate an emoji with a role and add the reaction to a message',
|
|
emote: '🎭',
|
|
utilisation: '+rolereact @role/id <emojie> <messageid>',
|
|
category: 'gestion',
|
|
async execute(message, args, client) {
|
|
if (args.length < 3) {
|
|
return message.reply('Veuillez fournir un rôle, un message ID et un emoji.');
|
|
}
|
|
|
|
const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]);
|
|
if (!role) {
|
|
return message.reply('Rôle invalide. Veuillez entrer un ID de rôle valide ou mentionner un rôle existant.');
|
|
}
|
|
|
|
const emoji = args[1];
|
|
const messageId = args[2];
|
|
if (!/^\d+$/.test(messageId)) {
|
|
return message.reply('Veuillez fournir un ID de message valide.');
|
|
}
|
|
|
|
let data = await new Promise((resolve, reject) => {
|
|
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
|
if (err) {
|
|
console.error(err.message);
|
|
reject(err);
|
|
}
|
|
resolve(row ? JSON.parse(row.value) : {});
|
|
});
|
|
});
|
|
|
|
if (!data[message.guild.id]) {
|
|
data[message.guild.id] = {};
|
|
}
|
|
if (!data[message.guild.id].rolereact) {
|
|
data[message.guild.id].rolereact = {};
|
|
}
|
|
if (!data[message.guild.id].rolereact[messageId]) {
|
|
data[message.guild.id].rolereact[messageId] = [];
|
|
}
|
|
data[message.guild.id].rolereact[messageId].push({ emoji, roleId: role.id });
|
|
|
|
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [client.user.id, JSON.stringify(data)], async (err) => {
|
|
if (err) {
|
|
console.error(err.message);
|
|
return message.reply('Une erreur s\'est produite lors de la mise à jour de la base de données.');
|
|
}
|
|
try {
|
|
const messageToReact = await message.channel.messages.fetch(messageId);
|
|
message.reply(`L'emoji ${emoji} a été associé au rôle ${role.name} pour le message ${messageToReact.url}.`);
|
|
await messageToReact.react(emoji);
|
|
} catch (error) {
|
|
message.reply('Une erreur est survenue lors de l\'ajout de la réaction au message.');
|
|
}
|
|
});
|
|
|
|
},
|
|
}; |