diff options
| -rw-r--r-- | packages/gateway/src/listeners/messageEdit.ts | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/packages/gateway/src/listeners/messageEdit.ts b/packages/gateway/src/listeners/messageEdit.ts index d1fd2a8..23be688 100644 --- a/packages/gateway/src/listeners/messageEdit.ts +++ b/packages/gateway/src/listeners/messageEdit.ts @@ -2,6 +2,8 @@ import { Client, Events, EmbedBuilder } from "discord.js"; import { GUILD_ID } from "../constants"; import { sendAuditLog } from "../commands/utilities"; +const EDIT_LOG_CHANNEL_ID = "1422501525678198855"; + export const handleMessageEdit = (client: Client) => { client.on(Events.MessageUpdate, async (oldMessage, newMessage) => { if (newMessage.guildId !== GUILD_ID) return; @@ -10,6 +12,12 @@ export const handleMessageEdit = (client: Client) => { if (oldMessage.content === newMessage.content) return; + const application = await client.application?.fetch(); + const ownerId = application?.owner?.id; + const isBotOrOwner = + newMessage.author?.id === client.user?.id || + newMessage.author?.id === ownerId; + try { const channel = newMessage.channel; const author = newMessage.author; @@ -64,20 +72,33 @@ export const handleMessageEdit = (client: Client) => { let additionalContent = ""; - if (oldContent.length > maxFieldLength) { + if (oldContent.length > maxFieldLength) additionalContent += `BEFORE:\n${oldContent}\n\n`; - } - if (newContent.length > maxFieldLength) { + + if (newContent.length > maxFieldLength) additionalContent += `AFTER:\n${newContent}`; - } - await sendAuditLog(client, embed, additionalContent); + if (isBotOrOwner) { + await sendAuditLog(client, embed, additionalContent); + } else { + await sendAuditLog( + client, + embed, + additionalContent, + EDIT_LOG_CHANNEL_ID, + ); + } } else { embed.addFields( { name: "Before", value: oldContent, inline: false }, { name: "After", value: newContent, inline: false }, ); - await sendAuditLog(client, embed); + + if (isBotOrOwner) { + await sendAuditLog(client, embed); + } else { + await sendAuditLog(client, embed, undefined, EDIT_LOG_CHANNEL_ID); + } } } catch (error) { console.error("Error logging message edit:", error); |