From 8a99f33aa0cf1bd3c4f71153d57f061a6a440103 Mon Sep 17 00:00:00 2001 From: Ben Richeson Date: Wed, 30 Aug 2023 01:20:42 -0400 Subject: [PATCH] feat(AutomodPlugin): toggle invite action --- .../src/plugins/Automod/actions/availableActions.ts | 3 +++ .../src/plugins/Automod/actions/toggleInvites.ts | 13 +++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 backend/src/plugins/Automod/actions/toggleInvites.ts diff --git a/backend/src/plugins/Automod/actions/availableActions.ts b/backend/src/plugins/Automod/actions/availableActions.ts index 3f253bc0..e723de62 100644 --- a/backend/src/plugins/Automod/actions/availableActions.ts +++ b/backend/src/plugins/Automod/actions/availableActions.ts @@ -17,6 +17,7 @@ import { SetAntiraidLevelAction } from "./setAntiraidLevel"; import { SetCounterAction } from "./setCounter"; import { SetSlowmodeAction } from "./setSlowmode"; import { StartThreadAction } from "./startThread"; +import { ToggleInvitesAction } from "./toggleInvites"; import { WarnAction } from "./warn"; export const availableActions: Record> = { @@ -38,6 +39,7 @@ export const availableActions: Record> = { start_thread: StartThreadAction, archive_thread: ArchiveThreadAction, change_perms: ChangePermsAction, + toggle_invites: ToggleInvitesAction, }; export const AvailableActions = t.type({ @@ -59,4 +61,5 @@ export const AvailableActions = t.type({ start_thread: StartThreadAction.configType, archive_thread: ArchiveThreadAction.configType, change_perms: ChangePermsAction.configType, + toggle_invites: ToggleInvitesAction.configType, }); diff --git a/backend/src/plugins/Automod/actions/toggleInvites.ts b/backend/src/plugins/Automod/actions/toggleInvites.ts new file mode 100644 index 00000000..fb3652c5 --- /dev/null +++ b/backend/src/plugins/Automod/actions/toggleInvites.ts @@ -0,0 +1,13 @@ +import * as t from "io-ts"; +import { automodAction } from "../helpers"; + +export const ToggleInvitesAction = automodAction({ + configType: t.type({ + enabled: t.boolean, + }), + defaultConfig: {}, + + async apply({ pluginData, actionConfig }) { + await pluginData.guild.disableInvites(!actionConfig.enabled); + }, +});