const {EmbedBuilder , PermissionsBitField , Events } = require('discord.js'); const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('myDatabase.db'); module.exports = { name: Events.GuildMemberUpdate, async execute(oldMember, newMember, client) { const guildId = newMember.guild.id if (!oldMember.permissions.has(PermissionsBitField.Flags.Administrator) && newMember.permissions.has(PermissionsBitField.Flags.Administrator)) { 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[newMember.guild.id]) { data[newMember.guild.id] = {}; } if (data[newMember.guild.id].alerte === 'on') { const raidlogChannelId = data[newMember.guild.id].raidlog; const raidlogChannel = newMember.guild.channels.cache.get(raidlogChannelId); const raidMessage = data[newMember.guild.id].raidping || 'Aucun message de raid configuré.'; if (raidlogChannel) { const embed = new EmbedBuilder() .setTitle('Alerte de permissions') .setDescription(`${newMember.user.tag} a reçu des permissions d'administrateur.`) .setColor(0xff0000); try { await raidlogChannel.send({ content: raidMessage, embeds: [embed] }); } catch (error) { } } } } }, };