From 5ce01c81b9a5f6688fb61ecbd9c57fd117c1051b Mon Sep 17 00:00:00 2001 From: iamshoXy Date: Fri, 29 Dec 2023 15:40:56 +0100 Subject: [PATCH] added default reasons object --- .../plugins/ModActions/ModActionsPlugin.ts | 6 ++- .../ModActions/commands/ForcebanCmd.ts | 5 +- .../functions/actualKickMemberCmd.ts | 5 +- .../ModActions/functions/actualMuteUserCmd.ts | 6 ++- .../plugins/ModActions/functions/banUserId.ts | 4 +- backend/src/plugins/ModActions/types.ts | 50 +++++++++++-------- 6 files changed, 48 insertions(+), 28 deletions(-) diff --git a/backend/src/plugins/ModActions/ModActionsPlugin.ts b/backend/src/plugins/ModActions/ModActionsPlugin.ts index 523a48d3e..e5f8af012 100644 --- a/backend/src/plugins/ModActions/ModActionsPlugin.ts +++ b/backend/src/plugins/ModActions/ModActionsPlugin.ts @@ -62,7 +62,11 @@ const defaultOptions = { kick_message: "You have been kicked from the {guildName} server. Reason given: {reason}", ban_message: "You have been banned from the {guildName} server. Reason given: {reason}", tempban_message: "You have been banned from the {guildName} server for {banTime}. Reason given: {reason}", - default_ban_reason: "No reason specified", + default_reasons: { + mute: "No reason specified", + kick: "No reason specified", + ban: "No reason specified", + }, alert_on_rejoin: false, alert_channel: null, warn_notify_enabled: false, diff --git a/backend/src/plugins/ModActions/commands/ForcebanCmd.ts b/backend/src/plugins/ModActions/commands/ForcebanCmd.ts index 4ddef1544..3aa235606 100644 --- a/backend/src/plugins/ModActions/commands/ForcebanCmd.ts +++ b/backend/src/plugins/ModActions/commands/ForcebanCmd.ts @@ -61,7 +61,10 @@ export const ForcebanCmd = modActionsCmd({ mod = args.mod; } - const reason = formatReasonWithAttachments(args.reason, [...msg.attachments.values()]); + const config = pluginData.config.get(); + const reason = args.reason + ? formatReasonWithAttachments(args.reason, [...msg.attachments.values()]) + : config.default_reasons?.ban || "No reason specified"; ignoreEvent(pluginData, IgnoredEventType.Ban, user.id); pluginData.state.serverLogs.ignoreLog(LogType.MEMBER_BAN, user.id); diff --git a/backend/src/plugins/ModActions/functions/actualKickMemberCmd.ts b/backend/src/plugins/ModActions/functions/actualKickMemberCmd.ts index 73a1e2d93..d5d0b62c7 100644 --- a/backend/src/plugins/ModActions/functions/actualKickMemberCmd.ts +++ b/backend/src/plugins/ModActions/functions/actualKickMemberCmd.ts @@ -67,7 +67,10 @@ export async function actualKickMemberCmd( return; } - const reason = formatReasonWithAttachments(args.reason, msg.attachments); + const config = pluginData.config.get(); + const reason = args.reason + ? formatReasonWithAttachments(args.reason, msg.attachments) + : config.default_reasons?.kick || "No reason specified"; const kickResult = await kickMember(pluginData, memberToKick, reason, { contactMethods, diff --git a/backend/src/plugins/ModActions/functions/actualMuteUserCmd.ts b/backend/src/plugins/ModActions/functions/actualMuteUserCmd.ts index 5c628c4ee..799d80322 100644 --- a/backend/src/plugins/ModActions/functions/actualMuteUserCmd.ts +++ b/backend/src/plugins/ModActions/functions/actualMuteUserCmd.ts @@ -42,7 +42,11 @@ export async function actualMuteUserCmd( } const timeUntilUnmute = args.time && humanizeDuration(args.time); - const reason = args.reason ? formatReasonWithAttachments(args.reason, [...msg.attachments.values()]) : undefined; + + const config = pluginData.config.get(); + const reason = args.reason + ? formatReasonWithAttachments(args.reason, [...msg.attachments.values()]) + : config.default_reasons?.mute || "No reason specified"; let muteResult: MuteResult; const mutesPlugin = pluginData.getPlugin(MutesPlugin); diff --git a/backend/src/plugins/ModActions/functions/banUserId.ts b/backend/src/plugins/ModActions/functions/banUserId.ts index 1fb3ba5ec..f8b13fe70 100644 --- a/backend/src/plugins/ModActions/functions/banUserId.ts +++ b/backend/src/plugins/ModActions/functions/banUserId.ts @@ -33,7 +33,6 @@ export async function banUserId( banOptions: BanOptions = {}, banTime?: number, ): Promise { - const config = pluginData.config.get(); const user = await resolveUser(pluginData.client, userId); if (!user.id) { return { @@ -42,7 +41,8 @@ export async function banUserId( }; } - reason = reason || (config.default_ban_reason || "No reason specified"); + const config = pluginData.config.get(); + reason ||= config.default_reasons?.ban || "No reason specified"; // Attempt to message the user *before* banning them, as doing it after may not be possible const member = await resolveMember(pluginData.client, pluginData.guild, userId); diff --git a/backend/src/plugins/ModActions/types.ts b/backend/src/plugins/ModActions/types.ts index 4bcb6a029..0291c5d54 100644 --- a/backend/src/plugins/ModActions/types.ts +++ b/backend/src/plugins/ModActions/types.ts @@ -23,7 +23,13 @@ export const ConfigSchema = t.type({ kick_message: tNullable(t.string), ban_message: tNullable(t.string), tempban_message: tNullable(t.string), - default_ban_reason: tNullable(t.string), + default_reasons: tNullable( + t.type({ + mute: t.string, + kick: t.string, + ban: t.string, + }), + ), alert_on_rejoin: t.boolean, alert_channel: tNullable(t.string), warn_notify_enabled: t.boolean, @@ -92,36 +98,36 @@ export interface IIgnoredEvent { export type WarnResult = | { - status: "failed"; - error: string; - } + status: "failed"; + error: string; + } | { - status: "success"; - case: Case; - notifyResult: UserNotificationResult; - }; + status: "success"; + case: Case; + notifyResult: UserNotificationResult; + }; export type KickResult = | { - status: "failed"; - error: string; - } + status: "failed"; + error: string; + } | { - status: "success"; - case: Case; - notifyResult: UserNotificationResult; - }; + status: "success"; + case: Case; + notifyResult: UserNotificationResult; + }; export type BanResult = | { - status: "failed"; - error: string; - } + status: "failed"; + error: string; + } | { - status: "success"; - case: Case; - notifyResult: UserNotificationResult; - }; + status: "success"; + case: Case; + notifyResult: UserNotificationResult; + }; export type WarnMemberNotifyRetryCallback = () => boolean | Promise;