From 499853bb52931176ef979814280d95f486edd988 Mon Sep 17 00:00:00 2001 From: Dark <7890309+DarkView@users.noreply.github.com> Date: Thu, 28 Jan 2021 02:06:08 +0100 Subject: [PATCH] Add safety check for role availability --- backend/src/plugins/Mutes/functions/clearExpiredMutes.ts | 3 ++- backend/src/plugins/Mutes/functions/unmuteUser.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/plugins/Mutes/functions/clearExpiredMutes.ts b/backend/src/plugins/Mutes/functions/clearExpiredMutes.ts index 54f5b1c1..882afae2 100644 --- a/backend/src/plugins/Mutes/functions/clearExpiredMutes.ts +++ b/backend/src/plugins/Mutes/functions/clearExpiredMutes.ts @@ -17,8 +17,9 @@ export async function clearExpiredMutes(pluginData: GuildPluginData x !== muteRole)]), + new Set([...mute.roles_to_restore, ...member.roles.filter(x => x !== muteRole && guildRoles.has(x))]), ); member.edit(memberOptions); } diff --git a/backend/src/plugins/Mutes/functions/unmuteUser.ts b/backend/src/plugins/Mutes/functions/unmuteUser.ts index e2a78da6..ddae6cfd 100644 --- a/backend/src/plugins/Mutes/functions/unmuteUser.ts +++ b/backend/src/plugins/Mutes/functions/unmuteUser.ts @@ -38,8 +38,9 @@ export async function unmuteUser( } 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)]), + new Set([...existingMute.roles_to_restore, ...member.roles.filter(x => x !== muteRole && guildRoles.has(x))]), ); member.edit(memberOptions); }