diff --git a/commands/fonction.js b/commands/fonction.js new file mode 100644 index 0000000..3dda0dd --- /dev/null +++ b/commands/fonction.js @@ -0,0 +1,29 @@ +const db = require('quick.db'); +const GestionDb = new db.table('gestion') + +async function getPermissionLevel(member, client) { + const botId = client.user.id; + const buyerId = ['1003985920162287696', '671763971803447298']; + let owners = await GestionDb.get(`${botId}.owners`) || {}; + if (buyerId.includes(member.id)) { + return 11; + } + if (owners[member.id]) { + return 10; + } + let highestPermission = 0; + for (let i = 1; i <= 9; i++) { + const roleIds = await GestionDb.get(`${botId}.${member.guild.id}.p${i}`); + if (roleIds) { + // Si roleIds n'est pas un tableau, le convertir en tableau + if (!Array.isArray(roleIds)) { + roleIds = [roleIds]; + } + if (roleIds.some(id => member.roles.cache.has(id))) { + highestPermission = Math.max(highestPermission, i); + } + } + } + return highestPermission; +} +module.exports = { getPermissionLevel }; \ No newline at end of file diff --git a/commands/owner/bl.js b/commands/owner/bl.js new file mode 100644 index 0000000..b3cad7e --- /dev/null +++ b/commands/owner/bl.js @@ -0,0 +1,47 @@ +const db = require('quick.db'); +const GestionDb = new db.table("gestion"); +const { EmbedBuilder } = require('discord.js'); + +module.exports = { + name: 'bl', + description: 'AJouter ou affiché la list des blacklist', + emote: '🚫', + utilisation: 'bl [@user]', + category: 'gestion', + async execute(message, args, client) { + const user = message.mentions.users.first() || (args[0] && client.users.cache.get(args[0])); + const botId = message.client.user.id; + + if (user) { + let bl = await GestionDb.get(`${botId}.bl`) || {}; + bl[user.id] = true; + await GestionDb.set(`${botId}.bl`, bl); + + 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++; + } + } + } else { + + } + } catch (error) { + } + + message.reply(`L'utilisateur <@${user.id}> a été ajouté à la blacklist et a été banni de ${successfulBans} serveurs.`); + } else { + let bl = await GestionDb.get(`${botId}.owners`) || {}; + const embed = new EmbedBuilder() + .setTitle('Liste des blacklist') + .setDescription(Object.keys(bl).map(bllist => `<@${bllist}>`).join('\n') || "Aucun personne n'est blacklist") + .setColor('#0099ff'); + + message.channel.send({ embeds: [embed] }); + } + }, +}; \ No newline at end of file diff --git a/commands/owner/clearowner.js b/commands/owner/clearowner.js new file mode 100644 index 0000000..9713e29 --- /dev/null +++ b/commands/owner/clearowner.js @@ -0,0 +1,16 @@ +const { MessageEmbed } = require('discord.js'); +const db = require('quick.db'); +const GestionDb = new db.table("gestion"); + +module.exports = { + name: 'clearowner', + description: 'Supprimer tout les owners', + emote: '👑', + utilisation: 'clearowner', + category: 'buyer', + async execute(message, args, client) { + const botId = client.user.id; + GestionDb.set(`${botId}.owners`, {}); + message.reply("Toutes les owner ony etaient supprimer") + }, +}; \ No newline at end of file diff --git a/commands/owner/clearwl.js b/commands/owner/clearwl.js new file mode 100644 index 0000000..c4c5953 --- /dev/null +++ b/commands/owner/clearwl.js @@ -0,0 +1,15 @@ +const { MessageEmbed } = require('discord.js'); +const db = require('quick.db'); +const GestionDb = new db.table("gestion"); + +module.exports = { + name: 'clearwl', + description: 'Supprimer tout la whitelist', + async execute(message, args, client) { + const botId = message.client.user.id; + const guildId = message.guild.id; + GestionDb.set(`${botId}.${guildId}.whitelist`, {}); + console.log("whitelist renouveler") + message.reply("Toutes la whitelist a etait supprimer") + }, +}; \ No newline at end of file diff --git a/commands/owner/owner.js b/commands/owner/owner.js new file mode 100644 index 0000000..7e10357 --- /dev/null +++ b/commands/owner/owner.js @@ -0,0 +1,31 @@ +const db = require('quick.db'); +const GestionDb = new db.table("gestion"); +const { EmbedBuilder } = require('discord.js'); + +module.exports = { + name: 'owner', + description: 'Affiche la liste des propriétaires ou ajoute un propriétaire', + emote: '👑', + utilisation: 'owner <@user>', + category: 'buyer', + async execute(message, client) { + const user = message.mentions.users.first(); + const botId = message.client.user.id; + + if (user) { + let owners = await GestionDb.get(`${botId}.owners`) || {}; + owners[user.id] = true; + await GestionDb.set(`${botId}.owners`, owners); + + message.reply(`L'utilisateur <@${user.id}> a été ajouté à la liste des owners.`); + } else { + let owners = await GestionDb.get(`${botId}.owners`) || {}; + const embed = new EmbedBuilder() + .setTitle('Liste des owner') + .setDescription(Object.keys(owners).map(ownerId => `<@${ownerId}>`).join('\n') || 'Aucun owner est dans la liste') + .setColor('#0099ff'); + + message.channel.send({ embeds: [embed] }); + } + }, +}; \ No newline at end of file diff --git a/commands/owner/unbl.js b/commands/owner/unbl.js new file mode 100644 index 0000000..47afa8b --- /dev/null +++ b/commands/owner/unbl.js @@ -0,0 +1,28 @@ +const db = require('quick.db'); +const GestionDb = new db.table("gestion"); +const { EmbedBuilder } = require('discord.js'); + +module.exports = { + name: 'unbl', + description: 'ENlevé une personne de la blacklist', + emote: '🚫', + utilisation: 'unbl <@user>', + category: 'gestion', + async execute(message, args, client) { + const user = message.mentions.users.first() || (args[0] && client.users.cache.get(args[0])); + const botId = message.client.user.id; + if (user) { + let bl = await GestionDb.get(`${botId}.bl`) || {}; + + if (bl[user.id]) { + delete bl[user.id]; + await GestionDb.set(`${botId}.bl`, bl); + message.reply(`L'utilisateur <@${user.id}> a été enlevé de la blacklist.`); + } else { + message.reply(`L'utilisateur <@${user.id}> n'est pas sur la blacklist.`); + } + } else { + message.reply('Veuillez mentionner un utilisateur à enlever de la blacklist.'); + } + }, +}; \ No newline at end of file diff --git a/commands/owner/unowner.js b/commands/owner/unowner.js new file mode 100644 index 0000000..4148e80 --- /dev/null +++ b/commands/owner/unowner.js @@ -0,0 +1,27 @@ +const db = require('quick.db'); +const GestionDb = new db.table("gestion"); + +module.exports = { + name: 'unowner', + description: 'Supprime un propriétaire', + emote: '👑', + utilisation: 'unowner <@user>', + category: 'buyer', + async execute(message) { + const botId = message.client.user.id; + const user = message.mentions.users.first(); + if (!user) { + return message.reply('Veuillez mentionner un utilisateur à supprimer de la liste des propriétaires.'); + } + + let owners = await GestionDb.get(`${botId}.owners`) || {}; + + if (owners[user.id]) { + delete owners[user.id]; + await GestionDb.set(`${botId}.owners`, owners); + message.reply(`L'utilisateur <@${user.id}> a été supprimé de la liste des propriétaires.`); + } else { + message.reply('Cet utilisateur n\'est pas un owner.'); + } + }, +}; \ No newline at end of file diff --git a/commands/owner/unwl.js b/commands/owner/unwl.js new file mode 100644 index 0000000..edecf8b --- /dev/null +++ b/commands/owner/unwl.js @@ -0,0 +1,25 @@ +const db = require('quick.db'); +const GestionDb = new db.table("gestion"); + +module.exports = { + name: 'unwl', + description: 'Retirer un utilisateur de la liste blanche', + async execute(message, args) { + const botId = message.client.user.id; + const guildId = message.guild.id; + if (args.length === 0) { + return message.reply('Veuillez mentionner un utilisateur à retirer de la liste blanche.'); + } + + const userId = args[0].replace(/<@!?(\d+)>/, '$1'); + let whitelist = await GestionDb.get(`${botId}.${guildId}.whitelist`) || {}; + + if (whitelist[userId]) { + delete whitelist[userId]; + await GestionDb.set(`${botId}.${guildId}.whitelist`, whitelist); + message.reply('Utilisateur retiré de la liste blanche.'); + } else { + message.reply('Cet utilisateur n\'est pas sur la liste blanche.'); + } + }, +}; \ No newline at end of file diff --git a/commands/owner/wl.js b/commands/owner/wl.js new file mode 100644 index 0000000..8e63b6a --- /dev/null +++ b/commands/owner/wl.js @@ -0,0 +1,33 @@ +const { EmbedBuilder } = require('discord.js'); +const db = require('quick.db'); +const GestionDb = new db.table("gestion"); + +module.exports = { + name: 'wl', + description: 'Ajouter un utilisateur à la liste blanche ou afficher la liste blanche', + async execute(message, args, client) { + const botId = message.client.user.id; + const guildId = message.guild.id; + + if (args.length > 0) { + const userId = args[0].replace(/<@!?(\d+)>/, '$1'); + let whitelist = await GestionDb.get(`${botId}.${guildId}.whitelist`) || {}; + + if (!whitelist[userId]) { + whitelist[userId] = true; + await GestionDb.set(`${botId}.${guildId}.whitelist`, whitelist); + message.reply('Utilisateur ajouté à la liste blanche.'); + } else { + message.reply('Cet utilisateur est déjà sur la liste blanche.'); + } + } else { + let whitelist = await GestionDb.get(`${botId}.${guildId}.whitelist`) || {}; + const embed = new EmbedBuilder() + .setTitle('Liste blanche') + .setDescription(Object.keys(whitelist).map(id => `<@${id}>`).join('\n') || 'Aucun utilisateur sur la liste blanche') + .setFooter({ text: 'design by valou336', iconURL: client.user.displayAvatarURL({dynamic: true})}); + + message.channel.send({ embeds: [embed] }); + } + }, +}; \ No newline at end of file diff --git a/commands/utils/help.js b/commands/utils/help.js index d5bf6d3..aebb9c8 100644 --- a/commands/utils/help.js +++ b/commands/utils/help.js @@ -36,6 +36,8 @@ module.exports = { const categories = { antiraid: [], botcontrol: [], + moderation: [], + buyer: [], game: [], gestion: [], utils: [], diff --git a/commands/utils/poll.js b/commands/utils/poll.js index 437c7a7..92f8810 100644 --- a/commands/utils/poll.js +++ b/commands/utils/poll.js @@ -14,16 +14,16 @@ module.exports = { const slectMenu = new StringSelectMenuBuilder() .setCustomId('slectMenu') - .setPlaceholder('Modifier le sondage') + .setPlaceholder('📝 Modifier le sondage') .addOptions([ - { label: 'Modifier le titre', value: 'title' }, - { label: 'Mofifier la description (none pour enlever)', value: 'description' }, - { label: 'Ajouter une réponses', value: 'addResponses' }, - { label: 'Retirer une réponses', value: 'removeResponses' }, - { label: 'Modifier le footer (none pour enlever)', value: 'footer'}, - { label: 'Changer le salon', value: 'changeChannel'}, - { label: 'Envoyer', value: 'send' }, - { label: 'Annuler', value: 'cancel'} + { label: '📝 Modifier le titre', value: 'title' }, + { label: '📝 Mofifier la description (none pour enlever)', value: 'description' }, + { label: '➕ Ajouter une réponses', value: 'addResponses' }, + { label: '➖ Retirer une réponses', value: 'removeResponses' }, + { label: '📝 Modifier le footer (none pour enlever)', value: 'footer'}, + { label: '🔄 Changer le salon', value: 'changeChannel'}, + { label: '✅ Envoyer', value: 'send' }, + { label: '❌ Annuler', value: 'cancel'} ]); const row = new ActionRowBuilder() diff --git a/permissions.json b/permissions.json index d0c1344..c4098db 100644 --- a/permissions.json +++ b/permissions.json @@ -112,5 +112,7 @@ "play": 5, "set": 5, "poll": 5, - "userinfo": 5 + "userinfo": 5, + "bl": 10, + "unbl": 10 } \ No newline at end of file