zappyzep/backend/src/plugins/Automod/functions/getTextMatchPartialSummary.ts

34 lines
1.5 KiB
TypeScript

import { MatchableTextType } from "./matchMultipleTextTypesOnMessage";
import { AutomodContext, AutomodPluginType } from "../types";
import { messageSummary, verboseChannelMention } from "../../../utils";
import { GuildPluginData } from "knub";
import { User } from "eris";
export function getTextMatchPartialSummary(
pluginData: GuildPluginData<AutomodPluginType>,
type: MatchableTextType,
context: AutomodContext,
) {
if (type === "message") {
const message = context.message!;
const channel = pluginData.guild.channels.get(message.channel_id);
const channelMention = channel ? verboseChannelMention(channel) : `\`#${message.channel_id}\``;
return `message in ${channelMention}:\n${messageSummary(message)}`;
} else if (type === "embed") {
const message = context.message!;
const channel = pluginData.guild.channels.get(message.channel_id);
const channelMention = channel ? verboseChannelMention(channel) : `\`#${message.channel_id}\``;
return `message embed in ${channelMention}:\n${messageSummary(message)}`;
} else if (type === "username") {
return `username: ${context.user!.username}`;
} else if (type === "nickname") {
return `nickname: ${context.member!.nick}`;
} else if (type === "visiblename") {
const visibleName = context.member?.nick || context.user!.username;
return `visible name: ${visibleName}`;
} else if (type === "customstatus") {
return `custom status: ${context.member!.game!.state}`;
}
}