diff --git a/backend/src/plugins/ModActions/functions/warnMember.ts b/backend/src/plugins/ModActions/functions/warnMember.ts index b81f6a65..e0f22c8f 100644 --- a/backend/src/plugins/ModActions/functions/warnMember.ts +++ b/backend/src/plugins/ModActions/functions/warnMember.ts @@ -1,16 +1,10 @@ -import { GuildMember, Snowflake, User } from "discord.js"; +import { GuildMember, Snowflake } from "discord.js"; import { GuildPluginData } from "knub"; -import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects"; +import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects"; import { CaseTypes } from "../../../data/CaseTypes"; +import { LogType } from "../../../data/LogType"; import { renderTemplate, TemplateSafeValueContainer } from "../../../templateFormatter"; -import { - createUserNotificationError, - notifyUser, - resolveUser, - ucfirst, - UnknownUser, - UserNotificationResult, -} from "../../../utils"; +import { createUserNotificationError, notifyUser, resolveUser, ucfirst, UserNotificationResult } from "../../../utils"; import { waitForButtonConfirm } from "../../../utils/waitForInteraction"; import { CasesPlugin } from "../../Cases/CasesPlugin"; import { ModActionsPluginType, WarnOptions, WarnResult } from "../types"; @@ -19,24 +13,13 @@ import { LogsPlugin } from "../../Logs/LogsPlugin"; export async function warnMember( pluginData: GuildPluginData, + member: GuildMember, reason: string, - member: GuildMember | null, - user?: User | null, warnOptions: WarnOptions = {}, ): Promise { - if (!member && !user) { - return { - status: "failed", - error: "No member or user passed", - }; - } - - user = member?.user ?? user; - const config = pluginData.config.get(); - reason = parseReason(config, reason); - let notifyResult: UserNotificationResult; + let notifyResult: UserNotificationResult; if (config.warn_message) { const warnMessage = await renderTemplate( config.warn_message, @@ -51,7 +34,7 @@ export async function warnMember( const contactMethods = warnOptions?.contactMethods ? warnOptions.contactMethods : getDefaultContactMethods(pluginData, "warn"); - notifyResult = await notifyUser(user as User, warnMessage, contactMethods); + notifyResult = await notifyUser(member.user, warnMessage, contactMethods); } else { notifyResult = createUserNotificationError("No warn message specified in config"); } @@ -70,7 +53,7 @@ export async function warnMember( error: "Failed to message user", }; } - } else if (!warnOptions.silentErrors) { + } else { return { status: "failed", error: "Failed to message user", @@ -83,7 +66,7 @@ export async function warnMember( const casesPlugin = pluginData.getPlugin(CasesPlugin); const createdCase = await casesPlugin.createCase({ ...(warnOptions.caseArgs || {}), - userId: user!.id, + userId: member.id, modId, type: CaseTypes.Warn, reason, @@ -94,12 +77,11 @@ export async function warnMember( pluginData.getPlugin(LogsPlugin).logMemberWarn({ mod, member, - user, caseNumber: createdCase.case_number, reason: reason ?? "", }); - pluginData.state.events.emit("warn", user!.id, reason, warnOptions.isAutomodAction); + pluginData.state.events.emit("warn", member.id, reason, warnOptions.isAutomodAction); return { status: "success",