Files
gestion/events/auto/addreact.js
T
2024-03-01 15:55:17 +01:00

38 lines
1.4 KiB
JavaScript

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