3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-18 23:09:59 +00:00
zeppelin/backend/src/plugins/Automod/events/runAutomodOnModAction.ts

34 lines
985 B
TypeScript
Raw Normal View History

2021-02-14 16:58:02 +02:00
import { GuildPluginData } from "knub";
import { AutomodContext, AutomodPluginType } from "../types";
import { runAutomod } from "../functions/runAutomod";
import { resolveMember, resolveUser, UnknownUser } from "../../../utils";
2021-02-14 16:58:02 +02:00
import { ModActionType } from "../../ModActions/types";
export async function runAutomodOnModAction(
pluginData: GuildPluginData<AutomodPluginType>,
modAction: ModActionType,
userId: string,
reason?: string,
isAutomodAction: boolean = false,
2021-02-14 16:58:02 +02:00
) {
const [user, member] = await Promise.all([
resolveUser(pluginData.client, userId),
resolveMember(pluginData.client, pluginData.guild, userId),
]);
2021-02-14 16:58:02 +02:00
const context: AutomodContext = {
timestamp: Date.now(),
user: user instanceof UnknownUser ? undefined : user,
member: member ?? undefined,
2021-02-14 16:58:02 +02:00
modAction: {
type: modAction,
reason,
isAutomodAction,
2021-02-14 16:58:02 +02:00
},
};
pluginData.state.queue.add(async () => {
await runAutomod(pluginData, context);
});
}