3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-06-07 08:05:01 +00:00
zeppelin/backend/src/plugins/ModActions/commands/massunban/MassUnbanMsgCmd.ts
2025-05-31 21:19:56 +03:00

32 lines
1.2 KiB
TypeScript

import { waitForReply } from "knub/helpers";
import { commandTypeHelpers as ct } from "../../../../commandTypes.js";
import { resolveMessageMember } from "../../../../pluginUtils.js";
import { modActionsMsgCmd } from "../../types.js";
import { actualMassUnbanCmd } from "./actualMassUnbanCmd.js";
export const MassUnbanMsgCmd = modActionsMsgCmd({
trigger: "massunban",
permission: "can_massunban",
description: "Mass-unban a list of user IDs",
signature: [
{
userIds: ct.string({ rest: true }),
},
],
async run({ pluginData, message: msg, args }) {
// Ask for unban reason (cleaner this way instead of trying to cram it into the args)
msg.reply("Unban reason? `cancel` to cancel");
const unbanReasonReply = await waitForReply(pluginData.client, msg.channel, msg.author.id);
if (!unbanReasonReply || !unbanReasonReply.content || unbanReasonReply.content.toLowerCase().trim() === "cancel") {
pluginData.state.common.sendErrorMessage(msg, "Cancelled");
return;
}
const member = await resolveMessageMember(msg);
actualMassUnbanCmd(pluginData, msg, args.userIds, member, unbanReasonReply.content, [
...unbanReasonReply.attachments.values(),
]);
},
});