diff --git a/backend/src/plugins/Automod/triggers/anyMessage.ts b/backend/src/plugins/Automod/triggers/anyMessage.ts new file mode 100644 index 00000000..466f0460 --- /dev/null +++ b/backend/src/plugins/Automod/triggers/anyMessage.ts @@ -0,0 +1,29 @@ +import * as t from "io-ts"; +import { automodTrigger } from "../helpers"; +import { verboseChannelMention } from "../../../utils"; + +// tslint:disable-next-line:no-empty-interface +interface AnyMessageResultType {} + +export const AnyMessageTrigger = automodTrigger()({ + configType: t.type({}), + + defaultConfig: {}, + + async match({ pluginData, context, triggerConfig: trigger }) { + if (!context.message) { + return; + } + + return { + extra: {}, + }; + }, + + renderMatchInformation({ pluginData, contexts, matchResult }) { + const channel = pluginData.guild.channels.get(contexts[0].message!.channel_id); + return `Matched message (\`${contexts[0].message!.id}\`) in ${ + channel ? verboseChannelMention(channel) : "Unknown Channel" + }`; + }, +}); diff --git a/backend/src/plugins/Automod/triggers/availableTriggers.ts b/backend/src/plugins/Automod/triggers/availableTriggers.ts index 18c671b6..680ce5b4 100644 --- a/backend/src/plugins/Automod/triggers/availableTriggers.ts +++ b/backend/src/plugins/Automod/triggers/availableTriggers.ts @@ -25,8 +25,11 @@ import { UnmuteTrigger } from "./unmute"; import { KickTrigger } from "./kick"; import { BanTrigger } from "./ban"; import { UnbanTrigger } from "./unban"; +import { AnyMessageTrigger } from "./anyMessage"; export const availableTriggers: Record> = { + any_message: AnyMessageTrigger, + match_words: MatchWordsTrigger, match_regex: MatchRegexTrigger, match_invites: MatchInvitesTrigger, @@ -58,6 +61,8 @@ export const availableTriggers: Record }; export const AvailableTriggers = t.type({ + any_message: AnyMessageTrigger.configType, + match_words: MatchWordsTrigger.configType, match_regex: MatchRegexTrigger.configType, match_invites: MatchInvitesTrigger.configType,