From f92ee9ba4f8d59e2c9e2699016840b7a0ba37006 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sun, 31 Oct 2021 16:48:32 +0200 Subject: [PATCH] fix: fix errors when unloading certain plugins after beforeLoad but before afterLoad --- .../src/plugins/Counters/CountersPlugin.ts | 6 ++++-- backend/src/plugins/Logs/LogsPlugin.ts | 20 ++++++++++++++----- .../plugins/ModActions/ModActionsPlugin.ts | 2 +- backend/src/plugins/Mutes/MutesPlugin.ts | 2 +- backend/src/plugins/Post/PostPlugin.ts | 2 +- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/backend/src/plugins/Counters/CountersPlugin.ts b/backend/src/plugins/Counters/CountersPlugin.ts index 07738195..6d4bf708 100644 --- a/backend/src/plugins/Counters/CountersPlugin.ts +++ b/backend/src/plugins/Counters/CountersPlugin.ts @@ -212,8 +212,10 @@ export const CountersPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - for (const interval of pluginData.state.decayTimers) { - clearInterval(interval); + if (pluginData.state.decayTimers) { + for (const interval of pluginData.state.decayTimers) { + clearInterval(interval); + } } pluginData.state.events.removeAllListeners(); diff --git a/backend/src/plugins/Logs/LogsPlugin.ts b/backend/src/plugins/Logs/LogsPlugin.ts index 4e79f583..053afffb 100644 --- a/backend/src/plugins/Logs/LogsPlugin.ts +++ b/backend/src/plugins/Logs/LogsPlugin.ts @@ -307,13 +307,23 @@ export const LogsPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - pluginData.state.guildLogs.removeListener("log", pluginData.state.logListener); + if (pluginData.state.logListener) { + pluginData.state.guildLogs.removeListener("log", pluginData.state.logListener); + } - pluginData.state.savedMessages.events.off("delete", pluginData.state.onMessageDeleteFn); - pluginData.state.savedMessages.events.off("deleteBulk", pluginData.state.onMessageDeleteBulkFn); - pluginData.state.savedMessages.events.off("update", pluginData.state.onMessageUpdateFn); + if (pluginData.state.onMessageDeleteFn) { + pluginData.state.savedMessages.events.off("delete", pluginData.state.onMessageDeleteFn); + } + if (pluginData.state.onMessageDeleteBulkFn) { + pluginData.state.savedMessages.events.off("deleteBulk", pluginData.state.onMessageDeleteBulkFn); + } + if (pluginData.state.onMessageUpdateFn) { + pluginData.state.savedMessages.events.off("update", pluginData.state.onMessageUpdateFn); + } - pluginData.state.regexRunner.off("repeatedTimeout", pluginData.state.regexRunnerRepeatedTimeoutListener); + if (pluginData.state.regexRunnerRepeatedTimeoutListener) { + pluginData.state.regexRunner.off("repeatedTimeout", pluginData.state.regexRunnerRepeatedTimeoutListener); + } discardRegExpRunner(`guild-${pluginData.guild.id}`); }, }); diff --git a/backend/src/plugins/ModActions/ModActionsPlugin.ts b/backend/src/plugins/ModActions/ModActionsPlugin.ts index 60dc3bf7..ba19a0b0 100644 --- a/backend/src/plugins/ModActions/ModActionsPlugin.ts +++ b/backend/src/plugins/ModActions/ModActionsPlugin.ts @@ -216,7 +216,7 @@ export const ModActionsPlugin = zeppelinGuildPlugin()({ beforeUnload(pluginData) { pluginData.state.unloaded = true; - pluginData.state.unregisterGuildEventListener(); + pluginData.state.unregisterGuildEventListener?.(); pluginData.state.events.removeAllListeners(); }, }); diff --git a/backend/src/plugins/Mutes/MutesPlugin.ts b/backend/src/plugins/Mutes/MutesPlugin.ts index dcd3983e..eba6b40f 100644 --- a/backend/src/plugins/Mutes/MutesPlugin.ts +++ b/backend/src/plugins/Mutes/MutesPlugin.ts @@ -120,7 +120,7 @@ export const MutesPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - pluginData.state.unregisterGuildEventListener(); + pluginData.state.unregisterGuildEventListener?.(); pluginData.state.events.removeAllListeners(); }, }); diff --git a/backend/src/plugins/Post/PostPlugin.ts b/backend/src/plugins/Post/PostPlugin.ts index 5c44ce27..cc32bbbf 100644 --- a/backend/src/plugins/Post/PostPlugin.ts +++ b/backend/src/plugins/Post/PostPlugin.ts @@ -67,6 +67,6 @@ export const PostPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - pluginData.state.unregisterGuildEventListener(); + pluginData.state.unregisterGuildEventListener?.(); }, });