mirror of
https://github.com/arthur-pbty/gestion-perso.git
synced 2026-06-03 23:36:35 +02:00
62 lines
1.6 KiB
TypeScript
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);
|
|
}
|
|
});
|
|
});
|
|
} |