aboutsummaryrefslogtreecommitdiff
path: root/src/tasks/unmute.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/tasks/unmute.ts')
-rw-r--r--src/tasks/unmute.ts39
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}`);
- }
- }
-}