summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-11-03 05:23:06 -0800
committerFuwn <[email protected]>2025-11-03 05:23:06 -0800
commit306a358ba87208746c40cc86870da10a5112be09 (patch)
treebfa715e1b96200fa369ae9e46af0d4f3c2323a80
parentfeat(gateway:commands): Add timeout command (diff)
downloadumabotdiscord-306a358ba87208746c40cc86870da10a5112be09.tar.xz
umabotdiscord-306a358ba87208746c40cc86870da10a5112be09.zip
fix(gateway:messageDeletion): Log all actions
-rw-r--r--packages/gateway/src/listeners/messageDeletion.ts52
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 {