From 10d757f5884e99da013b3a3d8dd8145bb9348c64 Mon Sep 17 00:00:00 2001 From: Dragory Date: Sun, 13 Jan 2019 16:54:31 +0200 Subject: [PATCH] Add command to clear dangling active mutes --- src/plugins/Mutes.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/plugins/Mutes.ts b/src/plugins/Mutes.ts index c587b92a..601df364 100644 --- a/src/plugins/Mutes.ts +++ b/src/plugins/Mutes.ts @@ -4,7 +4,7 @@ import moment from "moment-timezone"; import { ZeppelinPlugin } from "./ZeppelinPlugin"; import { GuildActions } from "../data/GuildActions"; import { GuildMutes } from "../data/GuildMutes"; -import { DBDateFormat, chunkMessageLines, stripObjectToScalars, successMessage } from "../utils"; +import { DBDateFormat, chunkMessageLines, stripObjectToScalars, successMessage, errorMessage } from "../utils"; import humanizeDuration from "humanize-duration"; import { LogType } from "../data/LogType"; import { GuildLogs } from "../data/GuildLogs"; @@ -235,6 +235,19 @@ export class MutesPlugin extends ZeppelinPlugin { msg.channel.createMessage(successMessage(`Cleared ${cleared} mutes from members that don't have the mute role`)); } + @d.command("clear_mute", "") + @d.permission("cleanup") + async clearMuteCmd(msg: Message, args: { userId: string }) { + const mute = await this.mutes.findExistingMuteForUserId(args.userId); + if (!mute) { + msg.channel.createMessage(errorMessage("No active mutes found for that user id")); + return; + } + + await this.mutes.clear(args.userId); + msg.channel.createMessage(successMessage(`Active mute cleared`)); + } + protected async clearExpiredMutes() { const expiredMutes = await this.mutes.getExpiredMutes(); for (const mute of expiredMutes) {