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:
@@ -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