From 2d84a02d48d487cae82a9db9d72bf63e73a93546 Mon Sep 17 00:00:00 2001 From: metal Date: Sat, 25 Sep 2021 19:40:17 +0100 Subject: [PATCH] Fix Persist assigning deleted roles (#288) --- backend/src/plugins/Persist/events/LoadDataEvt.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/plugins/Persist/events/LoadDataEvt.ts b/backend/src/plugins/Persist/events/LoadDataEvt.ts index 4d2becb4..699fb703 100644 --- a/backend/src/plugins/Persist/events/LoadDataEvt.ts +++ b/backend/src/plugins/Persist/events/LoadDataEvt.ts @@ -43,10 +43,12 @@ export const LoadDataEvt = persistEvt({ return; } + const guildRoles = Array.from(pluginData.guild.roles.cache.keys()); + // Check specific role permissions if (config.persisted_roles) { for (const roleId of config.persisted_roles) { - if (!canAssignRole(pluginData.guild, me, roleId)) { + if (!canAssignRole(pluginData.guild, me, roleId) && guildRoles.includes(roleId)) { pluginData.getPlugin(LogsPlugin).logBotAlert({ body: `Missing permissions to assign role \`${roleId}\` in persist plugin`, }); @@ -57,7 +59,7 @@ export const LoadDataEvt = persistEvt({ const persistedRoles = config.persisted_roles; if (persistedRoles.length) { - const rolesToRestore = intersection(persistedRoles, persistedData.roles); + const rolesToRestore = intersection(persistedRoles, persistedData.roles, guildRoles); if (rolesToRestore.length) { restoredData.push("roles");