zappyzep/backend/src/plugins/Automod/functions/setAntiraidLevel.ts
Ben Richeson 8a4a2d3647
feat: option to trigger antiraid_level only on change (#424)
Co-authored-by: Almeida <github@almeidx.dev>
2023-12-29 12:52:43 +00:00

30 lines
856 B
TypeScript

import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { runAutomodOnAntiraidLevel } from "../events/runAutomodOnAntiraidLevel";
import { AutomodPluginType } from "../types";
export async function setAntiraidLevel(
pluginData: GuildPluginData<AutomodPluginType>,
newLevel: string | null,
user?: User,
) {
const oldLevel = pluginData.state.cachedAntiraidLevel;
pluginData.state.cachedAntiraidLevel = newLevel;
await pluginData.state.antiraidLevels.set(newLevel);
runAutomodOnAntiraidLevel(pluginData, newLevel, oldLevel, user);
const logs = pluginData.getPlugin(LogsPlugin);
if (user) {
logs.logSetAntiraidUser({
level: newLevel ?? "off",
user,
});
} else {
logs.logSetAntiraidAuto({
level: newLevel ?? "off",
});
}
}