diff --git a/commands/antiraid/bunker.js b/commands/antiraid/bunker.js index 1ffd824..dc2bda1 100644 --- a/commands/antiraid/bunker.js +++ b/commands/antiraid/bunker.js @@ -1,4 +1,4 @@ -const { PermissionFlagsBits } = require('discord.js'); +const { PermissionsBitField } = require('discord.js'); module.exports = { name: 'bunker', description: 'Activer le bot bunker', @@ -7,27 +7,19 @@ module.exports = { category: 'antiraid', async execute(message, args, client) { const guild = message.guild; - const dangerousPermissions = [ - 'ADMINISTRATOR', 'VIEW_AUDIT_LOG', 'MANAGE_GUILD', 'MANAGE_ROLES', 'MANAGE_CHANNELS', 'KICK_MEMBERS', 'BAN_MEMBERS', - 'MANAGE_EMOJIS_AND_STICKERS', 'MANAGE_WEBHOOKS', 'MANAGE_MESSAGES', - 'MENTION_EVERYONE', 'MUTE_MEMBERS', 'DEAFEN_MEMBERS', 'MOVE_MEMBERS' + const dangerousPermissions = [ + PermissionsBitField.Flags.Administrator, + PermissionsBitField.Flags.ManageGuild, + PermissionsBitField.Flags.ManageRoles, + PermissionsBitField.Flags.ManageChannels, + PermissionsBitField.Flags.KickMembers, + PermissionsBitField.Flags.BanMembers, + PermissionsBitField.Flags.ManageWebhooks, + PermissionsBitField.Flags.MuteMembers, + PermissionsBitField.Flags.MentionEveryone, + PermissionsBitField.Flags.ManageEvents, + PermissionsBitField.Flags.ManageThreads, ]; - // const dangerousPermissions = [ - PermissionFlagsBits.FLAGS. - Permissions.FLAGS.VIEW_AUDIT_LOG, - Permissions.FLAGS.MANAGE_GUILD, - Permissions.FLAGS.MANAGE_ROLES, - Permissions.FLAGS.MANAGE_CHANNELS, - Permissions.FLAGS.KICK_MEMBERS, - Permissions.FLAGS.BAN_MEMBERS, - Permissions.FLAGS.MANAGE_EMOJIS_AND_STICKERS, - Permissions.FLAGS.MANAGE_WEBHOOKS, - Permissions.FLAGS.MANAGE_MESSAGES, - Permissions.FLAGS.MENTION_EVERYONE, - Permissions.FLAGS.MUTE_MEMBERS, - Permissions.FLAGS.DEAFEN_MEMBERS, - Permissions.FLAGS.MOVE_MEMBERS - //]; // Kick all bots await Promise.all(guild.members.cache.filter(member => member.user.bot).map(member => member.kick())); diff --git a/commands/logs/alerte.js b/commands/logs/alerte.js new file mode 100644 index 0000000..2f91811 --- /dev/null +++ b/commands/logs/alerte.js @@ -0,0 +1,40 @@ +const sqlite3 = require('sqlite3').verbose(); +const db = new sqlite3.Database('myDatabase.db'); + +module.exports = { + name: 'alerte', + description: 'Active ou désactive l\'alerte.', + category: 'gestion', + emote: '📢', + utilisation: '+alerte ', + async execute(message, args) { + if (!args.length) return message.reply('Veuillez spécifier "on" ou "off".'); + + const state = args[0].toLowerCase(); + if (state !== 'on' && state !== 'off') { + return message.reply('Veuillez spécifier "on" ou "off".'); + } + + let data = await new Promise((resolve, reject) => { + db.get('SELECT value FROM gestion WHERE id = ?', [message.client.user.id], (err, row) => { + if (err) { + console.error(err.message); + reject(err); + } + resolve(row ? JSON.parse(row.value) : {}); + }); + }); + if (!data[message.guild.id]) { + data[message.guild.id] = {}; + } + data[message.guild.id].alerte = state; + + db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [message.client.user.id, JSON.stringify(data)], function(err) { + if (err) { + return console.error(err.message); + } + }); + + message.reply(`L'alerte a été ${state === 'on' ? 'activée' : 'désactivée'}.`); + }, +}; \ No newline at end of file diff --git a/commands/logs/raidping.js b/commands/logs/raidping.js index 9dd8ee1..bc0db64 100644 --- a/commands/logs/raidping.js +++ b/commands/logs/raidping.js @@ -24,7 +24,7 @@ module.exports = { if (!data[message.guild.id]) { data[message.guild.id] = {}; } - data[message.guild.id].raidping = channelId; + data[message.guild.id].raidping = messageContent; db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [message.client.user.id, JSON.stringify(data)], function(err) { if (err) { diff --git a/events/antiraid.js/alerteping.js b/events/antiraid.js/alerteping.js new file mode 100644 index 0000000..2944a10 --- /dev/null +++ b/events/antiraid.js/alerteping.js @@ -0,0 +1,46 @@ +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 + console.log("dddddddd") + if (!oldMember.permissions.has(PermissionsBitField.Flags.Administrator) && newMember.permissions.has(PermissionsBitField.Flags.Administrator)) { + console.log('aaaaaa') + + + 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') { + console.log("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) { + } + } + } + } + }, +}; \ No newline at end of file