From 2d29003685cba33b164a2cd04768affbc2da1645 Mon Sep 17 00:00:00 2001 From: VALOU3336 Date: Fri, 1 Mar 2024 21:44:51 +0100 Subject: [PATCH] correction quel que probleme , wl system , owner system + permssion system --- commands/owner/owner.js | 47 +++++++++++++++--------------------- commands/owner/unowner.js | 7 +++--- commands/owner/unwl.js | 11 +++------ commands/owner/wl.js | 25 +++++++++---------- commands/permupdate.js | 47 +++++++++++++++++++++++------------- commands/utils/weather.js | 18 ++++++++++---- loaders/loadCommands.js | 3 ++- permissions.json | 51 ++++++++++++++++++++++++++++++++++++++- 8 files changed, 133 insertions(+), 76 deletions(-) diff --git a/commands/owner/owner.js b/commands/owner/owner.js index ef3b38c..deeaa4d 100644 --- a/commands/owner/owner.js +++ b/commands/owner/owner.js @@ -1,6 +1,6 @@ const sqlite3 = require('sqlite3').verbose(); const { EmbedBuilder } = require('discord.js'); - +const db = new sqlite3.Database('myDatabase.db'); module.exports = { name: 'owner', aliases: ['owners'], @@ -10,15 +10,14 @@ module.exports = { category: 'buyer', 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 addOwner(db, botId, user.id); + let data = await manageOwnerData(db, botId, user.id); message.reply(`L'utilisateur <@${user.id}> a été ajouté à la liste des owners.`); } else { - let data = await getOwnerData(db, botId); + let data = await manageOwnerData(db, botId); const owners = data.owners || {}; const embed = new EmbedBuilder() .setTitle('Liste des owner') @@ -29,37 +28,29 @@ module.exports = { } }, }; - -async function getOwnerData(db, botId) { +async function manageOwnerData(db, botId, userId = null) { 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); -} + let data = row ? JSON.parse(row.value) : {}; + data.owners = data.owners || {}; -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); + if (userId) { + data.owners[userId] = true; + db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => { + if (err) { + console.error(err.message); + reject(err); + } else { + resolve(data); + } + }); + } else { + resolve(data); + } } }); }); diff --git a/commands/owner/unowner.js b/commands/owner/unowner.js index 444453a..f67e868 100644 --- a/commands/owner/unowner.js +++ b/commands/owner/unowner.js @@ -46,14 +46,13 @@ async function getOwnerData(db, botId) { async function updateOwnerData(db, botId, data) { return new Promise((resolve, reject) => { - db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { + const updatedData = JSON.stringify(data); + db.run('UPDATE gestion SET value = ? WHERE id = ?', [updatedData, botId], (err) => { 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); + resolve(); } }); }); diff --git a/commands/owner/unwl.js b/commands/owner/unwl.js index a5da4ac..4cf652d 100644 --- a/commands/owner/unwl.js +++ b/commands/owner/unwl.js @@ -1,5 +1,6 @@ const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('myDatabase.db'); + module.exports = { name: 'unwl', aliases: ['unwhitelist'], @@ -18,7 +19,6 @@ module.exports = { let data = await getWhitelistData(db, botId); - if (data.whitelist[user.id]) { delete data.whitelist[user.id]; await updateWhitelist(db, botId, data); @@ -44,18 +44,15 @@ async function getWhitelistData(db, botId) { }); } - -async function updateWhitelist(db, botId, userId) { +async function updateWhitelist(db, botId, data) { return new Promise((resolve, reject) => { - db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify({ whitelist: { [userId]: true } })], (err) => { + const updatedData = JSON.stringify(data); + db.run('UPDATE gestion SET value = ? WHERE id = ?', [updatedData, botId], (err) => { if (err) { console.error(err.message); reject(err); } else { resolve(); - const data = row ? JSON.parse(row.value) : {}; - data.whitelist = data.whitelist || {}; - resolve(data); } }); }); diff --git a/commands/owner/wl.js b/commands/owner/wl.js index 572c511..0c2ef86 100644 --- a/commands/owner/wl.js +++ b/commands/owner/wl.js @@ -15,13 +15,14 @@ module.exports = { const user = message.mentions.users.first() || (args[0] && message.client.users.cache.get(args[0])); if (user) { - 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.'); - } + let data = await getWhitelistData(db, botId); + if (!data.whitelist[user.id]) { + data.whitelist[user.id] = true; // Ajoute l'utilisateur à la liste blanche + await updateWhitelist(db, botId, data); + message.reply('Utilisateur ajouté à la liste blanche.'); + } else { + message.reply('Cet utilisateur est déjà sur la liste blanche.'); + } } else { let data = await getWhitelistData(db, botId); const whitelist = data.whitelist || {}; @@ -30,11 +31,11 @@ module.exports = { .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] }); } }, }; + async function getWhitelistData(db, botId) { return new Promise((resolve, reject) => { db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { @@ -50,17 +51,15 @@ async function getWhitelistData(db, botId) { }); } -async function updateWhitelist(db, botId, userId) { +async function updateWhitelist(db, botId, data) { return new Promise((resolve, reject) => { - db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify({ whitelist: { [userId]: true } })], (err) => { + const updatedData = JSON.stringify(data); + db.run('UPDATE gestion SET value = ? WHERE id = ?', [updatedData, botId], (err) => { if (err) { console.error(err.message); reject(err); } else { resolve(); - const data = row ? JSON.parse(row.value) : {}; - data.whitelist = data.whitelist || {}; - resolve(data); } }); }); diff --git a/commands/permupdate.js b/commands/permupdate.js index 08bc2b2..0f9e890 100644 --- a/commands/permupdate.js +++ b/commands/permupdate.js @@ -1,28 +1,41 @@ const fs = require('fs'); -const path = require('path'); -const db = require('quick.db'); -const GestionDb = new db.table("gestion"); module.exports = { - name: 'permupdate', - description: 'Mettre à jour les permissions dans le fichier permissions.json', - emote: '🔒', - utilisation: 'permupdate', - category: 'buyer', + name: 'upp', + description: 'Met à jour le fichier permissions.json avec les commandes manquantes et leur attribue la permission 3', + execute(message, args) { + // Lire le fichier permissions.json + let permissions; + try { + permissions = JSON.parse(fs.readFileSync('permissions.json', 'utf8')); + } catch (error) { + console.error('Erreur lors de la lecture du fichier permissions.json:', error); + return message.channel.send('Une erreur est survenue lors de la mise à jour des permissions.'); + } - async execute(message, args, client) { - const commands = Array.from(client.commands.keys()); - const permissionsPath = path.resolve(__dirname, '../permissions.json'); - const permissionsJson = JSON.parse(fs.readFileSync(permissionsPath)); + // Récupérer toutes les commandes du bot + const commands = message.client.commands.map(cmd => cmd.name); + // Vérifier et ajouter les commandes manquantes avec la permission 3 + let updated = false; commands.forEach(command => { - if (!permissionsJson.hasOwnProperty(command)) { - permissionsJson[command] = 5; + if (!permissions.hasOwnProperty(command)) { + permissions[command] = 3; // Ajoute la permission 3 + updated = true; } }); - fs.writeFileSync(permissionsPath, JSON.stringify(permissionsJson, null, 2)); - - message.reply('Les permissions ont été mises à jour avec succès.'); + // Si des commandes ont été ajoutées, mettre à jour le fichier permissions.json + if (updated) { + fs.writeFile('permissions.json', JSON.stringify(permissions, null, 2), (err) => { + if (err) { + console.error('Erreur lors de la mise à jour du fichier permissions.json:', err); + return message.channel.send('Une erreur est survenue lors de la mise à jour des permissions.'); + } + message.channel.send('Le fichier permissions.json a été mis à jour avec succès.'); + }); + } else { + message.channel.send('Aucune commande n\'a été ajoutée. Toutes les commandes sont déjà présentes dans le fichier permissions.json.'); + } }, }; \ No newline at end of file diff --git a/commands/utils/weather.js b/commands/utils/weather.js index 8aa7f4d..d4d1b33 100644 --- a/commands/utils/weather.js +++ b/commands/utils/weather.js @@ -11,7 +11,7 @@ module.exports = { try { const APIKEY = '1e59407044fd6d842180610a8c423aa4'; const city = args[0]; - + const randomColor = Math.floor(Math.random() * 16777215).toString(16); if (!city) { return message.channel.send('Veuillez fournir une ville.'); } @@ -22,13 +22,21 @@ module.exports = { const cityName = weatherData.name; const temperature = weatherData.main.temp; const weatherDescription = weatherData.weather[0].description; + const humidity = weatherData.main.humidity; + const pressure = weatherData.main.pressure; + const windSpeed = weatherData.wind.speed; + const windDirection = weatherData.wind.deg; + const visibility = weatherData.visibility; + const feelsLike = weatherData.main.feels_like; + const weatherIcon = weatherData.weather[0].icon; - const Embed = new Discord.MessageEmbed() + const Embed = new Discord.EmbedBuilder() .setTitle(`Meteo à ${cityName}`) - .setDescription(`🌡・Temperature: ${temperature}°C\n⛅・Temps: ${weatherDescription}`) + .setDescription(`🌡・Temperature: ${temperature}°C\n⛅・Temps: ${weatherDescription}\n💧・Humidité: ${humidity}%\n📊・Pression: ${pressure} hPa\n💨・Vitesse du vent: ${windSpeed} m/s\n🧭・Direction du vent: ${windDirection}°\n👁️‍🗨️・Visibilité: ${visibility} m\n🌡️・Sensation de température: ${feelsLike}°C`) .setTimestamp() - .setColor('RANDOM') // Discord.js uses 'RANDOM' for random colors - .setFooter({text: message.client.user.username, iconURL: message.client.user.displayAvatarURL({dynamic: true})}); + .setColor(`#${randomColor}`) + .setFooter({text: message.client.user.username, iconURL: message.client.user.displayAvatarURL({dynamic: true})}) + .setThumbnail(`http://openweathermap.org/img/wn/${weatherIcon}.png`); await message.channel.send({ embeds: [Embed] }); } catch(e) { diff --git a/loaders/loadCommands.js b/loaders/loadCommands.js index 64b99fa..7683b0a 100644 --- a/loaders/loadCommands.js +++ b/loaders/loadCommands.js @@ -53,6 +53,7 @@ module.exports = (client) => { if (owners[member.id]) { return 10; } + let highestPermission = 0; for (let i = 1; i <= 9; i++) { const roleIds = data.permissions && data.permissions[guildId] && data.permissions[guildId].p && data.permissions[guildId].p[i]; @@ -117,7 +118,7 @@ module.exports = (client) => { } if (command) { const permissionLevel = await getPermissionLevel(message.member, client); - + console.log(permissionLevel + " : " +permissions[command.name] + " : " + command.name) try { if (permissionLevel === 11) { command.execute(message, args, client); diff --git a/permissions.json b/permissions.json index 12f9458..9ffa0bd 100644 --- a/permissions.json +++ b/permissions.json @@ -118,5 +118,54 @@ "stat": 10, "random": 0, "greet": 10, - "greetlist": 10 + "greetlist": 10, + "rolelimit": 3, + "alias": 3, + "reload": 3, + "setactivity": 3, + "setstatus": 3, + "undefined": 3, + "anime": 3, + "ascii": 3, + "lc": 3, + "marry": 3, + "unmarry": 3, + "zalgo": 3, + "autoreact": 3, + "blrank": 3, + "rolebutton": 3, + "clearwbh": 3, + "confession": 3, + "join": 3, + "piconly": 3, + "rolereact": 3, + "rvocal": 3, + "suggest": 3, + "sync": 3, + "alerte": 3, + "logs": 3, + "raidlog": 3, + "raidping": 3, + "derankall": 3, + "prison": 3, + "lrm": 3, + "slownmode": 3, + "voicekick": 3, + "voicekickall": 3, + "voicemove": 3, + "voicemoveall": 3, + "upp": 3, + "addbtnurl": 3, + "booster": 3, + "botconfig": 3, + "botstat": 3, + "devs": 3, + "encode": 3, + "film": 3, + "gif": 3, + "image": 3, + "statserveur": 3, + "prevname": 3, + "servericon": 3, + "weather": 3 } \ No newline at end of file