diff --git a/commands/moderation/prison.js b/commands/moderation/prison.js index 97d93ef..79be95a 100644 --- a/commands/moderation/prison.js +++ b/commands/moderation/prison.js @@ -1,6 +1,6 @@ const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('myDatabase.db'); - +const {EmbedBuilder} = require("discord.js"); module.exports = { name: 'prison', description: "Configure le salon de prison pour le serveur.", @@ -48,6 +48,9 @@ module.exports = { if (!users) { return message.reply("Veuillez mentionner un utilisateur valide."); } + if (users.id === message.author.id) { + return message.reply("Vous ne pouvez pas vous libérer"); + } const prisonchannelnoremove = {}; try { message.guild.channels.cache.forEach(channel => { @@ -71,11 +74,40 @@ module.exports = { } else { message.reply(`👮 <@${users.id}> est libéré de prison`); } + } else if (args[0] === "list") { + 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) : {}); + }); + }); + data[message.guild.id] = data[message.guild.id] || {}; + data[message.guild.id].prisonlist = data[message.guild.id].prisonlist || []; + const embed = new EmbedBuilder() + .setTitle("Liste des utilisateurs en prison") + .setColor('#0099ff'); + + if (data[message.guild.id].prisonlist.length === 0) { + embed.addFields({name: " " , value :"Personne n'est en prison"}) + } else { + data[message.guild.id].prisonlist.forEach((userId, index) => { + embed.addFields({ name: `${index + 1}`, value: `<@${userId}>`}); + }); +} + + // Envoyer l'embed + message.channel.send({ embeds: [embed] }); }else { const users = message.mentions.users.first() || message.guild.members.cache.get(args[1]) if (!users) { return message.reply("Veuillez mentionner un utilisateur valide."); } + if (users.id === message.author.id) { + return message.reply("Vous ne pouvez pas vous mettre en prison"); + } let data = await new Promise((resolve, reject) => { db.get('SELECT value FROM gestion WHERE id = ?', [message.client.user.id], (err, row) => { if (err) { @@ -98,6 +130,16 @@ module.exports = { channel.permissionOverwrites.edit(users, { "ViewChannel": false }); } }); + data[message.guild.id] = data[message.guild.id] || {}; + data[message.guild.id].prisonlist = data[message.guild.id].prisonlist || []; + data[message.guild.id].prisonlist.push(users.id); + db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [message.client.user.id, 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(`🚨 <@${users.id}> est maintenant en prison`); } catch (err) { message.reply(`Je n'est pas la permission de mettre cette personne en prison`); diff --git a/commands/utils/wiki.js b/commands/utils/wiki.js index 313fef7..9564bb5 100644 --- a/commands/utils/wiki.js +++ b/commands/utils/wiki.js @@ -21,7 +21,6 @@ module.exports = { const pageId = Object.keys(pages)[0]; const extract = pages[pageId].extract; - // Utiliser le premier résultat sans filtrer par le nombre de mots const firstResult = pages[pageId]; const embed = new Discord.EmbedBuilder() .setColor('#0099ff')