forked from engineering/cloudservices
38 lines
2.0 KiB
TypeScript
38 lines
2.0 KiB
TypeScript
/* 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);
|
|
}
|