diff --git a/backend/src/data/entities/CounterTrigger.ts b/backend/src/data/entities/CounterTrigger.ts index 90cdf488..91cbf995 100644 --- a/backend/src/data/entities/CounterTrigger.ts +++ b/backend/src/data/entities/CounterTrigger.ts @@ -2,7 +2,7 @@ import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"; export const TRIGGER_COMPARISON_OPS = ["=", "!=", ">", "<", ">=", "<="] as const; -export type TriggerComparisonOp = (typeof TRIGGER_COMPARISON_OPS)[number]; +export type TriggerComparisonOp = typeof TRIGGER_COMPARISON_OPS[number]; const REVERSE_OPS: Record = { "=": "!=", diff --git a/backend/src/plugins/AutoDelete/AutoDeletePlugin.ts b/backend/src/plugins/AutoDelete/AutoDeletePlugin.ts index cb1348d9..f39f3dc8 100644 --- a/backend/src/plugins/AutoDelete/AutoDeletePlugin.ts +++ b/backend/src/plugins/AutoDelete/AutoDeletePlugin.ts @@ -56,9 +56,11 @@ export const AutoDeletePlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - pluginData.state.guildSavedMessages.events.off("create", pluginData.state.onMessageCreateFn); - pluginData.state.guildSavedMessages.events.off("delete", pluginData.state.onMessageDeleteFn); - pluginData.state.guildSavedMessages.events.off("deleteBulk", pluginData.state.onMessageDeleteBulkFn); + const { state, guild } = pluginData; + + state.guildSavedMessages.events.off("create", state.onMessageCreateFn); + state.guildSavedMessages.events.off("delete", state.onMessageDeleteFn); + state.guildSavedMessages.events.off("deleteBulk", state.onMessageDeleteBulkFn); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/AutoReactions/AutoReactionsPlugin.ts b/backend/src/plugins/AutoReactions/AutoReactionsPlugin.ts index f3f18e5e..c8ccc07c 100644 --- a/backend/src/plugins/AutoReactions/AutoReactionsPlugin.ts +++ b/backend/src/plugins/AutoReactions/AutoReactionsPlugin.ts @@ -53,9 +53,11 @@ export const AutoReactionsPlugin = zeppelinGuildPlugin( ], beforeLoad(pluginData) { - pluginData.state.savedMessages = GuildSavedMessages.getGuildInstance(pluginData.guild.id); - pluginData.state.autoReactions = GuildAutoReactions.getGuildInstance(pluginData.guild.id); - pluginData.state.cache = new Map(); + const { state, guild } = pluginData; + + state.savedMessages = GuildSavedMessages.getGuildInstance(guild.id); + state.autoReactions = GuildAutoReactions.getGuildInstance(guild.id); + state.cache = new Map(); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Automod/AutomodPlugin.ts b/backend/src/plugins/Automod/AutomodPlugin.ts index 3fe5d0c1..6f5023de 100644 --- a/backend/src/plugins/Automod/AutomodPlugin.ts +++ b/backend/src/plugins/Automod/AutomodPlugin.ts @@ -222,137 +222,129 @@ export const AutomodPlugin = zeppelinGuildPlugin()({ messageCommands: [AntiraidClearCmd, SetAntiraidCmd, ViewAntiraidCmd], async beforeLoad(pluginData) { - pluginData.state.queue = new Queue(); + const { state, guild } = pluginData; - pluginData.state.regexRunner = getRegExpRunner(`guild-${pluginData.guild.id}`); + state.queue = new Queue(); - pluginData.state.recentActions = []; + state.regexRunner = getRegExpRunner(`guild-${guild.id}`); - pluginData.state.recentSpam = []; + state.recentActions = []; - pluginData.state.recentNicknameChanges = new Map(); + state.recentSpam = []; - pluginData.state.ignoredRoleChanges = new Set(); + state.recentNicknameChanges = new Map(); - pluginData.state.cooldownManager = new CooldownManager(); + state.ignoredRoleChanges = new Set(); - pluginData.state.logs = new GuildLogs(pluginData.guild.id); - pluginData.state.savedMessages = GuildSavedMessages.getGuildInstance(pluginData.guild.id); - pluginData.state.antiraidLevels = GuildAntiraidLevels.getGuildInstance(pluginData.guild.id); - pluginData.state.archives = GuildArchives.getGuildInstance(pluginData.guild.id); + state.cooldownManager = new CooldownManager(); - pluginData.state.cachedAntiraidLevel = await pluginData.state.antiraidLevels.get(); + state.logs = new GuildLogs(guild.id); + state.savedMessages = GuildSavedMessages.getGuildInstance(guild.id); + state.antiraidLevels = GuildAntiraidLevels.getGuildInstance(guild.id); + state.archives = GuildArchives.getGuildInstance(guild.id); + + state.cachedAntiraidLevel = await state.antiraidLevels.get(); }, async afterLoad(pluginData) { - pluginData.state.clearRecentActionsInterval = setInterval(() => clearOldRecentActions(pluginData), 1 * MINUTES); - pluginData.state.clearRecentSpamInterval = setInterval(() => clearOldRecentSpam(pluginData), 1 * SECONDS); - pluginData.state.clearRecentNicknameChangesInterval = setInterval( + const { state, guild } = pluginData; + + state.clearRecentActionsInterval = setInterval(() => clearOldRecentActions(pluginData), 1 * MINUTES); + state.clearRecentSpamInterval = setInterval(() => clearOldRecentSpam(pluginData), 1 * SECONDS); + state.clearRecentNicknameChangesInterval = setInterval( () => clearOldRecentNicknameChanges(pluginData), 30 * SECONDS, ); - pluginData.state.onMessageCreateFn = (message) => runAutomodOnMessage(pluginData, message, false); - pluginData.state.savedMessages.events.on("create", pluginData.state.onMessageCreateFn); + state.onMessageCreateFn = (message) => runAutomodOnMessage(pluginData, message, false); + state.savedMessages.events.on("create", state.onMessageCreateFn); - pluginData.state.onMessageUpdateFn = (message) => runAutomodOnMessage(pluginData, message, true); - pluginData.state.savedMessages.events.on("update", pluginData.state.onMessageUpdateFn); + state.onMessageUpdateFn = (message) => runAutomodOnMessage(pluginData, message, true); + state.savedMessages.events.on("update", state.onMessageUpdateFn); // @ts-expect-error const countersPlugin = pluginData.getPlugin(CountersPlugin); - pluginData.state.onCounterTrigger = (name, triggerName, channelId, userId) => { + state.onCounterTrigger = (name, triggerName, channelId, userId) => { runAutomodOnCounterTrigger(pluginData, name, triggerName, channelId, userId, false); }; - pluginData.state.onCounterReverseTrigger = (name, triggerName, channelId, userId) => { + state.onCounterReverseTrigger = (name, triggerName, channelId, userId) => { runAutomodOnCounterTrigger(pluginData, name, triggerName, channelId, userId, true); }; // @ts-expect-error - countersPlugin.onCounterEvent("trigger", pluginData.state.onCounterTrigger); + countersPlugin.onCounterEvent("trigger", state.onCounterTrigger); // @ts-expect-error - countersPlugin.onCounterEvent("reverseTrigger", pluginData.state.onCounterReverseTrigger); + countersPlugin.onCounterEvent("reverseTrigger", state.onCounterReverseTrigger); const modActionsEvents = pluginData.getPlugin(ModActionsPlugin).getEventEmitter(); - pluginData.state.modActionsListeners = new Map(); - pluginData.state.modActionsListeners.set("note", (userId: string) => - runAutomodOnModAction(pluginData, "note", userId), + state.modActionsListeners = new Map(); + state.modActionsListeners.set("note", (userId: string) => runAutomodOnModAction(pluginData, "note", userId)); + state.modActionsListeners.set("warn", (userId: string, reason: string | undefined, isAutomodAction: boolean) => + runAutomodOnModAction(pluginData, "warn", userId, reason, isAutomodAction), ); - pluginData.state.modActionsListeners.set( - "warn", - (userId: string, reason: string | undefined, isAutomodAction: boolean) => - runAutomodOnModAction(pluginData, "warn", userId, reason, isAutomodAction), + state.modActionsListeners.set("kick", (userId: string, reason: string | undefined, isAutomodAction: boolean) => + runAutomodOnModAction(pluginData, "kick", userId, reason, isAutomodAction), ); - pluginData.state.modActionsListeners.set( - "kick", - (userId: string, reason: string | undefined, isAutomodAction: boolean) => - runAutomodOnModAction(pluginData, "kick", userId, reason, isAutomodAction), + state.modActionsListeners.set("ban", (userId: string, reason: string | undefined, isAutomodAction: boolean) => + runAutomodOnModAction(pluginData, "ban", userId, reason, isAutomodAction), ); - pluginData.state.modActionsListeners.set( - "ban", - (userId: string, reason: string | undefined, isAutomodAction: boolean) => - runAutomodOnModAction(pluginData, "ban", userId, reason, isAutomodAction), - ); - pluginData.state.modActionsListeners.set("unban", (userId: string) => - runAutomodOnModAction(pluginData, "unban", userId), - ); - registerEventListenersFromMap(modActionsEvents, pluginData.state.modActionsListeners); + state.modActionsListeners.set("unban", (userId: string) => runAutomodOnModAction(pluginData, "unban", userId)); + registerEventListenersFromMap(modActionsEvents, state.modActionsListeners); const mutesEvents = pluginData.getPlugin(MutesPlugin).getEventEmitter(); - pluginData.state.mutesListeners = new Map(); - pluginData.state.mutesListeners.set( - "mute", - (userId: string, reason: string | undefined, isAutomodAction: boolean) => - runAutomodOnModAction(pluginData, "mute", userId, reason, isAutomodAction), + state.mutesListeners = new Map(); + state.mutesListeners.set("mute", (userId: string, reason: string | undefined, isAutomodAction: boolean) => + runAutomodOnModAction(pluginData, "mute", userId, reason, isAutomodAction), ); - pluginData.state.mutesListeners.set("unmute", (userId: string) => - runAutomodOnModAction(pluginData, "unmute", userId), - ); - registerEventListenersFromMap(mutesEvents, pluginData.state.mutesListeners); + state.mutesListeners.set("unmute", (userId: string) => runAutomodOnModAction(pluginData, "unmute", userId)); + registerEventListenersFromMap(mutesEvents, state.mutesListeners); }, async beforeUnload(pluginData) { + const { state, guild } = pluginData; + // @ts-expect-error const countersPlugin = pluginData.getPlugin(CountersPlugin); - if (pluginData.state.onCounterTrigger) { + if (state.onCounterTrigger) { // @ts-expect-error - countersPlugin.offCounterEvent("trigger", pluginData.state.onCounterTrigger); + countersPlugin.offCounterEvent("trigger", state.onCounterTrigger); } - if (pluginData.state.onCounterReverseTrigger) { + if (state.onCounterReverseTrigger) { // @ts-expect-error - countersPlugin.offCounterEvent("reverseTrigger", pluginData.state.onCounterReverseTrigger); + countersPlugin.offCounterEvent("reverseTrigger", state.onCounterReverseTrigger); } const modActionsEvents = pluginData.getPlugin(ModActionsPlugin).getEventEmitter(); - if (pluginData.state.modActionsListeners) { - unregisterEventListenersFromMap(modActionsEvents, pluginData.state.modActionsListeners); + if (state.modActionsListeners) { + unregisterEventListenersFromMap(modActionsEvents, state.modActionsListeners); } const mutesEvents = pluginData.getPlugin(MutesPlugin).getEventEmitter(); - if (pluginData.state.mutesListeners) { - unregisterEventListenersFromMap(mutesEvents, pluginData.state.mutesListeners); + if (state.mutesListeners) { + unregisterEventListenersFromMap(mutesEvents, state.mutesListeners); } - pluginData.state.queue.clear(); + state.queue.clear(); - discardRegExpRunner(`guild-${pluginData.guild.id}`); + discardRegExpRunner(`guild-${guild.id}`); - if (pluginData.state.clearRecentActionsInterval) { - clearInterval(pluginData.state.clearRecentActionsInterval); + if (state.clearRecentActionsInterval) { + clearInterval(state.clearRecentActionsInterval); } - if (pluginData.state.clearRecentSpamInterval) { - clearInterval(pluginData.state.clearRecentSpamInterval); + if (state.clearRecentSpamInterval) { + clearInterval(state.clearRecentSpamInterval); } - if (pluginData.state.clearRecentNicknameChangesInterval) { - clearInterval(pluginData.state.clearRecentNicknameChangesInterval); + if (state.clearRecentNicknameChangesInterval) { + clearInterval(state.clearRecentNicknameChangesInterval); } - if (pluginData.state.onMessageCreateFn) { - pluginData.state.savedMessages.events.off("create", pluginData.state.onMessageCreateFn); + if (state.onMessageCreateFn) { + state.savedMessages.events.off("create", state.onMessageCreateFn); } - if (pluginData.state.onMessageUpdateFn) { - pluginData.state.savedMessages.events.off("update", pluginData.state.onMessageUpdateFn); + if (state.onMessageUpdateFn) { + state.savedMessages.events.off("update", state.onMessageUpdateFn); } }, }); diff --git a/backend/src/plugins/BotControl/BotControlPlugin.ts b/backend/src/plugins/BotControl/BotControlPlugin.ts index 0c100a28..5fc06034 100644 --- a/backend/src/plugins/BotControl/BotControlPlugin.ts +++ b/backend/src/plugins/BotControl/BotControlPlugin.ts @@ -61,17 +61,19 @@ export const BotControlPlugin = zeppelinGlobalPlugin()({ ], async afterLoad(pluginData) { - pluginData.state.archives = new GuildArchives(0); - pluginData.state.allowedGuilds = new AllowedGuilds(); - pluginData.state.configs = new Configs(); - pluginData.state.apiPermissionAssignments = new ApiPermissionAssignments(); + const { state, client } = pluginData; + + state.archives = new GuildArchives(0); + state.allowedGuilds = new AllowedGuilds(); + state.configs = new Configs(); + state.apiPermissionAssignments = new ApiPermissionAssignments(); const activeReload = getActiveReload(); if (activeReload) { const [guildId, channelId] = activeReload; resetActiveReload(); - const guild = await pluginData.client.guilds.fetch(guildId as Snowflake); + const guild = await client.guilds.fetch(guildId as Snowflake); if (guild) { const channel = guild.channels.cache.get(channelId as Snowflake); if (channel instanceof TextChannel) { diff --git a/backend/src/plugins/Cases/CasesPlugin.ts b/backend/src/plugins/Cases/CasesPlugin.ts index ce1cb1ef..b74ec590 100644 --- a/backend/src/plugins/Cases/CasesPlugin.ts +++ b/backend/src/plugins/Cases/CasesPlugin.ts @@ -81,9 +81,11 @@ export const CasesPlugin = zeppelinGuildPlugin()({ }, afterLoad(pluginData) { - pluginData.state.logs = new GuildLogs(pluginData.guild.id); - pluginData.state.archives = GuildArchives.getGuildInstance(pluginData.guild.id); - pluginData.state.cases = GuildCases.getGuildInstance(pluginData.guild.id); + const { state, guild } = pluginData; + + state.logs = new GuildLogs(pluginData.guild.id); + state.archives = GuildArchives.getGuildInstance(guild.id); + state.cases = GuildCases.getGuildInstance(guild.id); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Censor/CensorPlugin.ts b/backend/src/plugins/Censor/CensorPlugin.ts index 08a3d5ff..a52fb093 100644 --- a/backend/src/plugins/Censor/CensorPlugin.ts +++ b/backend/src/plugins/Censor/CensorPlugin.ts @@ -69,7 +69,7 @@ export const CensorPlugin = zeppelinGuildPlugin()({ }, afterLoad(pluginData) { - const { state, guild } = pluginData; + const { state } = pluginData; state.onMessageCreateFn = (msg) => onMessageCreate(pluginData, msg); state.savedMessages.events.on("create", state.onMessageCreateFn); @@ -79,10 +79,12 @@ export const CensorPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - discardRegExpRunner(`guild-${pluginData.guild.id}`); + const { state, guild } = pluginData; - pluginData.state.savedMessages.events.off("create", pluginData.state.onMessageCreateFn); - pluginData.state.savedMessages.events.off("update", pluginData.state.onMessageUpdateFn); + discardRegExpRunner(`guild-${guild.id}`); + + state.savedMessages.events.off("create", state.onMessageCreateFn); + state.savedMessages.events.off("update", state.onMessageUpdateFn); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Counters/CountersPlugin.ts b/backend/src/plugins/Counters/CountersPlugin.ts index e6a0c7da..5dae0e86 100644 --- a/backend/src/plugins/Counters/CountersPlugin.ts +++ b/backend/src/plugins/Counters/CountersPlugin.ts @@ -1,6 +1,5 @@ import { EventEmitter } from "events"; import { PluginOptions } from "knub"; -import { ConfigParserFn } from "knub/dist/config/configTypes"; import { buildCounterConditionString, CounterTrigger, @@ -145,32 +144,30 @@ export const CountersPlugin = zeppelinGuildPlugin()({ ], async beforeLoad(pluginData) { - pluginData.state.counters = new GuildCounters(pluginData.guild.id); - pluginData.state.events = new EventEmitter(); - pluginData.state.counterTriggersByCounterId = new Map(); + const { state, guild } = pluginData; + + state.counters = new GuildCounters(guild.id); + state.events = new EventEmitter(); + state.counterTriggersByCounterId = new Map(); const activeTriggerIds: number[] = []; // Initialize and store the IDs of each of the counters internally - pluginData.state.counterIds = {}; + state.counterIds = {}; const config = pluginData.config.get(); for (const counter of Object.values(config.counters)) { - const dbCounter = await pluginData.state.counters.findOrCreateCounter( - counter.name, - counter.per_channel, - counter.per_user, - ); - pluginData.state.counterIds[counter.name] = dbCounter.id; + const dbCounter = await state.counters.findOrCreateCounter(counter.name, counter.per_channel, counter.per_user); + state.counterIds[counter.name] = dbCounter.id; const thisCounterTriggers: CounterTrigger[] = []; - pluginData.state.counterTriggersByCounterId.set(dbCounter.id, thisCounterTriggers); + state.counterTriggersByCounterId.set(dbCounter.id, thisCounterTriggers); // Initialize triggers for (const trigger of Object.values(counter.triggers)) { const theTrigger = trigger as TTrigger; const parsedCondition = parseCounterConditionString(theTrigger.condition)!; const parsedReverseCondition = parseCounterConditionString(theTrigger.reverse_condition)!; - const counterTrigger = await pluginData.state.counters.initCounterTrigger( + const counterTrigger = await state.counters.initCounterTrigger( dbCounter.id, theTrigger.name, parsedCondition[0], @@ -184,17 +181,19 @@ export const CountersPlugin = zeppelinGuildPlugin()({ } // Mark old/unused counters to be deleted later - await pluginData.state.counters.markUnusedCountersToBeDeleted([...Object.values(pluginData.state.counterIds)]); + await state.counters.markUnusedCountersToBeDeleted([...Object.values(state.counterIds)]); // Mark old/unused triggers to be deleted later - await pluginData.state.counters.markUnusedTriggersToBeDeleted(activeTriggerIds); + await state.counters.markUnusedTriggersToBeDeleted(activeTriggerIds); }, async afterLoad(pluginData) { + const { state } = pluginData; + const config = pluginData.config.get(); // Start decay timers - pluginData.state.decayTimers = []; + state.decayTimers = []; for (const [counterName, counter] of Object.entries(config.counters)) { if (!counter.decay) { continue; @@ -206,7 +205,7 @@ export const CountersPlugin = zeppelinGuildPlugin()({ continue; } - pluginData.state.decayTimers.push( + state.decayTimers.push( setInterval(() => { decayCounter(pluginData, counterName, decayPeriodMs, decay.amount); }, DECAY_APPLY_INTERVAL), @@ -215,12 +214,14 @@ export const CountersPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - if (pluginData.state.decayTimers) { - for (const interval of pluginData.state.decayTimers) { + const { state } = pluginData; + + if (state.decayTimers) { + for (const interval of state.decayTimers) { clearInterval(interval); } } - pluginData.state.events.removeAllListeners(); + state.events.removeAllListeners(); }, }); diff --git a/backend/src/plugins/GuildAccessMonitor/GuildAccessMonitorPlugin.ts b/backend/src/plugins/GuildAccessMonitor/GuildAccessMonitorPlugin.ts index 9e1e8ee4..f0753139 100644 --- a/backend/src/plugins/GuildAccessMonitor/GuildAccessMonitorPlugin.ts +++ b/backend/src/plugins/GuildAccessMonitor/GuildAccessMonitorPlugin.ts @@ -38,15 +38,17 @@ export const GuildAccessMonitorPlugin = zeppelinGlobalPlugin()({ }, afterLoad(pluginData) { - pluginData.state.unregisterGuildEventListener = onGuildEvent(pluginData.guild.id, "expiredVCAlert", (alert) => + const { state, guild } = pluginData; + + state.unregisterGuildEventListener = onGuildEvent(guild.id, "expiredVCAlert", (alert) => clearExpiredAlert(pluginData, alert), ); fillActiveAlertsList(pluginData); }, beforeUnload(pluginData) { - pluginData.state.unregisterGuildEventListener?.(); + const { state, guild } = pluginData; + + state.unregisterGuildEventListener?.(); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Logs/LogsPlugin.ts b/backend/src/plugins/Logs/LogsPlugin.ts index 658dac11..665c715e 100644 --- a/backend/src/plugins/Logs/LogsPlugin.ts +++ b/backend/src/plugins/Logs/LogsPlugin.ts @@ -271,7 +271,7 @@ export const LogsPlugin = zeppelinGuildPlugin()({ }, afterLoad(pluginData) { - const { state, guild } = pluginData; + const { state } = pluginData; state.logListener = ({ type, data }) => log(pluginData, type, data); state.guildLogs.on("log", state.logListener); @@ -305,24 +305,26 @@ export const LogsPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - if (pluginData.state.logListener) { - pluginData.state.guildLogs.removeListener("log", pluginData.state.logListener); + const { state, guild } = pluginData; + + if (state.logListener) { + state.guildLogs.removeListener("log", state.logListener); } - if (pluginData.state.onMessageDeleteFn) { - pluginData.state.savedMessages.events.off("delete", pluginData.state.onMessageDeleteFn); + if (state.onMessageDeleteFn) { + state.savedMessages.events.off("delete", state.onMessageDeleteFn); } - if (pluginData.state.onMessageDeleteBulkFn) { - pluginData.state.savedMessages.events.off("deleteBulk", pluginData.state.onMessageDeleteBulkFn); + if (state.onMessageDeleteBulkFn) { + state.savedMessages.events.off("deleteBulk", state.onMessageDeleteBulkFn); } - if (pluginData.state.onMessageUpdateFn) { - pluginData.state.savedMessages.events.off("update", pluginData.state.onMessageUpdateFn); + if (state.onMessageUpdateFn) { + state.savedMessages.events.off("update", state.onMessageUpdateFn); } - if (pluginData.state.regexRunnerRepeatedTimeoutListener) { - pluginData.state.regexRunner.off("repeatedTimeout", pluginData.state.regexRunnerRepeatedTimeoutListener); + if (state.regexRunnerRepeatedTimeoutListener) { + state.regexRunner.off("repeatedTimeout", state.regexRunnerRepeatedTimeoutListener); } - discardRegExpRunner(`guild-${pluginData.guild.id}`); + discardRegExpRunner(`guild-${guild.id}`); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/ModActions/ModActionsPlugin.ts b/backend/src/plugins/ModActions/ModActionsPlugin.ts index 9a0698b2..9f08dc68 100644 --- a/backend/src/plugins/ModActions/ModActionsPlugin.ts +++ b/backend/src/plugins/ModActions/ModActionsPlugin.ts @@ -209,15 +209,19 @@ export const ModActionsPlugin = zeppelinGuildPlugin()({ }, afterLoad(pluginData) { - pluginData.state.unregisterGuildEventListener = onGuildEvent(pluginData.guild.id, "expiredTempban", (tempban) => + const { state, guild } = pluginData; + + state.unregisterGuildEventListener = onGuildEvent(guild.id, "expiredTempban", (tempban) => clearTempban(pluginData, tempban), ); }, beforeUnload(pluginData) { - pluginData.state.unloaded = true; - pluginData.state.unregisterGuildEventListener?.(); - pluginData.state.events.removeAllListeners(); + const { state, guild } = pluginData; + + state.unloaded = true; + state.unregisterGuildEventListener?.(); + state.events.removeAllListeners(); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Mutes/MutesPlugin.ts b/backend/src/plugins/Mutes/MutesPlugin.ts index 21b186d3..943716cf 100644 --- a/backend/src/plugins/Mutes/MutesPlugin.ts +++ b/backend/src/plugins/Mutes/MutesPlugin.ts @@ -104,23 +104,27 @@ export const MutesPlugin = zeppelinGuildPlugin()({ }, beforeLoad(pluginData) { - pluginData.state.mutes = GuildMutes.getGuildInstance(pluginData.guild.id); - pluginData.state.cases = GuildCases.getGuildInstance(pluginData.guild.id); - pluginData.state.serverLogs = new GuildLogs(pluginData.guild.id); - pluginData.state.archives = GuildArchives.getGuildInstance(pluginData.guild.id); + const { state, guild } = pluginData; - pluginData.state.events = new EventEmitter(); + state.mutes = GuildMutes.getGuildInstance(guild.id); + state.cases = GuildCases.getGuildInstance(guild.id); + state.serverLogs = new GuildLogs(guild.id); + state.archives = GuildArchives.getGuildInstance(guild.id); + + state.events = new EventEmitter(); }, afterLoad(pluginData) { - pluginData.state.unregisterGuildEventListener = onGuildEvent(pluginData.guild.id, "expiredMute", (mute) => - clearMute(pluginData, mute), - ); + const { state, guild } = pluginData; + + state.unregisterGuildEventListener = onGuildEvent(guild.id, "expiredMute", (mute) => clearMute(pluginData, mute)); }, beforeUnload(pluginData) { - pluginData.state.unregisterGuildEventListener?.(); - pluginData.state.events.removeAllListeners(); + const { state, guild } = pluginData; + + state.unregisterGuildEventListener?.(); + state.events.removeAllListeners(); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Phisherman/PhishermanPlugin.ts b/backend/src/plugins/Phisherman/PhishermanPlugin.ts index 73eacdd3..c2970940 100644 --- a/backend/src/plugins/Phisherman/PhishermanPlugin.ts +++ b/backend/src/plugins/Phisherman/PhishermanPlugin.ts @@ -27,6 +27,8 @@ export const PhishermanPlugin = zeppelinGuildPlugin()({ }, async beforeLoad(pluginData) { + const { state } = pluginData; + pluginData.state.validApiKey = null; if (!hasPhishermanMasterAPIKey()) { @@ -43,7 +45,7 @@ export const PhishermanPlugin = zeppelinGuildPlugin()({ return false; }); if (isValid) { - pluginData.state.validApiKey = apiKey; + state.validApiKey = apiKey; } } }, diff --git a/backend/src/plugins/Post/PostPlugin.ts b/backend/src/plugins/Post/PostPlugin.ts index cbafe1b6..7854b853 100644 --- a/backend/src/plugins/Post/PostPlugin.ts +++ b/backend/src/plugins/Post/PostPlugin.ts @@ -61,13 +61,17 @@ export const PostPlugin = zeppelinGuildPlugin()({ }, afterLoad(pluginData) { - pluginData.state.unregisterGuildEventListener = onGuildEvent(pluginData.guild.id, "scheduledPost", (post) => + const { state, guild } = pluginData; + + state.unregisterGuildEventListener = onGuildEvent(guild.id, "scheduledPost", (post) => postScheduledPost(pluginData, post), ); }, beforeUnload(pluginData) { - pluginData.state.unregisterGuildEventListener?.(); + const { state } = pluginData; + + state.unregisterGuildEventListener?.(); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/ReactionRoles/ReactionRolesPlugin.ts b/backend/src/plugins/ReactionRoles/ReactionRolesPlugin.ts index ff480124..de710a94 100644 --- a/backend/src/plugins/ReactionRoles/ReactionRolesPlugin.ts +++ b/backend/src/plugins/ReactionRoles/ReactionRolesPlugin.ts @@ -79,8 +79,10 @@ export const ReactionRolesPlugin = zeppelinGuildPlugin( }, beforeUnload(pluginData) { - if (pluginData.state.autoRefreshTimeout) { - clearTimeout(pluginData.state.autoRefreshTimeout); + const { state, guild } = pluginData; + + if (state.autoRefreshTimeout) { + clearTimeout(state.autoRefreshTimeout); } }, diff --git a/backend/src/plugins/Reminders/RemindersPlugin.ts b/backend/src/plugins/Reminders/RemindersPlugin.ts index 48bc13fa..4316cf18 100644 --- a/backend/src/plugins/Reminders/RemindersPlugin.ts +++ b/backend/src/plugins/Reminders/RemindersPlugin.ts @@ -50,14 +50,18 @@ export const RemindersPlugin = zeppelinGuildPlugin()({ }, afterLoad(pluginData) { - pluginData.state.unregisterGuildEventListener = onGuildEvent(pluginData.guild.id, "reminder", (reminder) => + const { state, guild } = pluginData; + + state.unregisterGuildEventListener = onGuildEvent(guild.id, "reminder", (reminder) => postReminder(pluginData, reminder), ); }, beforeUnload(pluginData) { - pluginData.state.unregisterGuildEventListener?.(); - pluginData.state.unloaded = true; + const { state } = pluginData; + + state.unregisterGuildEventListener?.(); + state.unloaded = true; }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/RoleManager/RoleManagerPlugin.ts b/backend/src/plugins/RoleManager/RoleManagerPlugin.ts index 9cff63f5..65527456 100644 --- a/backend/src/plugins/RoleManager/RoleManagerPlugin.ts +++ b/backend/src/plugins/RoleManager/RoleManagerPlugin.ts @@ -24,8 +24,10 @@ export const RoleManagerPlugin = zeppelinGuildPlugin()({ }, beforeLoad(pluginData) { - pluginData.state.roleQueue = GuildRoleQueue.getGuildInstance(pluginData.guild.id); - pluginData.state.pendingRoleAssignmentPromise = Promise.resolve(); + const { state, guild } = pluginData; + + state.roleQueue = GuildRoleQueue.getGuildInstance(guild.id); + state.pendingRoleAssignmentPromise = Promise.resolve(); }, afterLoad(pluginData) { @@ -33,8 +35,10 @@ export const RoleManagerPlugin = zeppelinGuildPlugin()({ }, async afterUnload(pluginData) { - pluginData.state.abortRoleAssignmentLoop = true; - await pluginData.state.pendingRoleAssignmentPromise; + const { state } = pluginData; + + state.abortRoleAssignmentLoop = true; + await state.pendingRoleAssignmentPromise; }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Slowmode/SlowmodePlugin.ts b/backend/src/plugins/Slowmode/SlowmodePlugin.ts index dbc60e5f..d103c4a4 100644 --- a/backend/src/plugins/Slowmode/SlowmodePlugin.ts +++ b/backend/src/plugins/Slowmode/SlowmodePlugin.ts @@ -79,8 +79,10 @@ export const SlowmodePlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - pluginData.state.savedMessages.events.off("create", pluginData.state.onMessageCreateFn); - clearInterval(pluginData.state.clearInterval); + const { state, guild } = pluginData; + + state.savedMessages.events.off("create", state.onMessageCreateFn); + clearInterval(state.clearInterval); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Spam/SpamPlugin.ts b/backend/src/plugins/Spam/SpamPlugin.ts index d4bbfeb5..1715611e 100644 --- a/backend/src/plugins/Spam/SpamPlugin.ts +++ b/backend/src/plugins/Spam/SpamPlugin.ts @@ -87,8 +87,10 @@ export const SpamPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - pluginData.state.savedMessages.events.off("create", pluginData.state.onMessageCreateFn); - clearInterval(pluginData.state.expiryInterval); + const { state, guild } = pluginData; + + state.savedMessages.events.off("create", state.onMessageCreateFn); + clearInterval(state.expiryInterval); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/Starboard/StarboardPlugin.ts b/backend/src/plugins/Starboard/StarboardPlugin.ts index 3ec21483..c67aed35 100644 --- a/backend/src/plugins/Starboard/StarboardPlugin.ts +++ b/backend/src/plugins/Starboard/StarboardPlugin.ts @@ -163,6 +163,8 @@ export const StarboardPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - pluginData.state.savedMessages.events.off("delete", pluginData.state.onMessageDeleteFn); + const { state, guild } = pluginData; + + state.savedMessages.events.off("delete", state.onMessageDeleteFn); }, }); diff --git a/backend/src/plugins/Tags/TagsPlugin.ts b/backend/src/plugins/Tags/TagsPlugin.ts index 1f933fd9..c070c41b 100644 --- a/backend/src/plugins/Tags/TagsPlugin.ts +++ b/backend/src/plugins/Tags/TagsPlugin.ts @@ -131,7 +131,7 @@ export const TagsPlugin = zeppelinGuildPlugin()({ }, afterLoad(pluginData) { - const { state, guild } = pluginData; + const { state } = pluginData; state.onMessageCreateFn = (msg) => onMessageCreate(pluginData, msg); state.savedMessages.events.on("create", state.onMessageCreateFn); @@ -278,6 +278,8 @@ export const TagsPlugin = zeppelinGuildPlugin()({ }, beforeUnload(pluginData) { - pluginData.state.savedMessages.events.off("create", pluginData.state.onMessageCreateFn); + const { state, guild } = pluginData; + + state.savedMessages.events.off("create", state.onMessageCreateFn); }, }); diff --git a/backend/src/plugins/TimeAndDate/TimeAndDatePlugin.ts b/backend/src/plugins/TimeAndDate/TimeAndDatePlugin.ts index 454af3c7..9a96f834 100644 --- a/backend/src/plugins/TimeAndDate/TimeAndDatePlugin.ts +++ b/backend/src/plugins/TimeAndDate/TimeAndDatePlugin.ts @@ -60,7 +60,9 @@ export const TimeAndDatePlugin = zeppelinGuildPlugin()({ }, beforeLoad(pluginData) { - pluginData.state.memberTimezones = GuildMemberTimezones.getGuildInstance(pluginData.guild.id); + const { state, guild } = pluginData; + + state.memberTimezones = GuildMemberTimezones.getGuildInstance(guild.id); }, // FIXME: Proper inherittance from ZeppelinPluginBlueprint diff --git a/backend/src/plugins/UsernameSaver/UsernameSaverPlugin.ts b/backend/src/plugins/UsernameSaver/UsernameSaverPlugin.ts index abae2aef..15995214 100644 --- a/backend/src/plugins/UsernameSaver/UsernameSaverPlugin.ts +++ b/backend/src/plugins/UsernameSaver/UsernameSaverPlugin.ts @@ -18,7 +18,7 @@ export const UsernameSaverPlugin = zeppelinGuildPlugin( ], beforeLoad(pluginData) { - const { state, guild } = pluginData; + const { state } = pluginData; state.usernameHistory = new UsernameHistory(); state.updateQueue = new Queue();