mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-16 14:45:02 +00:00
Merge 8da0529b60
into eb5fda8d19
This commit is contained in:
commit
c1032fd43b
6 changed files with 32 additions and 8 deletions
|
@ -62,6 +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_reasons: {
|
||||
mute: "No reason specified",
|
||||
kick: "No reason specified",
|
||||
ban: "No reason specified",
|
||||
},
|
||||
alert_on_rejoin: false,
|
||||
alert_channel: null,
|
||||
warn_notify_enabled: false,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -33,7 +33,6 @@ export async function banUserId(
|
|||
banOptions: BanOptions = {},
|
||||
banTime?: number,
|
||||
): Promise<BanResult> {
|
||||
const config = pluginData.config.get();
|
||||
const user = await resolveUser(pluginData.client, userId);
|
||||
if (!user.id) {
|
||||
return {
|
||||
|
@ -42,10 +41,13 @@ export async function banUserId(
|
|||
};
|
||||
}
|
||||
|
||||
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);
|
||||
let notifyResult: UserNotificationResult = { method: null, success: true };
|
||||
if (reason && member) {
|
||||
if (member) {
|
||||
const contactMethods = banOptions?.contactMethods
|
||||
? banOptions.contactMethods
|
||||
: getDefaultContactMethods(pluginData, "ban");
|
||||
|
@ -113,7 +115,7 @@ export async function banUserId(
|
|||
const deleteMessageDays = Math.min(7, Math.max(0, banOptions.deleteMessageDays ?? 1));
|
||||
await pluginData.guild.bans.create(userId as Snowflake, {
|
||||
deleteMessageSeconds: (deleteMessageDays * DAYS) / SECONDS,
|
||||
reason: reason ?? undefined,
|
||||
reason,
|
||||
});
|
||||
} catch (e) {
|
||||
let errorMessage;
|
||||
|
@ -171,7 +173,7 @@ export async function banUserId(
|
|||
mod,
|
||||
user,
|
||||
caseNumber: createdCase.case_number,
|
||||
reason: reason ?? "",
|
||||
reason,
|
||||
banTime: humanizeDuration(banTime),
|
||||
});
|
||||
} else {
|
||||
|
@ -179,7 +181,7 @@ export async function banUserId(
|
|||
mod,
|
||||
user,
|
||||
caseNumber: createdCase.case_number,
|
||||
reason: reason ?? "",
|
||||
reason,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,13 @@ export const zModActionsConfig = z.strictObject({
|
|||
kick_message: z.nullable(z.string()),
|
||||
ban_message: z.nullable(z.string()),
|
||||
tempban_message: z.nullable(z.string()),
|
||||
default_reasons: z.nullable(
|
||||
z.object({
|
||||
mute: z.string().max(512).nullable(),
|
||||
kick: z.string().max(512).nullable(),
|
||||
ban: z.string().max(512).nullable(),
|
||||
}),
|
||||
),
|
||||
alert_on_rejoin: z.boolean(),
|
||||
alert_channel: z.nullable(z.string()),
|
||||
warn_notify_enabled: z.boolean(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue