correction quel que probleme , wl system , owner system + permssion system

This commit is contained in:
VALOU3336
2024-03-01 21:44:51 +01:00
parent 9fd591093d
commit 2d29003685
8 changed files with 133 additions and 76 deletions
+19 -28
View File
@@ -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);
}
}
});
});
+3 -4
View File
@@ -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();
}
});
});
+4 -7
View File
@@ -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);
}
});
});
+12 -13
View File
@@ -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);
}
});
});
+30 -17
View File
@@ -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.');
}
},
};
+13 -5
View File
@@ -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) {