From 151a5df4afd36f9c44702e1ecb78b31431f838b0 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sun, 17 Oct 2021 08:15:30 +0300 Subject: [PATCH] feat(automod): add affects_self option for rules --- backend/src/plugins/Automod/AutomodPlugin.ts | 4 ++++ backend/src/plugins/Automod/functions/runAutomod.ts | 6 +----- backend/src/plugins/Automod/types.ts | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/backend/src/plugins/Automod/AutomodPlugin.ts b/backend/src/plugins/Automod/AutomodPlugin.ts index 9a9cbc76..602db445 100644 --- a/backend/src/plugins/Automod/AutomodPlugin.ts +++ b/backend/src/plugins/Automod/AutomodPlugin.ts @@ -81,6 +81,10 @@ const configPreprocessor: ConfigPreprocessorFn = (options) => rule["affects_bots"] = false; } + if (rule["affects_self"] == null) { + rule["affects_self"] = false; + } + // Loop through the rule's triggers if (rule["triggers"]) { for (const triggerObj of rule["triggers"]) { diff --git a/backend/src/plugins/Automod/functions/runAutomod.ts b/backend/src/plugins/Automod/functions/runAutomod.ts index 736a14c0..4f323e07 100644 --- a/backend/src/plugins/Automod/functions/runAutomod.ts +++ b/backend/src/plugins/Automod/functions/runAutomod.ts @@ -23,11 +23,6 @@ export async function runAutomod(pluginData: GuildPluginData, const channel = channelOrThread?.isThread() ? channelOrThread.parent : channelOrThread; const categoryId = channel?.parentId; - // Don't apply Automod on Zeppelin itself - if (userId && userId === pluginData.client.user?.id) { - return; - } - const config = await pluginData.config.getMatchingConfig({ channelId, categoryId, @@ -39,6 +34,7 @@ export async function runAutomod(pluginData: GuildPluginData, for (const [ruleName, rule] of Object.entries(config.rules)) { if (rule.enabled === false) continue; if (!rule.affects_bots && (!user || user.bot) && !context.counterTrigger && !context.antiraid) continue; + if (!rule.affects_self && userId && userId === pluginData.client.user?.id) continue; if (rule.cooldown && checkAndUpdateCooldown(pluginData, rule, context)) { continue; diff --git a/backend/src/plugins/Automod/types.ts b/backend/src/plugins/Automod/types.ts index 2f8107fc..8fee6e7d 100644 --- a/backend/src/plugins/Automod/types.ts +++ b/backend/src/plugins/Automod/types.ts @@ -23,6 +23,7 @@ export const Rule = t.type({ name: t.string, presets: tNullable(t.array(t.string)), affects_bots: t.boolean, + affects_self: t.boolean, triggers: t.array(t.partial(AvailableTriggers.props)), actions: t.partial(AvailableActions.props), cooldown: tNullable(t.string),