diff options
author | TymanWasTaken <32660892+tymanwastaken@users.noreply.github.com> | 2021-05-25 13:01:53 -0600 |
---|---|---|
committer | TymanWasTaken <32660892+tymanwastaken@users.noreply.github.com> | 2021-05-25 13:01:53 -0600 |
commit | df172e0b0d4180d025e19b80f4f091b01401e0d1 (patch) | |
tree | cf1b7d5f2ca4ec740256a88f001b676eb8553f9f /src/tasks | |
parent | bbe1ab863f69d76482979607e71199899b2a3a3e (diff) | |
download | tanzanite-df172e0b0d4180d025e19b80f4f091b01401e0d1.tar.gz tanzanite-df172e0b0d4180d025e19b80f4f091b01401e0d1.tar.bz2 tanzanite-df172e0b0d4180d025e19b80f4f091b01401e0d1.zip |
Compltely update to esbuild and yarn v2, fix eval, and bump akairo fork version (this one has private responses)
Diffstat (limited to 'src/tasks')
-rw-r--r-- | src/tasks/Unban.ts | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/tasks/Unban.ts b/src/tasks/Unban.ts new file mode 100644 index 0000000..a59933a --- /dev/null +++ b/src/tasks/Unban.ts @@ -0,0 +1,49 @@ +import chalk from "chalk"; +import { DiscordAPIError } from "discord.js"; +import { Op } from "sequelize"; +import { BotTask } from "../lib/extensions/BotTask" +import { Ban } from "../lib/models"; + +export default class UnbanTask extends BotTask { + constructor() { + super('unban', { + delay: 30_000, // 1/2 min + runOnStart: true + }) + } + async exec(): Promise<void> { + const rows = await Ban.findAll({ + where: { + [Op.and]: [ + { + expires: { + [Op.lt]: new Date() // Find all rows with an expiry date before now + } + } + ] + } + }); + this.client.logger.verbose( + chalk.cyan(`Queried bans, found ${rows.length} expired bans.`) + ); + for (const row of rows) { + const guild = this.client.guilds.cache.get(row.guild); + if (!guild) { + await row.destroy(); + continue; + } + try { + await guild.members.unban( + row.user, + `Unbanning user because tempban expired` + ); + } catch (e) { + if (e instanceof DiscordAPIError) { + // Member not banned, ignore + } else throw e; + } + await row.destroy(); + this.client.logger.verbose(chalk.cyan('Unbanned user')); + } + } +}
\ No newline at end of file |