diff options
| author | Fuwn <[email protected]> | 2025-09-25 12:50:09 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-09-25 12:50:09 -0700 |
| commit | 4f949caa53d952ea05627b563a2a60ad9dd8f25c (patch) | |
| tree | 8a469dac0e20f02ec5e60c90ca7e9bcff162d145 /packages | |
| parent | style(gateway:artMediaModeration): Lint (diff) | |
| download | umabotdiscord-4f949caa53d952ea05627b563a2a60ad9dd8f25c.tar.xz umabotdiscord-4f949caa53d952ea05627b563a2a60ad9dd8f25c.zip | |
feat(gateway:messageDeletion): Log media
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/gateway/src/listeners/messageDeletion.ts | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/packages/gateway/src/listeners/messageDeletion.ts b/packages/gateway/src/listeners/messageDeletion.ts index 05431e7..d500a0b 100644 --- a/packages/gateway/src/listeners/messageDeletion.ts +++ b/packages/gateway/src/listeners/messageDeletion.ts @@ -12,6 +12,8 @@ export const handleMessageDeletion = (client: Client) => { const channel = deletedMessage.channel; const author = deletedMessage.author; const content = deletedMessage.content || "*No text content*"; + const attachments = deletedMessage.attachments; + const embed = new EmbedBuilder() .setTitle("🗑️ Message Deleted") .setColor("#ff4444") @@ -39,14 +41,46 @@ export const handleMessageDeletion = (client: Client) => { if (content.length <= 1024) { embed.addFields({ name: "Content", value: content, inline: false }); - await sendAuditLog(client, embed); } else { embed.addFields({ name: "Content", value: "*Content too long, see message below*", inline: false, }); - await sendAuditLog(client, embed, content); + } + + if (attachments.size > 0) { + const attachmentList = Array.from(attachments.values()) + .map((attachment) => `[${attachment.name}](${attachment.url})`) + .join('\n'); + + embed.addFields({ + name: "Attachments", + value: attachmentList.length <= 1024 ? attachmentList : "*Too many attachments, see message below*", + inline: false, + }); + } + + if (content.length <= 1024 && (!attachments.size || Array.from(attachments.values()).map(a => `[${a.name}](${a.url})`).join('\n').length <= 1024)) { + await sendAuditLog(client, embed); + } else { + let additionalContent = ""; + + if (content.length > 1024) { + additionalContent += "**Content:**\n" + content + "\n\n"; + } + + if (attachments.size > 0) { + const attachmentList = Array.from(attachments.values()) + .map((attachment) => `[${attachment.name}](${attachment.url})`) + .join('\n'); + + if (attachmentList.length > 1024) { + additionalContent += "**Attachments:**\n" + attachmentList; + } + } + + await sendAuditLog(client, embed, additionalContent); } } catch (error) { console.error("Error logging message deletion:", error); |