diff --git a/backend/src/plugins/Automod/events/runAutomodOnMessage.ts b/backend/src/plugins/Automod/events/runAutomodOnMessage.ts index 2fb7e632..18b13a79 100644 --- a/backend/src/plugins/Automod/events/runAutomodOnMessage.ts +++ b/backend/src/plugins/Automod/events/runAutomodOnMessage.ts @@ -4,6 +4,7 @@ import { AutomodContext, AutomodPluginType } from "../types"; import { runAutomod } from "../functions/runAutomod"; import { addRecentActionsFromMessage } from "../functions/addRecentActionsFromMessage"; import moment from "moment-timezone"; +import { clearRecentActionsForMessage } from "../functions/clearRecentActionsForMessage"; export function runAutomodOnMessage(pluginData: PluginData, message: SavedMessage, isEdit: boolean) { const user = pluginData.client.users.get(message.user_id); @@ -17,6 +18,10 @@ export function runAutomodOnMessage(pluginData: PluginData, m }; pluginData.state.queue.add(async () => { + if (isEdit) { + clearRecentActionsForMessage(pluginData, context); + } + addRecentActionsFromMessage(pluginData, context); await runAutomod(pluginData, context); }); diff --git a/backend/src/plugins/Automod/functions/clearRecentActionsForMessage.ts b/backend/src/plugins/Automod/functions/clearRecentActionsForMessage.ts new file mode 100644 index 00000000..424a80c5 --- /dev/null +++ b/backend/src/plugins/Automod/functions/clearRecentActionsForMessage.ts @@ -0,0 +1,13 @@ +import { AutomodContext, AutomodPluginType } from "../types"; +import { PluginData } from "knub"; +import { RECENT_ACTION_EXPIRY_TIME, RecentActionType } from "../constants"; +import { getEmojiInString, getRoleMentions, getUrlsInString, getUserMentions } from "../../../utils"; + +export function clearRecentActionsForMessage(pluginData: PluginData, context: AutomodContext) { + const globalIdentifier = context.message.user_id; + const perChannelIdentifier = `${context.message.channel_id}-${context.message.user_id}`; + + pluginData.state.recentActions = pluginData.state.recentActions.filter(act => { + return act.identifier !== globalIdentifier && act.identifier !== perChannelIdentifier; + }); +}