const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('myDatabase.db'); const { Events } = require("discord.js"); module.exports = { name: Events.MessageReactionAdd, async execute(reaction, user, client) { if (user.bot) return; const messageId = reaction.message.id; const emoji = reaction.emoji.toString(); 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) : {}); }); }); const roleDataArray = data[reaction.message.guild.id]?.rolereact?.[messageId]; if (!Array.isArray(roleDataArray)) { console.error('Expected an array of role data objects, but received something else.'); return; } const roleData = roleDataArray.find(r => r.emoji === emoji); if (!roleData) return; const role = reaction.message.guild.roles.cache.get(roleData.roleId); if (!role) return; const member = reaction.message.guild.members.cache.get(user.id); if (!member) return; await member.roles.add(role); }, };