Files
gestion-perso/fonctions/getPermissionLevel.ts
T
2024-02-25 19:15:42 +01:00

62 lines
1.6 KiB
TypeScript

import sqlite3 from 'sqlite3';
module.exports = async function getPermissionLevel(member: any, guild: any) {
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: string[] = [];
let ownerId: string[] = [];
let highestPermission = 0;
db.each('SELECT userID FROM users WHERE serverID = ? AND buyer = 1', [guild.id],
(err, row: any) => {
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: any) => {
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: any) => {
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);
}
});
});
}