3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-06-08 00:05:01 +00:00
zeppelin/backend/src/plugins/ModActions/functions/formatReasonForAttachments.ts
Dragory 45e3fe2ef0
chore: esm imports
This will make merging this into 'next' much easier.
2024-08-11 21:58:52 +03:00

30 lines
1.1 KiB
TypeScript

import { Attachment, ChatInputCommandInteraction, Message } from "discord.js";
import { GuildPluginData } from "knub";
import { isContextMessage } from "../../../pluginUtils.js";
import { ModActionsPluginType } from "../types.js";
export async function formatReasonWithMessageLinkForAttachments(
pluginData: GuildPluginData<ModActionsPluginType>,
reason: string,
context: Message | ChatInputCommandInteraction,
attachments: Attachment[],
) {
if (isContextMessage(context)) {
const allAttachments = [...new Set([...context.attachments.values(), ...attachments])];
return allAttachments.length > 0 ? ((reason || "") + " " + context.url).trim() : reason;
}
if (attachments.length < 1) {
return reason;
}
const attachmentsMessage = await pluginData.state.common.storeAttachmentsAsMessage(attachments, context.channel);
return ((reason || "") + " " + attachmentsMessage.url).trim();
}
export function formatReasonWithAttachments(reason: string, attachments: Attachment[]) {
const attachmentUrls = attachments.map((a) => a.url);
return ((reason || "") + " " + attachmentUrls.join(" ")).trim();
}