1
0
Fork 0

Add interval func to check lock expirations

refactor/models
Matthew 2019-10-26 00:01:49 -04:00
parent 74877e8a34
commit 93c5cd0df9
No known key found for this signature in database
GPG Key ID: 766BE43AE75F7559
1 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,35 @@
import Client from '../Client';
import { RichEmbed } from '../class';
export default function checkLock(client: Client) {
setTimeout(async () => {
try {
const moderations = await client.db.Moderation.find();
moderations.forEach(async (moderation) => {
if (!moderation.expiration) return;
if (moderation.expiration.processed) return;
if (new Date() > moderation.expiration.date) {
const account = await client.db.Account.findOne({ username: moderation.username });
if (!account) return;
await client.util.exec(`unlock ${account.username}`);
const embed = new RichEmbed();
embed.setTitle('Cloud Infraction | Unlock');
embed.setColor(3066993);
embed.addField('User', `${account.username} | <@${account.userID}>`, true);
embed.addField('Supervisor', 'SYSTEM', true);
embed.addField('Reason', 'Auto', true);
embed.setFooter(client.user.username, client.user.avatarURL);
embed.setTimestamp();
client.getDMChannel(account.userID).then((user) => {
// @ts-ignore
user.createMessage({ embed });
});
// @ts-ignore
client.createMessage('580950455581147146', { embed });
}
});
} catch (error) {
await client.util.handleError(error);
}
});
}