mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-16 15:56:31 +02:00
change quick.db to sqlite3
This commit is contained in:
+44
-13
@@ -1,6 +1,5 @@
|
||||
const { EmbedBuilder} = require('discord.js');
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = {
|
||||
name: 'blrank',
|
||||
@@ -10,29 +9,61 @@ module.exports = {
|
||||
category: 'gestion',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
const botId = message.client.user.id;
|
||||
const guildId = message.guild.id;
|
||||
|
||||
|
||||
if (args.length > 0) {
|
||||
const userId = args[0].replace(/<@!?(\d+)>/, '$1');
|
||||
let blrank = await GestionDb.get(`${botId}.${guildId}.blrank`) || {};
|
||||
|
||||
if (blrank[userId]) {
|
||||
delete blrank[userId];
|
||||
await GestionDb.set(`${botId}.${guildId}.blrank`, blrank);
|
||||
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.blrank) {
|
||||
data.blrank = {};
|
||||
}
|
||||
|
||||
if (data.blrank[userId]) {
|
||||
delete data.blrank[userId];
|
||||
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 blrank.');
|
||||
} else {
|
||||
blrank[userId] = true;
|
||||
await GestionDb.set(`${botId}.${guildId}.blrank`, blrank);
|
||||
data.blrank[userId] = 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 blrank.');
|
||||
}
|
||||
} else {
|
||||
let blrank = await GestionDb.get(`${botId}.${guildId}.blrank`) || {};
|
||||
const embed = new EmbedBuilder()
|
||||
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) : {});
|
||||
});
|
||||
});
|
||||
|
||||
const blrank = data.blrank || {};
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Blrank')
|
||||
.setDescription(Object.keys(blrank).map(id => `<@${id}>`).join('\n') || 'Aucun utilisateur sur la liste blanche')
|
||||
.setFooter({ text: message.client.user.username, iconURL: client.user.displayAvatarURL({dynamic: true})});
|
||||
|
||||
|
||||
message.channel.send({ embeds: [embed] });
|
||||
}
|
||||
},
|
||||
|
||||
+33
-17
@@ -1,7 +1,7 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = {
|
||||
name: 'change',
|
||||
aliases: ['permchange'],
|
||||
@@ -9,11 +9,12 @@ module.exports = {
|
||||
emote: '🔄',
|
||||
utilisation: 'change <commande> <perm>',
|
||||
category: 'botcontrol',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const botId = client.user.id;
|
||||
const unchangeableCommands = ['owner', 'unowner','buyer'];
|
||||
const unchangeableCommands = ['owner', 'unowner', 'buyer'];
|
||||
|
||||
if (args.length < 2) {
|
||||
if (args.length < 2) {
|
||||
return message.reply('Veuillez spécifier une commande et un niveau de permission.');
|
||||
}
|
||||
|
||||
@@ -21,16 +22,13 @@ module.exports = {
|
||||
let permissionLevel;
|
||||
|
||||
if (args[1] === 'owner') {
|
||||
permissionLevel = 10;
|
||||
}
|
||||
|
||||
else if (args[1] === 'buyer') {
|
||||
permissionLevel = 11;
|
||||
}
|
||||
else {
|
||||
permissionLevel = 10;
|
||||
} else if (args[1] === 'buyer') {
|
||||
permissionLevel = 11;
|
||||
} else {
|
||||
permissionLevel = parseInt(args[1]);
|
||||
if (isNaN(permissionLevel) || permissionLevel < 0 || permissionLevel > 9) {
|
||||
return message.reply('Veuillez spécifier un niveau de permission valide (entre 0 et 9).');
|
||||
if (isNaN(permissionLevel) || permissionLevel < 0 || permissionLevel > 9) {
|
||||
return message.reply('Veuillez spécifier un niveau de permission valide (entre 0 et 9).');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,10 +40,28 @@ module.exports = {
|
||||
return message.reply('Cette commande n\'existe pas.');
|
||||
}
|
||||
|
||||
let permissions = await GestionDb.get(`${botId}.permissions`);
|
||||
permissions[commandName] = permissionLevel;
|
||||
await GestionDb.set(`${botId}.permissions`, permissions);
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
let permissions = 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) : {});
|
||||
});
|
||||
});
|
||||
|
||||
message.reply(`Le niveau de permission de la commande ${commandName} a été changé à ${args[0].toLowerCase()}.`);
|
||||
if (!permissions.permissions) {
|
||||
permissions.permissions = {};
|
||||
}
|
||||
|
||||
permissions.permissions[commandName] = permissionLevel;
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(permissions)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
|
||||
message.reply(`Le niveau de permission de la commande ${commandName} a été changé à ${permissionLevel}.`);
|
||||
},
|
||||
};
|
||||
+49
-20
@@ -1,46 +1,75 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = {
|
||||
name: 'delperm',
|
||||
description: 'Supprime un rôle d\'un niveau de permission ou d\'une commande',
|
||||
emote: '❌',
|
||||
emote: '❌',
|
||||
utilisation: 'delperm <perm/commande> @role',
|
||||
category: 'gestion',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
const botId = client.user.id;
|
||||
const guildId = message.guild.id;
|
||||
const permissionOrCommand = args[0].toLowerCase();
|
||||
const role = message.mentions.roles.first();
|
||||
|
||||
if (!role) {
|
||||
return message.reply('Veuillez mentionner un rôle valide.');
|
||||
}
|
||||
if (['1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(permissionOrCommand)) {
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${permissionOrCommand}`);
|
||||
if (roleIds) {
|
||||
if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
|
||||
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);
|
||||
}
|
||||
const index = roleIds.indexOf(role.id);
|
||||
resolve(row ? JSON.parse(row.value) : {});
|
||||
});
|
||||
});
|
||||
|
||||
if (!data.permissions) {
|
||||
data.permissions = {};
|
||||
}
|
||||
|
||||
if (['1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(permissionOrCommand)) {
|
||||
if (!data.permissions[guildId]) {
|
||||
data.permissions[guildId] = {};
|
||||
}
|
||||
if (!data.permissions[guildId].p) {
|
||||
data.permissions[guildId].p = {};
|
||||
}
|
||||
if (data.permissions[guildId].p[permissionOrCommand]) {
|
||||
const index = data.permissions[guildId].p[permissionOrCommand].indexOf(role.id);
|
||||
if (index !== -1) {
|
||||
roleIds.splice(index, 1);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.p${permissionOrCommand}`, roleIds);
|
||||
data.permissions[guildId].p[permissionOrCommand].splice(index, 1);
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
message.reply(`Le rôle pour ${permissionOrCommand} a été supprimé.`);
|
||||
} else {
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.c${permissionOrCommand}`);
|
||||
if (roleIds) {
|
||||
if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
const index = roleIds.indexOf(role.id);
|
||||
if (!data.permissions[guildId]) {
|
||||
data.permissions[guildId] = {};
|
||||
}
|
||||
if (!data.permissions[guildId].c) {
|
||||
data.permissions[guildId].c = {};
|
||||
}
|
||||
if (data.permissions[guildId].c[permissionOrCommand]) {
|
||||
const index = data.permissions[guildId].c[permissionOrCommand].indexOf(role.id);
|
||||
if (index !== -1) {
|
||||
roleIds.splice(index, 1);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.c${permissionOrCommand}`, roleIds);
|
||||
data.permissions[guildId].c[permissionOrCommand].splice(index, 1);
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
message.reply(`L commande ${permissionOrCommand} a été supprimé du role.`);
|
||||
message.reply(`La commande ${permissionOrCommand} a été supprimée du rôle.`);
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table('gestion');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
|
||||
module.exports = {
|
||||
name: 'greet',
|
||||
@@ -12,29 +12,46 @@ module.exports = {
|
||||
async execute(message, args) {
|
||||
const botId = message.client.user.id;
|
||||
const guildId = message.guild.id;
|
||||
const guildGreetings = GestionDb.get(`${botId}.${guildId}.greetings`) || [];
|
||||
|
||||
const channelId = args[0] ? args[0].replace(/<#|>/g, '') : message.channel.id;
|
||||
|
||||
let guildGreetings = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [`${botId}.${guildId}.greetings`], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row ? JSON.parse(row.value) : []);
|
||||
});
|
||||
});
|
||||
|
||||
const index = guildGreetings.findIndex(greeting => greeting.channelId === channelId);
|
||||
|
||||
if (index !== -1) {
|
||||
guildGreetings.splice(index, 1);
|
||||
GestionDb.set(`${botId}.${guildId}.greetings`, guildGreetings);
|
||||
guildGreetings.splice(index, 1);
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [`${botId}.${guildId}.greetings`, JSON.stringify(guildGreetings)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
const embed = new EmbedBuilder()
|
||||
.setDescription(`Le salon <#${channelId}> a été retiré de la liste des salutations.`)
|
||||
.setColor('#0099ff');
|
||||
message.channel.send({ embeds: [embed] });
|
||||
} else if (guildGreetings.length < 5) {
|
||||
} else if (guildGreetings.length < 5) {
|
||||
guildGreetings.push({ channelId });
|
||||
GestionDb.set(`${botId}.${guildId}.greetings`, guildGreetings);
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [`${botId}.${guildId}.greetings`, JSON.stringify(guildGreetings)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
const embed = new EmbedBuilder()
|
||||
.setDescription(`Le salon <#${channelId}> a été ajouté à la liste des salutations.`)
|
||||
.setColor('#0099ff');
|
||||
message.channel.send({ embeds: [embed] });
|
||||
} else {
|
||||
const embed = new EmbedBuilder()
|
||||
.setDescription('Il y a déjà 5 salons dans la liste des salutations. Vous ne pouvez pas en ajouter d\'autres.')
|
||||
.setDescription('Il y a déjà 5 salons dans la liste des salutations. Vous ne pouvez pas en ajouter d\'autres.')
|
||||
.setColor('#ff0000');
|
||||
message.channel.send({ embeds: [embed] });
|
||||
}
|
||||
|
||||
+28
-15
@@ -1,6 +1,5 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
|
||||
module.exports = {
|
||||
name: 'perm',
|
||||
@@ -11,13 +10,29 @@ module.exports = {
|
||||
category: 'gestion',
|
||||
|
||||
async execute(message, client) {
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
const botId = message.client.user.id;
|
||||
const guildId = message.guild.id;
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Rôles de permission et de commande')
|
||||
.setColor('#0099ff');
|
||||
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${i}`);
|
||||
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.permissions) {
|
||||
data.permissions = {};
|
||||
}
|
||||
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
let roleIds = data.permissions[guildId] && data.permissions[guildId].p && data.permissions[guildId].p[i];
|
||||
let roles = 'Aucun rôle défini';
|
||||
if (roleIds) {
|
||||
if (!Array.isArray(roleIds)) {
|
||||
@@ -27,14 +42,14 @@ module.exports = {
|
||||
}
|
||||
embed.addFields({ name: `Perm ${i}`, value: roles});
|
||||
}
|
||||
const commandNames = await GestionDb.get(`${botId}.${message.guild.id}.commandNames`);
|
||||
if (commandNames && commandNames.length > 0) {
|
||||
// Créez un objet pour regrouper les commandes par rôle
|
||||
|
||||
const commandNames = data.permissions[guildId] && data.permissions[guildId].commandNames;
|
||||
if (commandNames && commandNames.length > 0) {
|
||||
const commandsByRole = {};
|
||||
|
||||
|
||||
for (const commandName of commandNames) {
|
||||
const roleIds = await GestionDb.get(`${botId}.${message.guild.id}.c${commandName}`);
|
||||
if (roleIds && roleIds.length > 0) {
|
||||
const roleIds = data.permissions[guildId] && data.permissions[guildId].c && data.permissions[guildId].c[commandName];
|
||||
if (roleIds && roleIds.length > 0) {
|
||||
for (const roleId of roleIds) {
|
||||
if (!commandsByRole[roleId]) {
|
||||
commandsByRole[roleId] = [];
|
||||
@@ -43,15 +58,13 @@ module.exports = {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Ajoutez chaque groupe de commandes à l'embed
|
||||
|
||||
for (const roleId in commandsByRole) {
|
||||
const role = message.guild.roles.cache.get(roleId);
|
||||
const commands = commandsByRole[roleId].join('\n');
|
||||
embed.addFields({ name: `${role.name}`,value: commands , inline: true });
|
||||
embed.addField(`${role.name}`, commands, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
message.channel.send({ embeds: [embed] });
|
||||
},
|
||||
|
||||
+35
-10
@@ -1,29 +1,54 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = {
|
||||
name: 'prefix',
|
||||
aliases: ['setprefix'],
|
||||
description: 'Change le préfixe du bot ',
|
||||
emote: '🔧',
|
||||
description: 'Change le préfixe du bot',
|
||||
emote: '🔧',
|
||||
utilisation: 'prefix <newprefix/main>',
|
||||
category: 'botcontrol',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
const botId = client.user.id;
|
||||
const guildId = message.guild.id;
|
||||
|
||||
if (args.length < 1) {
|
||||
if (args.length < 1) {
|
||||
return message.reply('Veuillez spécifier un nouveau préfixe.');
|
||||
}
|
||||
|
||||
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.prefixes) {
|
||||
data.prefixes = {};
|
||||
}
|
||||
|
||||
if (args[0] === "main") {
|
||||
const newPrefix = args[1];
|
||||
await GestionDb.set(`${botId}.prefix`, newPrefix);
|
||||
data.prefixes.main = newPrefix;
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
message.reply(`Le main préfixe a été changé à ${newPrefix}.`);
|
||||
}else {
|
||||
const newPrefix = args[0];
|
||||
await GestionDb.set(`${botId}.${guildId}.prefix`, newPrefix);
|
||||
message.reply(`Le préfixe a été changé à ${newPrefix}.`);
|
||||
} else {
|
||||
const newPrefix = args[0];
|
||||
data.prefixes[guildId] = newPrefix;
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
message.reply(`Le préfixe a été changé à ${newPrefix}.`);
|
||||
}
|
||||
},
|
||||
};
|
||||
+44
-16
@@ -1,6 +1,5 @@
|
||||
const { ChannelType , EmbedBuilder } = require('discord.js');
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table('gestion');
|
||||
const { ChannelType, EmbedBuilder } = require('discord.js');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = {
|
||||
name: 'rvocal',
|
||||
@@ -10,31 +9,37 @@ module.exports = {
|
||||
category: 'gestion',
|
||||
|
||||
async execute(message, args) {
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
const botId = message.client.user.id;
|
||||
const guildId = message.guild.id;
|
||||
let mentionedChannel = message.mentions.channels.first();
|
||||
if (!mentionedChannel) {
|
||||
const channelId = args[0];
|
||||
mentionedChannel = message.guild.channels.cache.get(channelId);
|
||||
if (!mentionedChannel || mentionedChannel.type !== ChannelType.GuildVoice) {
|
||||
return message.channel.send("Veuillez mentionner un salon vocal valide ou fournir un ID de salon vocal valide.");
|
||||
}
|
||||
}
|
||||
if (mentionedChannel === ChannelType.GuildText || mentionedChannel === ChannelType.DM) {
|
||||
return message.channel.send("Veuillez mentionner un salon vocal valide ou fournir un ID de salon vocal valide.");
|
||||
}
|
||||
if (args.length === 1 ) {
|
||||
const channelId = args[0];
|
||||
mentionedChannel = message.guild.channels.cache.get(channelId);
|
||||
if (!mentionedChannel || mentionedChannel.type !== ChannelType.GuildVoice) {
|
||||
return message.channel.send("Veuillez mentionner un salon vocal valide ou fournir un ID de salon vocal valide.");
|
||||
}
|
||||
}
|
||||
if (mentionedChannel.type !== ChannelType.GuildVoice) {
|
||||
return message.channel.send("Veuillez mentionner un salon vocal valide ou fournir un ID de salon vocal valide.");
|
||||
}
|
||||
|
||||
const roles = GestionDb.get(`${botId}.${guildId}.rolevocal.${mentionedChannel.id}`) || [];
|
||||
if (args.length === 1 ) {
|
||||
const roles = 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) : {});
|
||||
});
|
||||
});
|
||||
|
||||
const channelRoles = roles.rolevocal && roles.rolevocal[guildId] && roles.rolevocal[guildId][mentionedChannel.id] || [];
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle(`Rôles associés au salon vocal <#${mentionedChannel.id}>`)
|
||||
.setDescription(roles.length > 0 ? roles.map(roleId => `<@&${roleId}>`).join(', ') : 'Aucun rôle associé.')
|
||||
.setDescription(channelRoles.length > 0 ? channelRoles.map(roleId => `<@&${roleId}>`).join(', ') : 'Aucun rôle associé.')
|
||||
.setColor('#0099ff');
|
||||
|
||||
return message.channel.send({ embeds: [embed] });
|
||||
@@ -55,7 +60,30 @@ module.exports = {
|
||||
}
|
||||
}
|
||||
|
||||
GestionDb.set(`${botId}.${guildId}.rolevocal.${mentionedChannel.id}`, roles);
|
||||
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.rolevocal) {
|
||||
data.rolevocal = {};
|
||||
}
|
||||
if (!data.rolevocal[guildId]) {
|
||||
data.rolevocal[guildId] = {};
|
||||
}
|
||||
data.rolevocal[guildId][mentionedChannel.id] = roles;
|
||||
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
|
||||
message.channel.send(`Les rôles ont été enregistrés pour le salon vocal <#${mentionedChannel.id}>.`);
|
||||
}
|
||||
},
|
||||
|
||||
+50
-21
@@ -1,14 +1,16 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = {
|
||||
name: 'setperm',
|
||||
description: 'Définit un rôle pour un niveau de permission ou une commande',
|
||||
emote: '🔑',
|
||||
emote: '🔑',
|
||||
utilisation: 'setperm <perm/commande> @role',
|
||||
category: 'gestion',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
const botId = message.client.user.id;
|
||||
const guildId = message.guild.id;
|
||||
const permissionOrCommand = args[0].toLowerCase();
|
||||
const role = message.mentions.roles.first();
|
||||
|
||||
@@ -16,43 +18,70 @@ module.exports = {
|
||||
return message.reply('Veuillez mentionner un rôle valide.');
|
||||
}
|
||||
|
||||
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.permissions) {
|
||||
data.permissions = {};
|
||||
}
|
||||
|
||||
if (['1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(permissionOrCommand)) {
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
let oldRoleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${i}`);
|
||||
if (!data.permissions[guildId]) {
|
||||
data.permissions[guildId] = {};
|
||||
}
|
||||
if (!data.permissions[guildId].p) {
|
||||
data.permissions[guildId].p = {};
|
||||
}
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
let oldRoleIds = data.permissions[guildId].p[i];
|
||||
if (oldRoleIds) {
|
||||
if (!Array.isArray(oldRoleIds)) {
|
||||
oldRoleIds = [oldRoleIds];
|
||||
}
|
||||
const index = oldRoleIds.indexOf(role.id);
|
||||
if (index !== -1) {
|
||||
oldRoleIds.splice(index, 1);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.p${i}`, oldRoleIds);
|
||||
oldRoleIds.splice(index, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${permissionOrCommand}`);
|
||||
let roleIds = data.permissions[guildId].p[permissionOrCommand];
|
||||
if (!roleIds) {
|
||||
roleIds = [];
|
||||
} else if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
roleIds.push(role.id);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.p${permissionOrCommand}`, roleIds);
|
||||
message.reply(`La permission ${permissionOrCommand} a été défini sur ${role.name}.`);
|
||||
data.permissions[guildId].p[permissionOrCommand] = roleIds;
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
message.reply(`La permission ${permissionOrCommand} a été définie sur ${role.name}.`);
|
||||
} else {
|
||||
if (!client.commands.has(permissionOrCommand)) {
|
||||
return message.reply('Cette commande n\'existe pas.');
|
||||
}
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.c${permissionOrCommand}`);
|
||||
if (!data.permissions[guildId]) {
|
||||
data.permissions[guildId] = {};
|
||||
}
|
||||
if (!data.permissions[guildId].c) {
|
||||
data.permissions[guildId].c = {};
|
||||
}
|
||||
let roleIds = data.permissions[guildId].c[permissionOrCommand];
|
||||
if (!roleIds) {
|
||||
roleIds = [];
|
||||
} else if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
roleIds.push(role.id);
|
||||
await GestionDb.set(`${botId}.${message.guild.id}.c${permissionOrCommand}`, roleIds);
|
||||
GestionDb.push(`${botId}.${message.guild.id}.commandNames`, permissionOrCommand);
|
||||
message.reply(`La role ${role.name} a maintenant accée a la commande ${permissionOrCommand} .`);
|
||||
data.permissions[guildId].c[permissionOrCommand] = roleIds;
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
message.reply(`Le rôle ${role.name} a maintenant accès à la commande ${permissionOrCommand}.`);
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -1,5 +1,4 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table("gestion");
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = {
|
||||
name: 'suggest',
|
||||
@@ -7,18 +6,45 @@ module.exports = {
|
||||
emote: '💡',
|
||||
utilisation: 'suggest #channel',
|
||||
category: 'gestion',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const botid = client.user.id;
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
const botId = client.user.id;
|
||||
const guildId = message.guild.id;
|
||||
const currentSuggestChannelId = GestionDb.get(`${botid}.${guildId}.suggestchannel`);
|
||||
|
||||
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.suggestChannel) {
|
||||
data.suggestChannel = {};
|
||||
}
|
||||
|
||||
const currentSuggestChannelId = data.suggestChannel[guildId];
|
||||
|
||||
const mentionedChannel = message.mentions.channels.first();
|
||||
if (mentionedChannel) {
|
||||
if (mentionedChannel.id === currentSuggestChannelId) {
|
||||
GestionDb.delete(`${botid}.${guildId}.suggestchannel`);
|
||||
delete data.suggestChannel[guildId];
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
message.channel.send(`Le salon de suggestion a été supprimé.`);
|
||||
} else {
|
||||
GestionDb.set(`${botid}.${guildId}.suggestchannel`, mentionedChannel.id);
|
||||
data.suggestChannel[guildId] = mentionedChannel.id;
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
message.channel.send(`Le salon de suggestion a été configuré à <#${mentionedChannel.id}>`);
|
||||
}
|
||||
return;
|
||||
@@ -28,10 +54,20 @@ module.exports = {
|
||||
const channel = message.guild.channels.cache.get(args[0]);
|
||||
if (channel) {
|
||||
if (channel.id === currentSuggestChannelId) {
|
||||
GestionDb.delete(`${botid}.${guildId}.suggestchannel`);
|
||||
delete data.suggestChannel[guildId];
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
message.channel.send(`Le salon de suggestion a été supprimé.`);
|
||||
} else {
|
||||
GestionDb.set(`${botid}.${guildId}.suggestchannel`, args[0]);
|
||||
data.suggestChannel[guildId] = args[0];
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
message.channel.send(`Le salon de suggestion a été configuré à <#${args[0]}>`);
|
||||
}
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user