From ccd1d3d69eee8868f94d25573b174c6daa4e45ad Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Mon, 15 Aug 2022 19:07:55 +0300 Subject: [PATCH] fix: fix error if automod unloads after beforeLoad() but without running afterLoad() --- backend/src/plugins/Automod/AutomodPlugin.ts | 36 +++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/backend/src/plugins/Automod/AutomodPlugin.ts b/backend/src/plugins/Automod/AutomodPlugin.ts index 72cb7aa5..b485b4b9 100644 --- a/backend/src/plugins/Automod/AutomodPlugin.ts +++ b/backend/src/plugins/Automod/AutomodPlugin.ts @@ -310,26 +310,44 @@ export const AutomodPlugin = zeppelinGuildPlugin()({ async beforeUnload(pluginData) { const countersPlugin = pluginData.getPlugin(CountersPlugin); - countersPlugin.offCounterEvent("trigger", pluginData.state.onCounterTrigger); - countersPlugin.offCounterEvent("reverseTrigger", pluginData.state.onCounterReverseTrigger); + if (pluginData.state.onCounterTrigger) { + countersPlugin.offCounterEvent("trigger", pluginData.state.onCounterTrigger); + } + if (pluginData.state.onCounterReverseTrigger) { + countersPlugin.offCounterEvent("reverseTrigger", pluginData.state.onCounterReverseTrigger); + } const modActionsEvents = pluginData.getPlugin(ModActionsPlugin).getEventEmitter(); - unregisterEventListenersFromMap(modActionsEvents, pluginData.state.modActionsListeners); + if (pluginData.state.modActionsListeners) { + unregisterEventListenersFromMap(modActionsEvents, pluginData.state.modActionsListeners); + } const mutesEvents = pluginData.getPlugin(MutesPlugin).getEventEmitter(); - unregisterEventListenersFromMap(mutesEvents, pluginData.state.mutesListeners); + if (pluginData.state.mutesListeners) { + unregisterEventListenersFromMap(mutesEvents, pluginData.state.mutesListeners); + } pluginData.state.queue.clear(); discardRegExpRunner(`guild-${pluginData.guild.id}`); - clearInterval(pluginData.state.clearRecentActionsInterval); + if (pluginData.state.clearRecentActionsInterval) { + clearInterval(pluginData.state.clearRecentActionsInterval); + } - clearInterval(pluginData.state.clearRecentSpamInterval); + if (pluginData.state.clearRecentSpamInterval) { + clearInterval(pluginData.state.clearRecentSpamInterval); + } - clearInterval(pluginData.state.clearRecentNicknameChangesInterval); + if (pluginData.state.clearRecentNicknameChangesInterval) { + clearInterval(pluginData.state.clearRecentNicknameChangesInterval); + } - pluginData.state.savedMessages.events.off("create", pluginData.state.onMessageCreateFn); - pluginData.state.savedMessages.events.off("update", pluginData.state.onMessageUpdateFn); + if (pluginData.state.onMessageCreateFn) { + pluginData.state.savedMessages.events.off("create", pluginData.state.onMessageCreateFn); + } + if (pluginData.state.onMessageUpdateFn) { + pluginData.state.savedMessages.events.off("update", pluginData.state.onMessageUpdateFn); + } }, });