const sqlite3 = require('sqlite3').verbose(); const { EmbedBuilder } = require('discord.js'); module.exports = { name: 'bl', aliases: ['blacklist', 'blacklistlist', 'bliste'], description: 'AJouter ou affiché la list des blacklist', emote: '🚫', utilisation: 'bl [@user]', category: 'gestion', async execute(message, args, client) { const db = new sqlite3.Database('myDatabase.db'); const botId = message.client.user.id; const user = message.mentions.users.first() || (args[0] && client.users.cache.get(args[0])); if (user) { let data = await new Promise((resolve, reject) => { db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { if (err) { console.error(err.message); reject(err); } resolve(row ? JSON.parse(row.value) : {}); }); }); if (!data.blacklist) { data.blacklist = {}; } data.blacklist[user.id] = true; db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => { if (err) { console.error(err.message); } }); let successfulBans = 0; try { if (client.guilds && client.guilds.cache) { for (const guild of client.guilds.cache.values()) { const member = await guild.members.fetch(user.id).catch(() => null); if (member && !member.banned) { await guild.members.ban(user.id, { reason: 'Blacklisted by bot owner' }); successfulBans++; } } } } catch (error) { console.error(error); } // Informe l'utilisateur que l'opération a réussi message.reply(`L'utilisateur <@${user.id}> a été ajouté à la blacklist et a été banni de ${successfulBans} serveurs.`); } else { // Récupère les données existantes de la base de données let data = await new Promise((resolve, reject) => { db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { if (err) { console.error(err.message); reject(err); } resolve(row ? JSON.parse(row.value) : {}); }); }); // Récupère la liste noire spécifique à partir des données const blacklist = data.blacklist || {}; // Crée un embed pour afficher la liste noire const embed = new EmbedBuilder() .setTitle('Liste des blacklist') .setDescription(Object.keys(blacklist).map(bllist => `<@${bllist}>`).join('\n') || "Aucun personne n'est blacklist") .setColor('#0099ff'); // Envoie l'embed dans le canal message.channel.send({ embeds: [embed] }); } }, };