diff options
Diffstat (limited to 'src/tasks/unmute.ts')
-rw-r--r-- | src/tasks/unmute.ts | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/src/tasks/unmute.ts b/src/tasks/unmute.ts deleted file mode 100644 index c61c6e9..0000000 --- a/src/tasks/unmute.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { BushGuildMember, BushTask, Mute } from '@lib'; -import { Op } from 'sequelize'; - -export default class UnmuteTask extends BushTask { - public constructor() { - super('unmute', { - delay: 30_000, // 1/2 min - runOnStart: true - }); - } - async exec(): Promise<void> { - const rows = await Mute.findAll({ - where: { - [Op.and]: [ - { - expires: { - [Op.lt]: new Date() // Find all rows with an expiry date before now - } - } - ] - } - }); - this.client.logger.verbose(`UnmuteTask`, `Queried mutes, found <<${rows.length}>> expired mutes.`); - for (const row of rows) { - const guild = this.client.guilds.cache.get(row.guild); - if (!guild) { - await row.destroy(); - continue; - } - - const member = guild.members.cache.get(row.user) as BushGuildMember; - const result = await member.unmute({ reason: 'Punishment expired.' }); - if (['success', 'failed to dm'].includes(result)) await row.destroy(); - else throw result; - - this.client.logger.verbose(`UnmuteTask`, `Unmuted ${row.user}`); - } - } -} |