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

Allow certain or all roles to be removed upon mute and readded on unmute (#140)

This commit is contained in:
Nils 2021-02-13 19:04:40 +01:00 committed by GitHub
parent 011390658e
commit d9282643d8
12 changed files with 135 additions and 27 deletions

View file

@ -7,7 +7,7 @@ import humanizeDuration from "humanize-duration";
import { CasesPlugin } from "../../Cases/CasesPlugin";
import { CaseTypes } from "../../../data/CaseTypes";
import { LogType } from "../../../data/LogType";
import { WithRequiredProps } from "../../../utils/typeUtils";
import { MemberOptions } from "eris";
export async function unmuteUser(
pluginData: GuildPluginData<MutesPluginType>,
@ -36,6 +36,14 @@ export async function unmuteUser(
if (muteRole && member.roles.includes(muteRole)) {
await member.removeRole(muteRole);
}
if (existingMute?.roles_to_restore) {
const memberOptions: MemberOptions = {};
const guildRoles = pluginData.guild.roles;
memberOptions.roles = Array.from(
new Set([...existingMute.roles_to_restore, ...member.roles.filter(x => x !== muteRole && guildRoles.has(x))]),
);
member.edit(memberOptions);
}
} else {
console.warn(
`Member ${userId} not found in guild ${pluginData.guild.name} (${pluginData.guild.id}) when attempting to unmute`,