3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-21 16:55:03 +00:00

Port Mutes plugin

This commit is contained in:
Dragory 2020-07-22 22:08:59 +03:00
parent dda3537353
commit c12ea9f627
11 changed files with 797 additions and 0 deletions

View file

@ -0,0 +1,32 @@
import { command } from "knub";
import { MutesPluginType } from "../types";
import { User } from "eris";
import { sendSuccessMessage } from "../../../pluginUtils";
import { resolveMember } from "../../../utils";
export const ClearMutesWithoutRoleCmd = command<MutesPluginType>()({
trigger: "clear_mutes_without_role",
permission: "can_cleanup",
description: "Clear dangling mutes for members whose mute role was removed by other means",
async run({ pluginData, message: msg }) {
const activeMutes = await pluginData.state.mutes.getActiveMutes();
const muteRole = pluginData.config.get().mute_role;
if (!muteRole) return;
await msg.channel.createMessage("Clearing mutes from members that don't have the mute role...");
let cleared = 0;
for (const mute of activeMutes) {
const member = await resolveMember(pluginData.client, pluginData.guild, mute.user_id);
if (!member) continue;
if (!member.roles.includes(muteRole)) {
await pluginData.state.mutes.clear(mute.user_id);
cleared++;
}
}
sendSuccessMessage(pluginData, msg.channel, `Cleared ${cleared} mutes from members that don't have the mute role`);
},
});