Add archive_thread action to automod (#271)
This commit is contained in:
parent
98f7c27dd4
commit
b3e2e0cffb
2 changed files with 23 additions and 0 deletions
20
backend/src/plugins/Automod/actions/archiveThread.ts
Normal file
20
backend/src/plugins/Automod/actions/archiveThread.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
import { ThreadChannel } from "discord.js";
|
||||
import * as t from "io-ts";
|
||||
import { noop } from "../../../utils";
|
||||
import { automodAction } from "../helpers";
|
||||
|
||||
export const ArchiveThreadAction = automodAction({
|
||||
configType: t.type({}),
|
||||
defaultConfig: {},
|
||||
|
||||
async apply({ pluginData, contexts }) {
|
||||
const threads = contexts
|
||||
.filter(c => c.message?.channel_id)
|
||||
.map(c => pluginData.guild.channels.cache.get(c.message!.channel_id))
|
||||
.filter((c): c is ThreadChannel => c?.isThread() ?? false);
|
||||
|
||||
for (const thread of threads) {
|
||||
await thread.setArchived().catch(noop);
|
||||
}
|
||||
},
|
||||
});
|
|
@ -3,6 +3,7 @@ import { AutomodActionBlueprint } from "../helpers";
|
|||
import { AddRolesAction } from "./addRoles";
|
||||
import { AddToCounterAction } from "./addToCounter";
|
||||
import { AlertAction } from "./alert";
|
||||
import { ArchiveThreadAction } from "./archiveThread";
|
||||
import { BanAction } from "./ban";
|
||||
import { ChangeNicknameAction } from "./changeNickname";
|
||||
import { CleanAction } from "./clean";
|
||||
|
@ -32,6 +33,7 @@ export const availableActions: Record<string, AutomodActionBlueprint<any>> = {
|
|||
add_to_counter: AddToCounterAction,
|
||||
set_counter: SetCounterAction,
|
||||
set_slowmode: SetSlowmodeAction,
|
||||
archive_thread: ArchiveThreadAction,
|
||||
};
|
||||
|
||||
export const AvailableActions = t.type({
|
||||
|
@ -50,4 +52,5 @@ export const AvailableActions = t.type({
|
|||
add_to_counter: AddToCounterAction.configType,
|
||||
set_counter: SetCounterAction.configType,
|
||||
set_slowmode: SetSlowmodeAction.configType,
|
||||
archive_thread: ArchiveThreadAction.configType,
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue