From 7ff8c0237f0d22e64aa5eb6708c651cf39bc64c1 Mon Sep 17 00:00:00 2001 From: VALOU3336 Date: Thu, 29 Feb 2024 22:40:42 +0100 Subject: [PATCH] upgrade wl et owner with best optimison with async fonction --- commands/moderation/hide.js | 2 +- commands/moderation/hideall.js | 2 +- commands/moderation/lock.js | 2 +- commands/moderation/lockall.js | 2 +- commands/moderation/unhide.js | 2 +- commands/moderation/unhideall.js | 2 +- commands/moderation/unlock.js | 2 +- commands/moderation/unlockall.js | 2 +- commands/owner/owner.js | 74 ++++++++++++++++--------------- commands/owner/unowner.js | 59 +++++++++++++++---------- commands/owner/unwl.js | 62 ++++++++++++++++---------- commands/owner/wl.js | 75 +++++++++++++++++--------------- 12 files changed, 162 insertions(+), 124 deletions(-) diff --git a/commands/moderation/hide.js b/commands/moderation/hide.js index cad5a47..3d511e9 100644 --- a/commands/moderation/hide.js +++ b/commands/moderation/hide.js @@ -3,7 +3,7 @@ module.exports = { description: "Enlève la possibilité de voir un salon spécifique.", category: 'moderation', emote: '👁️', - utilisation: '+hide [salon]', + utilisation: 'hide [salon]', async execute(message, args, client) { let channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) || message.channel; diff --git a/commands/moderation/hideall.js b/commands/moderation/hideall.js index d7803b7..c951624 100644 --- a/commands/moderation/hideall.js +++ b/commands/moderation/hideall.js @@ -3,7 +3,7 @@ module.exports = { description: "Enlève la possibilité de voir tous les salons.", category: 'moderation', emote: '👁️', - utilisation: '+hideall', + utilisation: 'hideall', async execute(message, args, client) { try { message.guild.channels.cache.forEach(channel => { diff --git a/commands/moderation/lock.js b/commands/moderation/lock.js index c2ed2ca..fe03fd6 100644 --- a/commands/moderation/lock.js +++ b/commands/moderation/lock.js @@ -3,7 +3,7 @@ module.exports = { description: "Bloque la possibilité de parler dans un salon spécifique.", category: 'moderation', emote: '🔒', - utilisation: '+lock [salon]', + utilisation: 'lock [salon]', async execute(message, args, client) { let channel = message.mentions.channels.first() ||message.guild.channels.cache.get(args[0]) || message.channel; diff --git a/commands/moderation/lockall.js b/commands/moderation/lockall.js index 0e02272..5c460d7 100644 --- a/commands/moderation/lockall.js +++ b/commands/moderation/lockall.js @@ -5,7 +5,7 @@ module.exports = { description: "Bloque la possibilité de parler dans tous les salons textuels du serveur.", category: 'moderation', emote: '🔒', - utilisation: '+lockall', + utilisation: 'lockall', async execute(message, args, client) { try { diff --git a/commands/moderation/unhide.js b/commands/moderation/unhide.js index 9472f26..df3ff3d 100644 --- a/commands/moderation/unhide.js +++ b/commands/moderation/unhide.js @@ -3,7 +3,7 @@ module.exports = { description: "Rend visible un salon spécifique.", category: 'moderation', emote: '👀', - utilisation: '+unhide [salon]', + utilisation: 'unhide [salon]', async execute(message, args, client) { let channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) || message.channel; diff --git a/commands/moderation/unhideall.js b/commands/moderation/unhideall.js index f5b75b3..8c7b29e 100644 --- a/commands/moderation/unhideall.js +++ b/commands/moderation/unhideall.js @@ -3,7 +3,7 @@ module.exports = { description: "Rend visible tous les salons.", category: 'moderation', emote: '👀', - utilisation: '+hundiall', + utilisation: 'hundiall', async execute(message, args, client) { try { message.guild.channels.cache.forEach(channel => { diff --git a/commands/moderation/unlock.js b/commands/moderation/unlock.js index 0e0e592..b212852 100644 --- a/commands/moderation/unlock.js +++ b/commands/moderation/unlock.js @@ -3,7 +3,7 @@ module.exports = { description: "Autorisé la possibilité de parler dans un salon spécifique.", category: 'moderation', emote: '🔓', - utilisation: '+unlock [salon]', + utilisation: 'unlock [salon]', async execute(message, args, client) { let channel = message.mentions.channels.first() ||message.guild.channels.cache.get(args[0]) || message.channel; diff --git a/commands/moderation/unlockall.js b/commands/moderation/unlockall.js index e2ad0a0..2776d4a 100644 --- a/commands/moderation/unlockall.js +++ b/commands/moderation/unlockall.js @@ -5,7 +5,7 @@ module.exports = { description: "Autorisé la possibilité de parler dans tous les salons textuels du serveur.", category: 'moderation', emote: '🔓', - utilisation: '+unlockall', + utilisation: 'unlockall', async execute(message, args, client) { try { diff --git a/commands/owner/owner.js b/commands/owner/owner.js index a469530..ef3b38c 100644 --- a/commands/owner/owner.js +++ b/commands/owner/owner.js @@ -1,5 +1,5 @@ const sqlite3 = require('sqlite3').verbose(); -const { EmbedBuilder } = require('discord.js'); +const { EmbedBuilder } = require('discord.js'); module.exports = { name: 'owner', @@ -9,45 +9,16 @@ module.exports = { utilisation: 'owner <@user>', category: 'buyer', - async execute(message, client) { + async execute(message) { const db = new sqlite3.Database('myDatabase.db'); const botId = message.client.user.id; const user = message.mentions.users.first(); 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.owners) { - data.owners = {}; - } - - data.owners[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 data = await addOwner(db, botId, user.id); message.reply(`L'utilisateur <@${user.id}> a été ajouté à la liste des owners.`); } else { - 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) : {}); - }); - }); - + let data = await getOwnerData(db, botId); const owners = data.owners || {}; const embed = new EmbedBuilder() .setTitle('Liste des owner') @@ -57,4 +28,39 @@ module.exports = { message.channel.send({ embeds: [embed] }); } }, -}; \ No newline at end of file +}; + +async function getOwnerData(db, botId) { + return new Promise((resolve, reject) => { + db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { + if (err) { + console.error(err.message); + reject(err); + } else { + const data = row ? JSON.parse(row.value) : {}; + data.owners = data.owners || {}; + resolve(data); + } + }); + }); +} +async function addOwner(db, botId, userId) { + let data = await getOwnerData(db, botId); + data.owners[userId] = true; + await updateOwnerData(db, botId, data); +} + +async function updateOwnerData(db, botId, data) { + return new Promise((resolve, reject) => { + db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { + if (err) { + console.error(err.message); + reject(err); + } else { + const data = row ? JSON.parse(row.value) : {}; + data.owners = data.owners || {}; // Ensure owners is always an object + resolve(data); + } + }); + }); +} \ No newline at end of file diff --git a/commands/owner/unowner.js b/commands/owner/unowner.js index 6affa1c..444453a 100644 --- a/commands/owner/unowner.js +++ b/commands/owner/unowner.js @@ -1,5 +1,4 @@ const sqlite3 = require('sqlite3').verbose(); -const { MessageEmbed } = require('discord.js'); module.exports = { name: 'unowner', @@ -15,33 +14,47 @@ module.exports = { const user = message.mentions.users.first(); if (!user) { - return message.reply('Veuillez mentionner un utilisateur à supprimer de la liste des propriétaires.'); + return message.channel.send('Veuillez mentionner un utilisateur à supprimer de la liste des propriétaires.'); } - 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.owners) { - data.owners = {}; - } + let data = await getOwnerData(db, botId); if (data.owners[user.id]) { delete data.owners[user.id]; - db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => { - if (err) { - console.error(err.message); - } - }); - message.reply(`L'utilisateur <@${user.id}> a été supprimé de la liste des propriétaires.`); + await updateOwnerData(db, botId, data); + message.channel.send(`L'utilisateur <@${user.id}> a été supprimé de la liste des propriétaires.`); } else { - message.reply('Cet utilisateur n\'est pas un owner.'); + message.channel.send('Cet utilisateur n\'est pas un owner.'); } }, -}; \ No newline at end of file +}; + +async function getOwnerData(db, botId) { + return new Promise((resolve, reject) => { + db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { + if (err) { + console.error(err.message); + reject(err); + } else { + const data = row ? JSON.parse(row.value) : {}; + data.owners = data.owners || {}; + resolve(data); + } + }); + }); +} + +async function updateOwnerData(db, botId, data) { + return new Promise((resolve, reject) => { + db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { + if (err) { + console.error(err.message); + reject(err); + } else { + const data = row ? JSON.parse(row.value) : {}; + data.owners = data.owners || {}; // Ensure owners is always an object + resolve(data); + } + }); + }); +} \ No newline at end of file diff --git a/commands/owner/unwl.js b/commands/owner/unwl.js index 20d7fed..a5da4ac 100644 --- a/commands/owner/unwl.js +++ b/commands/owner/unwl.js @@ -1,5 +1,5 @@ const sqlite3 = require('sqlite3').verbose(); - +const db = new sqlite3.Database('myDatabase.db'); module.exports = { name: 'unwl', aliases: ['unwhitelist'], @@ -9,38 +9,54 @@ module.exports = { category: 'gestion', async execute(message, args) { - const db = new sqlite3.Database('myDatabase.db'); const botId = message.client.user.id; const user = message.mentions.users.first() || (args[0] && message.client.users.cache.get(args[0])); if (!user) { - return message.reply('Veuillez mentionner un utilisateur à retirer de la liste blanche.'); + return message.channel.send('Veuillez mentionner un utilisateur à retirer de la liste blanche.'); } - 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) : {}); - }); - }); + let data = await getWhitelistData(db, botId); - if (!data.whitelist) { - data.whitelist = {}; - } if (data.whitelist[user.id]) { delete data.whitelist[user.id]; - db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => { - if (err) { - console.error(err.message); - } - }); - message.reply('Utilisateur retiré de la liste blanche.'); + await updateWhitelist(db, botId, data); + message.channel.send('Utilisateur retiré de la liste blanche.'); } else { - message.reply('Cet utilisateur n\'est pas sur la liste blanche.'); + message.channel.send('Cet utilisateur n\'est pas sur la liste blanche.'); } }, -}; \ No newline at end of file +}; + +async function getWhitelistData(db, botId) { + return new Promise((resolve, reject) => { + db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { + if (err) { + console.error(err.message); + reject(err); + } else { + const data = row ? JSON.parse(row.value) : {}; + data.whitelist = data.whitelist || {}; + resolve(data); + } + }); + }); +} + + +async function updateWhitelist(db, botId, userId) { + return new Promise((resolve, reject) => { + db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify({ whitelist: { [userId]: true } })], (err) => { + if (err) { + console.error(err.message); + reject(err); + } else { + resolve(); + const data = row ? JSON.parse(row.value) : {}; + data.whitelist = data.whitelist || {}; + resolve(data); + } + }); + }); +} \ No newline at end of file diff --git a/commands/owner/wl.js b/commands/owner/wl.js index 3014803..572c511 100644 --- a/commands/owner/wl.js +++ b/commands/owner/wl.js @@ -15,42 +15,15 @@ module.exports = { const user = message.mentions.users.first() || (args[0] && message.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.whitelist) { - data.whitelist = {}; - } - - if (!data.whitelist[user.id]) { - data.whitelist[user.id] = true; - db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => { - if (err) { - console.error(err.message); - } - }); - message.reply('Utilisateur ajouté à la liste blanche.'); - } else { - message.reply('Cet utilisateur est déjà sur la liste blanche.'); - } + let data = await getWhitelistData(db, botId); + if (!data.whitelist[user.id]) { + await updateWhitelist(db, botId, user.id); + message.reply('Utilisateur ajouté à la liste blanche.'); + } else { + message.reply('Cet utilisateur est déjà sur la liste blanche.'); + } } else { - 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) : {}); - }); - }); - + let data = await getWhitelistData(db, botId); const whitelist = data.whitelist || {}; const embed = new EmbedBuilder() .setTitle('Liste blanche') @@ -61,4 +34,34 @@ module.exports = { message.channel.send({ embeds: [embed] }); } }, -}; \ No newline at end of file +}; +async function getWhitelistData(db, botId) { + return new Promise((resolve, reject) => { + db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { + if (err) { + console.error(err.message); + reject(err); + } else { + const data = row ? JSON.parse(row.value) : {}; + data.whitelist = data.whitelist || {}; + resolve(data); + } + }); + }); +} + +async function updateWhitelist(db, botId, userId) { + return new Promise((resolve, reject) => { + db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify({ whitelist: { [userId]: true } })], (err) => { + if (err) { + console.error(err.message); + reject(err); + } else { + resolve(); + const data = row ? JSON.parse(row.value) : {}; + data.whitelist = data.whitelist || {}; + resolve(data); + } + }); + }); +} \ No newline at end of file