Add archive_thread action to automod (#271)

This commit is contained in:
Almeida 2021-09-04 17:37:49 +01:00 committed by GitHub
parent 98f7c27dd4
commit b3e2e0cffb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 0 deletions

View 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);
}
},
});

View file

@ -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,
});