const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('myDatabase.db'); module.exports = { name: 'antilink', description: 'Active ou désactive la protection contre les liens dans le serveur.', utilisation: '+antilink on/off all/invite', category: 'antiraid', async execute(message, args, client) { const botId = client.user.id; const guildId = message.guild.id; const status = args[0]; const type = args[1]; if (!status || !type || (status !== 'on' && status !== 'off'&& status !== 'max') || (type !== 'all' && type !== 'invite')) { return message.reply('Veuillez utiliser la commande correctement: `+antilink on/off all/invite`.'); } 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[guildId]) { data[guildId] = {}; } data[guildId].antilink = { status: status, type: type }; db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], function(err) { if (err) { console.error(err.message); return message.reply('Une erreur est survenue lors de la mise à jour de la configuration.'); } message.reply(`La protection contre les liens a été ${status === 'on' ? 'activée' : status === 'max' ? 'maximisée' : 'désactivée'} pour les ${type === 'all' ? 'tous les liens' : type === 'invite' ? 'invitations' : 'aucun type spécifié'}.`); }); }, };