3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-14 13:55:03 +00:00

Various fixes

This commit is contained in:
Lily Bergonzat 2024-02-17 18:16:53 +01:00
parent 2c0e4b37ca
commit cafcc2839e
15 changed files with 45 additions and 68 deletions

View file

@ -145,9 +145,9 @@ async function casesModCmd(
expand: boolean | null,
) {
const casesPlugin = pluginData.getPlugin(CasesPlugin);
const caseFilters = { type: In(typesToShow), is_hidden: !!hidden };
const casesFilters = { type: In(typesToShow), is_hidden: !!hidden };
const totalCases = await casesPlugin.getTotalCasesByMod(modId ?? author.id, caseFilters);
const totalCases = await casesPlugin.getTotalCasesByMod(modId ?? author.id, casesFilters);
if (totalCases === 0) {
pluginData.getPlugin(CommonPlugin).sendErrorMessage(context, `No cases by **${modName}**`);
@ -159,7 +159,7 @@ async function casesModCmd(
if (expand) {
// Expanded view (= individual case embeds)
const cases = totalCases > 8 ? [] : await casesPlugin.getRecentCasesByMod(modId ?? author.id, 8, 0, caseFilters);
const cases = totalCases > 8 ? [] : await casesPlugin.getRecentCasesByMod(modId ?? author.id, 8, 0, casesFilters);
sendExpandedCases(pluginData, context, totalCases, cases);
return;
@ -174,7 +174,7 @@ async function casesModCmd(
modId ?? author.id,
casesPerPage,
(page - 1) * casesPerPage,
caseFilters,
casesFilters,
);
const lines = await asyncMap(cases, (c) => casesPlugin.getCaseSummary(c, true, author.id));
@ -212,7 +212,7 @@ export async function actualCasesCmd(
context: Message | ChatInputCommandInteraction,
modId: string | null,
user: GuildMember | User | UnknownUser | null,
author: User,
author: GuildMember,
notes: boolean | null,
warns: boolean | null,
mutes: boolean | null,
@ -253,6 +253,6 @@ export async function actualCasesCmd(
}
user
? casesUserCmd(pluginData, context, author, modId!, user, modName, typesToShow, hidden, expand)
: casesModCmd(pluginData, context, author, modId!, mod!, modName, typesToShow, hidden, expand);
? casesUserCmd(pluginData, context, author.user, modId!, user, modName, typesToShow, hidden, expand)
: casesModCmd(pluginData, context, author.user, modId!, mod ?? author, modName, typesToShow, hidden, expand);
}

View file

@ -4,6 +4,7 @@ import { waitForReply } from "knub/helpers";
import { CaseTypes } from "../../../../data/CaseTypes";
import { LogType } from "../../../../data/LogType";
import { getContextChannel, sendContextResponse } from "../../../../pluginUtils";
import { MINUTES } from "../../../../utils";
import { CasesPlugin } from "../../../Cases/CasesPlugin";
import { CommonPlugin } from "../../../Common/CommonPlugin";
import { LogsPlugin } from "../../../Logs/LogsPlugin";
@ -45,8 +46,8 @@ export async function actualMassUnbanCmd(
// We'll create our own cases below and post a single "mass unbanned" log instead
userIds.forEach((userId) => {
// Use longer timeouts since this can take a while
ignoreEvent(pluginData, IgnoredEventType.Unban, userId, 120 * 1000);
pluginData.state.serverLogs.ignoreLog(LogType.MEMBER_UNBAN, userId, 120 * 1000);
ignoreEvent(pluginData, IgnoredEventType.Unban, userId, 2 * MINUTES);
pluginData.state.serverLogs.ignoreLog(LogType.MEMBER_UNBAN, userId, 2 * MINUTES);
});
// Show a loading indicator since this can take a while

View file

@ -37,7 +37,7 @@ export async function actualWarnCmd(
{ confirmText: "Yes", cancelText: "No", restrictToId: authorId },
);
if (!reply) {
pluginData.getPlugin(CommonPlugin).sendErrorMessage(context, "Warn cancelled by moderator");
await pluginData.getPlugin(CommonPlugin).sendErrorMessage(context, "Warn cancelled by moderator");
return;
}
}
@ -53,13 +53,16 @@ export async function actualWarnCmd(
});
if (warnResult.status === "failed") {
pluginData.getPlugin(CommonPlugin).sendErrorMessage(context, "Failed to warn user");
const failReason = warnResult.error ? `: ${warnResult.error}` : "";
await pluginData.getPlugin(CommonPlugin).sendErrorMessage(context, `Failed to warn user${failReason}`);
return;
}
const messageResultText = warnResult.notifyResult.text ? ` (${warnResult.notifyResult.text})` : "";
pluginData
await pluginData
.getPlugin(CommonPlugin)
.sendSuccessMessage(
context,

View file

@ -6,6 +6,7 @@ import { CasesPlugin } from "../../Cases/CasesPlugin";
import { CommonPlugin } from "../../Common/CommonPlugin";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { ModActionsPluginType } from "../types";
import { handleAttachmentLinkDetectionAndGetRestriction } from "./attachmentLinkReaction";
import { formatReasonWithMessageLinkForAttachments } from "./formatReasonForAttachments";
export async function updateCase(
@ -33,6 +34,10 @@ export async function updateCase(
return;
}
if (await handleAttachmentLinkDetectionAndGetRestriction(pluginData, context, note)) {
return;
}
const formattedNote = await formatReasonWithMessageLinkForAttachments(pluginData, note, context, attachments);
const casesPlugin = pluginData.getPlugin(CasesPlugin);

View file

@ -1,7 +1,6 @@
import { GuildMember, Snowflake } from "discord.js";
import { GuildPluginData } from "knub";
import { CaseTypes } from "../../../data/CaseTypes";
import { getContextChannel, isContextInteraction } from "../../../pluginUtils";
import { TemplateParseError, TemplateSafeValueContainer, renderTemplate } from "../../../templateFormatter";
import { UserNotificationResult, createUserNotificationError, notifyUser, resolveUser, ucfirst } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
@ -52,12 +51,7 @@ export async function warnMember(
}
if (!notifyResult.success) {
const contextIsNotInteraction =
warnOptions.retryPromptContext && !isContextInteraction(warnOptions.retryPromptContext);
const contextChannel = contextIsNotInteraction ? await getContextChannel(warnOptions.retryPromptContext!) : null;
const isValidChannel = contextIsNotInteraction && pluginData.guild.channels.resolve(contextChannel!.id);
if (!warnOptions.retryPromptContext || !isValidChannel) {
if (!warnOptions.retryPromptContext) {
return {
status: "failed",
error: "Failed to message user",