From 6f0e8bb76efe48488e24f5e3293d58bd59866ddb Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Thu, 2 May 2019 18:41:34 +0300 Subject: [PATCH] Properly clear expired mutes even if the user has left the server --- src/plugins/Mutes.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/plugins/Mutes.ts b/src/plugins/Mutes.ts index a8ec2245..e37ca51d 100644 --- a/src/plugins/Mutes.ts +++ b/src/plugins/Mutes.ts @@ -13,6 +13,7 @@ import { stripObjectToScalars, successMessage, ucfirst, + UnknownUser, } from "../utils"; import humanizeDuration from "humanize-duration"; import { LogType } from "../data/LogType"; @@ -566,16 +567,19 @@ export class MutesPlugin extends ZeppelinPlugin { const expiredMutes = await this.mutes.getExpiredMutes(); for (const mute of expiredMutes) { const member = await this.getMember(mute.user_id); - if (!member) continue; - try { - await member.removeRole(this.getConfig().mute_role); - } catch (e) {} // tslint:disable-line + if (member) { + try { + await member.removeRole(this.getConfig().mute_role); + } catch (e) {} // tslint:disable-line + } - await this.mutes.clear(member.id); + await this.mutes.clear(mute.user_id); this.serverLogs.log(LogType.MEMBER_MUTE_EXPIRED, { - member: stripObjectToScalars(member, ["user"]), + member: member + ? stripObjectToScalars(member, ["user"]) + : { id: mute.user_id, user: new UnknownUser({ id: mute.user_id }) }, }); } }