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