3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-23 09:35:02 +00:00

Do not create a duplicate case

This commit is contained in:
Dark 2021-09-12 17:42:27 +02:00
parent f2116c515e
commit 70970dea02
No known key found for this signature in database
GPG key ID: 384C4B4F5B1E25A8

View file

@ -1,20 +1,14 @@
import { Snowflake } from "discord.js";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { commandTypeHelpers as ct } from "../../../commandTypes"; import { commandTypeHelpers as ct } from "../../../commandTypes";
import { CaseTypes } from "../../../data/CaseTypes";
import { LogType } from "../../../data/LogType"; import { LogType } from "../../../data/LogType";
import { CasesPlugin } from "../../../plugins/Cases/CasesPlugin";
import { canActOn, hasPermission, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils"; import { canActOn, hasPermission, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { resolveMember, resolveUser } from "../../../utils"; import { resolveMember, resolveUser } from "../../../utils";
import { banLock } from "../../../utils/lockNameHelpers";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { banUserId } from "../functions/banUserId";
import { formatReasonWithAttachments } from "../functions/formatReasonWithAttachments"; import { formatReasonWithAttachments } from "../functions/formatReasonWithAttachments";
import { ignoreEvent } from "../functions/ignoreEvent"; import { ignoreEvent } from "../functions/ignoreEvent";
import { isBanned } from "../functions/isBanned"; import { isBanned } from "../functions/isBanned";
import { IgnoredEventType, modActionsCmd } from "../types"; import { BanResult, IgnoredEventType, modActionsCmd } from "../types";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { LogType } from "../../../data/LogType";
import { CaseTypes } from "../../../data/CaseTypes";
import { CasesPlugin } from "../../../plugins/Cases/CasesPlugin";
import { banLock } from "../../../utils/lockNameHelpers";
const opts = { const opts = {
mod: ct.member({ option: true }), mod: ct.member({ option: true }),
@ -72,9 +66,11 @@ export const ForcebanCmd = modActionsCmd({
ignoreEvent(pluginData, IgnoredEventType.Ban, user.id); ignoreEvent(pluginData, IgnoredEventType.Ban, user.id);
pluginData.state.serverLogs.ignoreLog(LogType.MEMBER_BAN, user.id); pluginData.state.serverLogs.ignoreLog(LogType.MEMBER_BAN, user.id);
let banResult: BanResult;
try { try {
const deleteMessageDays = args["delete-days"] ?? pluginData.config.getForMessage(msg).ban_delete_message_days; const deleteMessageDays =
const banResult = await banUserId(pluginData, user.id, reason, { args["delete-days"] ?? (await pluginData.config.getForMessage(msg)).ban_delete_message_days;
banResult = await banUserId(pluginData, user.id, reason, {
contactMethods: [], contactMethods: [],
caseArgs: { caseArgs: {
modId: mod.id, modId: mod.id,
@ -94,25 +90,15 @@ export const ForcebanCmd = modActionsCmd({
return; return;
} }
// Create a case
const casesPlugin = pluginData.getPlugin(CasesPlugin);
const createdCase = await casesPlugin.createCase({
userId: user.id,
modId: mod.id,
type: CaseTypes.Ban,
reason,
ppId: mod.id !== msg.author.id ? msg.author.id : undefined,
});
// Confirm the action // Confirm the action
sendSuccessMessage(pluginData, msg.channel, `Member forcebanned (Case #${createdCase.case_number})`); sendSuccessMessage(pluginData, msg.channel, `Member forcebanned (Case #${banResult.case.case_number})`);
lock.unlock(); lock.unlock();
// Log the action // Log the action
pluginData.getPlugin(LogsPlugin).logMemberForceban({ pluginData.getPlugin(LogsPlugin).logMemberForceban({
mod, mod,
userId: user.id, userId: user.id,
caseNumber: createdCase.case_number, caseNumber: banResult.case.case_number,
reason, reason,
}); });