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); } }); }); }