diff options
| author | Fuwn <[email protected]> | 2025-11-03 05:23:06 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-11-03 05:23:06 -0800 |
| commit | 306a358ba87208746c40cc86870da10a5112be09 (patch) | |
| tree | bfa715e1b96200fa369ae9e46af0d4f3c2323a80 | |
| parent | feat(gateway:commands): Add timeout command (diff) | |
| download | umabotdiscord-306a358ba87208746c40cc86870da10a5112be09.tar.xz umabotdiscord-306a358ba87208746c40cc86870da10a5112be09.zip | |
fix(gateway:messageDeletion): Log all actions
| -rw-r--r-- | packages/gateway/src/listeners/messageDeletion.ts | 52 |
1 files changed, 10 insertions, 42 deletions
diff --git a/packages/gateway/src/listeners/messageDeletion.ts b/packages/gateway/src/listeners/messageDeletion.ts index 3398112..b1316fc 100644 --- a/packages/gateway/src/listeners/messageDeletion.ts +++ b/packages/gateway/src/listeners/messageDeletion.ts @@ -6,7 +6,6 @@ import { CENTRAL_MESSAGE_LOG_CHANNEL_ID, ROLEPLAY_MESSAGE_LOG_CHANNEL_ID, BOT_ID, - DISCORD_AUDIT_LOG_TYPES, } from "../constants"; import { logUnexpectedDiscordAPIError } from "../utilities"; @@ -29,54 +28,23 @@ export const handleMessageDeletion = (client: Client) => { const ownerId = application?.owner?.id; const guild = deletedMessage.guild; const serverOwnerId = guild?.ownerId; - const isPrivilegedAuthor = + const isPrivilegedUser = deletedMessage.author?.id === client.user?.id || deletedMessage.author?.id === ownerId || - deletedMessage.author?.id === serverOwnerId; + deletedMessage.author?.id === serverOwnerId || + deletedMessage.author?.id === BOT_ID; - if (isPrivilegedAuthor) return; + if (isPrivilegedUser) return; try { - const auditLogs = await guild?.fetchAuditLogs({ - limit: 10, - type: DISCORD_AUDIT_LOG_TYPES.MESSAGE_DELETE, - }); + const deletedUser = deletedMessage.author?.id + ? await client.users.fetch(deletedMessage.author.id).catch(() => null) + : null; + const isBotUser = deletedUser?.bot === true; - if (!auditLogs || auditLogs.entries.size === 0) return; - - const messageTimestamp = deletedMessage.createdTimestamp; - let deletionLog = null; - - for (const [, entry] of auditLogs.entries) { - const timeDifference = Math.abs( - entry.createdTimestamp - messageTimestamp, - ); - - if (timeDifference <= 5000) { - deletionLog = entry; - - break; - } - } - - if (deletionLog) { - const deleterId = deletionLog.executor?.id; - const isPrivilegedDeleter = - deleterId === client.user?.id || - deleterId === ownerId || - deleterId === serverOwnerId || - deleterId === BOT_ID; - const deleterUser = deleterId - ? await client.users.fetch(deleterId).catch(() => null) - : null; - const isBotDeleter = deleterUser?.bot === true; - - if (isPrivilegedDeleter || isBotDeleter) return; - } else { - return; - } + if (isBotUser) return; } catch { - return; + // } try { |