diff options
| -rw-r--r-- | packages/gateway/src/listeners/messageDeletion.ts | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/packages/gateway/src/listeners/messageDeletion.ts b/packages/gateway/src/listeners/messageDeletion.ts index 9c9c6f1..54a4ddf 100644 --- a/packages/gateway/src/listeners/messageDeletion.ts +++ b/packages/gateway/src/listeners/messageDeletion.ts @@ -34,6 +34,9 @@ export const handleMessageDeletion = (client: Client) => { if (isPrivilegedAuthor) return; + let deleterId: string | undefined; + let deleterUser: any = null; + try { const auditLogs = await guild?.fetchAuditLogs({ limit: 1, @@ -42,15 +45,18 @@ export const handleMessageDeletion = (client: Client) => { const deletionLog = auditLogs?.entries.first(); if (deletionLog) { - const deleterId = deletionLog.executor?.id; + deleterId = deletionLog.executor?.id; + const isPrivilegedDeleter = deleterId === client.user?.id || deleterId === ownerId || deleterId === serverOwnerId || deleterId === BOT_ID; - const deleterUser = deleterId + + deleterUser = deleterId ? await client.users.fetch(deleterId).catch(() => null) : null; + const isBotDeleter = deleterUser?.bot === true; if (isPrivilegedDeleter || isBotDeleter) return; @@ -89,12 +95,21 @@ export const handleMessageDeletion = (client: Client) => { value: `[${deletedMessage.id}](https://discord.com/channels/${deletedMessage.guildId}/${channel.id}/${deletedMessage.id})`, inline: true, }, - ) - .setTimestamp() - .setFooter({ - text: `Guild: ${deletedMessage.guild?.name || "Unknown"}`, + ); + + if (deleterId && deleterId !== author?.id) + embed.addFields({ + name: "Deleted By", + value: deleterUser + ? `<@${deleterId}>` + : `Unknown User (${deleterId})`, + inline: true, }); + embed.setTimestamp().setFooter({ + text: `Guild: ${deletedMessage.guild?.name || "Unknown"}`, + }); + if (content.length <= 1024) { embed.addFields({ name: "Content", value: content, inline: false }); } else { |