/* eslint-disable no-await-in-loop */ import { Client } from '..'; export default function checkStaffStatus(client: Client) { setInterval(async () => { const accounts = await client.db.Account.find(); for (const acc of accounts) { const user = client.guilds.get('446067825673633794').members.get(acc.userID) ?? await client.guilds.get('446067825673633794').getRESTMember(acc.userID); if (!acc.permissions.facultyMarshal && user.roles.includes('662163685439045632')) { await client.db.Account.updateOne({ username: acc.username }, { $set: { 'permissions.facultyMarshal': true } }); } if (!acc.permissions.sheriff && user.roles.includes('455972169449734144')) { await client.db.Account.updateOne({ username: acc.username }, { $set: { 'permissions.sheriff': true } }); } if (!acc.permissions.staff && user.roles.includes('446104438969466890')) { await client.db.Account.updateOne({ username: acc.username }, { $set: { 'permissions.staff': true } }); } if (acc.permissions.facultyMarshal && !user.roles.includes('662163685439045632')) { await client.db.Account.updateOne({ username: acc.username }, { $set: { 'permissions.facultyMarshal': false } }); } if (acc.permissions.sheriff && !user.roles.includes('455972169449734144')) { await client.db.Account.updateOne({ username: acc.username }, { $set: { 'permissions.sheriff': false } }); } if (acc.permissions.staff && !user.roles.includes('446104438969466890')) { await client.db.Account.updateOne({ username: acc.username }, { $set: { 'permissions.staff': false } }); } if (acc.permissions.staff && acc.tier < 3) { await client.db.Account.updateOne({ username: acc.username }, { $set: { tier: 3 } }); client.getDMChannel(acc.userID).then((chan) => { chan.createMessage('***Your account has automatically been upgraded to Tier 3 since you are a Staff member.***'); }); } } }, 300000); }