mirror of
https://github.com/arthur-pbty/gestion-perso.git
synced 2026-06-03 23:36:35 +02:00
Mettre à jour les commandes ping et setprefix, ajouter la vérification des permissions, et initialiser la base de données.
This commit is contained in:
+2
-2
@@ -5,8 +5,8 @@ module.exports = {
|
||||
aliases: ['latence'],
|
||||
description: 'Avoir la latence du bot.',
|
||||
emote: '⏱️',
|
||||
utilisation: 'ping',
|
||||
category: 'utils',
|
||||
utilisation: '',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
message.reply('Pong !');
|
||||
|
||||
@@ -7,8 +7,8 @@ module.exports = {
|
||||
aliases: ['prefixset'],
|
||||
description: 'Changer le préfixe du bot.',
|
||||
emote: '⏱️',
|
||||
utilisation: 'setprefix',
|
||||
category: 'utils',
|
||||
utilisation: '',
|
||||
permission: 10,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (args.length < 1) return message.reply('Veuillez entrer un préfixe.');
|
||||
|
||||
+16
-10
@@ -1,5 +1,6 @@
|
||||
const { Events } = require("discord.js");
|
||||
const getServerPrefix = require("../fonctions/getServerPrefix");
|
||||
const getPermissionLevel = require("../fonctions/getPermissionLevel");
|
||||
|
||||
module.exports = {
|
||||
name: Events.MessageCreate,
|
||||
@@ -7,19 +8,24 @@ module.exports = {
|
||||
if (message.author.bot) return;
|
||||
|
||||
const prefix = await getServerPrefix(message.guild.id);
|
||||
if (!message.content.startsWith(prefix)) return;
|
||||
if (message.content.startsWith(prefix)) {
|
||||
const args = message.content.slice(prefix.length).trim().split(/ +/);
|
||||
const commandName = args.shift().toLowerCase();
|
||||
|
||||
const args = message.content.slice(prefix.length).trim().split(/ +/);
|
||||
const commandName = args.shift().toLowerCase();
|
||||
const command = client.commands.get(commandName);
|
||||
if (!command) return;
|
||||
|
||||
const command = client.commands.get(commandName);
|
||||
if (!command) return;
|
||||
const permissionLevel = await getPermissionLevel(message.member, message.guild);
|
||||
if (permissionLevel < command.permission) return message.reply("Vous n'avez pas la permission d'utiliser cette commande");
|
||||
|
||||
try {
|
||||
command.execute(message, args);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
message.reply("Erreur lors de l'exécution de la commande");
|
||||
try {
|
||||
command.execute(message, args);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
message.reply("Erreur lors de l'exécution de la commande");
|
||||
}
|
||||
} else if (message.content === `<@!${client.user.id}>` || message.content === `<@${client.user.id}>`) {
|
||||
message.reply(`Mon préfixe sur ce serveur est \`${prefix}\``);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1,8 +1,10 @@
|
||||
const { Events, ActivityType } = require("discord.js");
|
||||
const addBaseInDB = require("../fonctions/addBaseInDB");
|
||||
|
||||
module.exports = {
|
||||
name: Events.ClientReady,
|
||||
async execute(client) {
|
||||
addBaseInDB(client);
|
||||
console.log(`le bot ${client.user.tag} est en ligne`)
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,53 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
let buyer = 0;
|
||||
|
||||
module.exports = function addBaseInDB(client) {
|
||||
let db = new sqlite3.Database('db.db', sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
client.guilds.cache.forEach(guild => {
|
||||
db.run('INSERT OR IGNORE INTO prefix (serverID) VALUES (?)', [guild.id], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
client.guilds.cache.forEach(guild => {
|
||||
guild.members.cache.forEach(member => {
|
||||
if (member.user.bot) return;
|
||||
if (member.id === '671763971803447298') {
|
||||
buyer = 1;
|
||||
} else {
|
||||
buyer = 0;
|
||||
};
|
||||
db.run('INSERT OR IGNORE INTO users (serverID, userID, buyer) SELECT ?, ?, ? WHERE NOT EXISTS (SELECT 1 FROM users WHERE serverID = ? AND userID = ?)', [guild.id, member.id, buyer, guild.id, member.id], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
client.commands.forEach(command => {
|
||||
client.guilds.cache.forEach(guild => {
|
||||
db.run('INSERT OR IGNORE INTO commands (command, permission, serverID) SELECT ?, ?, ? WHERE NOT EXISTS (SELECT 1 FROM commands WHERE command = ? AND serverID = ?)', [command.name, command.permission, guild.id, command.name, guild.id], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
db.close((err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = async function getPermissionLevel(member, guild) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let db = new sqlite3.Database('db.db', sqlite3.OPEN_READWRITE, (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
|
||||
let buyerId = [];
|
||||
let ownerId = [];
|
||||
let highestPermission = 0;
|
||||
|
||||
db.each('SELECT userID FROM users WHERE serverID = ? AND buyer = 1', [guild.id],
|
||||
(err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
buyerId.push(row.userID);
|
||||
});
|
||||
|
||||
db.each('SELECT userID FROM users WHERE serverID = ? AND owner = 1', [guild.id],
|
||||
(err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
ownerId.push(row.userID);
|
||||
});
|
||||
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
db.each('SELECT roleID FROM permissions WHERE serverID = ? AND permission = ?', [guild.id, i],
|
||||
(err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
if (member.roles.cache.has(row.roleID)) {
|
||||
highestPermission = Math.max(highestPermission, i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
db.close((err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
|
||||
if (buyerId.includes(member.id)) {
|
||||
resolve(11);
|
||||
} else if (ownerId.includes(member.id)) {
|
||||
resolve(10);
|
||||
} else {
|
||||
resolve(highestPermission);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
+28
-12
@@ -6,14 +6,6 @@ module.exports = function initDB() {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
console.log('Connected to the db.db database.');
|
||||
});
|
||||
|
||||
db.run(`PRAGMA foreign_keys = ON;`, (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
console.log('Foreign key constraint enabled');
|
||||
});
|
||||
|
||||
|
||||
@@ -24,9 +16,9 @@ module.exports = function initDB() {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
console.log('Created prefix table');
|
||||
});
|
||||
|
||||
|
||||
db.run(`CREATE TABLE IF NOT EXISTS users(
|
||||
serverID TEXT NOT NULL,
|
||||
userID TEXT NOT NULL,
|
||||
@@ -34,12 +26,37 @@ module.exports = function initDB() {
|
||||
bank INTEGER NOT NULL DEFAULT 0,
|
||||
xp INTEGER NOT NULL DEFAULT 0,
|
||||
levels INTEGER NOT NULL DEFAULT 0,
|
||||
messages INTEGER NOT NULL DEFAULT 0
|
||||
messages INTEGER NOT NULL DEFAULT 0,
|
||||
buyer BOOLEAN NOT NULL DEFAULT 0,
|
||||
owner BOOLEAN NOT NULL DEFAULT 0,
|
||||
whitelist BOOLEAN NOT NULL DEFAULT 0,
|
||||
blacklist BOOLEAN NOT NULL DEFAULT 0
|
||||
)`, (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
db.run(`CREATE TABLE IF NOT EXISTS commands(
|
||||
command TEXT NOT NULL,
|
||||
permission INTEGER NOT NULL DEFAULT 11,
|
||||
serverID TEXT NOT NULL
|
||||
)`, (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
db.run(`CREATE TABLE IF NOT EXISTS permissions(
|
||||
permission INTEGER NOT NULL UNIQUE,
|
||||
roleID TEXT NOT NULL,
|
||||
serverID TEXT NOT NULL
|
||||
)`, (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
console.log('Created users table');
|
||||
});
|
||||
|
||||
|
||||
@@ -47,6 +64,5 @@ module.exports = function initDB() {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
console.log('Close the database connection.');
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user