3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-16 14:11:50 +00:00

Convert clear_mute to accept multiple IDs, with proper error handling

This commit is contained in:
Dark 2020-05-02 19:20:52 +02:00
parent 4cf8c2ae92
commit 2d01a4194f

View file

@ -617,17 +617,32 @@ export class MutesPlugin extends ZeppelinPlugin<TConfigSchema> {
this.sendSuccessMessage(msg.channel, `Cleared ${cleared} mutes from members that don't have the mute role`); this.sendSuccessMessage(msg.channel, `Cleared ${cleared} mutes from members that don't have the mute role`);
} }
@d.command("clear_mute", "<userId:string>") @d.command("clear_mute", "<userIds:string...>")
@d.permission("can_cleanup") @d.permission("can_cleanup")
protected async clearMuteCmd(msg: Message, args: { userId: string }) { protected async clearMuteCmd(msg: Message, args: { userIds: string[] }) {
const mute = await this.mutes.findExistingMuteForUserId(args.userId); const failed = [];
if (!mute) { for (const id of args.userIds) {
msg.channel.createMessage(errorMessage("No active mutes found for that user id")); const mute = await this.mutes.findExistingMuteForUserId(id);
return; if (!mute) {
failed.push(id);
continue;
}
await this.mutes.clear(id);
} }
await this.mutes.clear(args.userId); if (failed.length !== args.userIds.length) {
this.sendSuccessMessage(msg.channel, `Active mute cleared`); this.sendSuccessMessage(msg.channel, `**${args.userIds.length - failed.length} active mute(s) cleared**`);
}
if (failed.length) {
let list = "";
for (const id of failed) {
list += id + " ";
}
this.sendErrorMessage(
msg.channel,
`**${failed.length}/${args.userIds.length} IDs failed**, they are not muted: ${list}`,
);
}
} }
protected async clearExpiredMutes() { protected async clearExpiredMutes() {