diff options
| author | Fuwn <[email protected]> | 2025-11-03 05:29:27 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-11-03 05:29:27 -0800 |
| commit | c7bf9a1d8445293bc7b0ca2f0442fa7c0e9bfa6f (patch) | |
| tree | 78d0d41b5b7c39735d0ba7759268cc4f5fd363d2 | |
| parent | fix(gateway:messageDeletion): Log all actions (diff) | |
| download | umabotdiscord-c7bf9a1d8445293bc7b0ca2f0442fa7c0e9bfa6f.tar.xz umabotdiscord-c7bf9a1d8445293bc7b0ca2f0442fa7c0e9bfa6f.zip | |
feat(commands:delete): Improve log meshing
| -rw-r--r-- | packages/gateway/src/commands/delete.ts | 8 | ||||
| -rw-r--r-- | packages/gateway/src/listeners/messageDeletion.ts | 11 |
2 files changed, 19 insertions, 0 deletions
diff --git a/packages/gateway/src/commands/delete.ts b/packages/gateway/src/commands/delete.ts index f558d24..4a3b85a 100644 --- a/packages/gateway/src/commands/delete.ts +++ b/packages/gateway/src/commands/delete.ts @@ -1,6 +1,10 @@ import { Message } from "discord.js"; import { logUnexpectedDiscordAPIError, replyWithCleanup } from "../utilities"; import { logUnexpectedDiscordAPIResult } from "../../../shared/log"; +import { + disableMessageDeletionListener, + enableMessageDeletionListener, +} from "../listeners/messageDeletion"; export const handleDeleteCommand = async (message: Message) => { if (message.author.bot) return; @@ -66,6 +70,8 @@ export const handleDeleteCommand = async (message: Message) => { return; } + disableMessageDeletionListener(); + try { if (messageIds.length > 1) { try { @@ -158,6 +164,8 @@ export const handleDeleteCommand = async (message: Message) => { await message.reply( "❌ Failed to delete messages. Check bot permissions and try again.", ); + } finally { + enableMessageDeletionListener(); } } }; diff --git a/packages/gateway/src/listeners/messageDeletion.ts b/packages/gateway/src/listeners/messageDeletion.ts index b1316fc..580e371 100644 --- a/packages/gateway/src/listeners/messageDeletion.ts +++ b/packages/gateway/src/listeners/messageDeletion.ts @@ -13,9 +13,20 @@ const GUILD_CHANNEL_MAPPINGS = { [CENTRAL_GUILD_ID]: CENTRAL_MESSAGE_LOG_CHANNEL_ID, [ROLEPLAY_GUILD_ID]: ROLEPLAY_MESSAGE_LOG_CHANNEL_ID, } as const; +let isListenerDisabled = false; + +export const disableMessageDeletionListener = () => { + isListenerDisabled = true; +}; + +export const enableMessageDeletionListener = () => { + isListenerDisabled = false; +}; export const handleMessageDeletion = (client: Client) => { client.on(Events.MessageDelete, async (deletedMessage) => { + if (isListenerDisabled) return; + if ( !deletedMessage.guildId || !(deletedMessage.guildId in GUILD_CHANNEL_MAPPINGS) |