diff options
| author | Fuwn <[email protected]> | 2025-11-06 19:51:03 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-11-06 19:51:03 -0800 |
| commit | 5826fe7030a1b8043a41cc73d1294986365c0065 (patch) | |
| tree | f03d1fa9d0068f55c0823c44fd89758fa6439e39 | |
| parent | feat(gateway:listeners): Add #super-freak manager (diff) | |
| download | umabotdiscord-5826fe7030a1b8043a41cc73d1294986365c0065.tar.xz umabotdiscord-5826fe7030a1b8043a41cc73d1294986365c0065.zip | |
feat(gateway:listeners): Add text content management system for #nsfw-art
| -rw-r--r-- | packages/gateway/src/listeners/clientReady/index.ts | 3 | ||||
| -rw-r--r-- | packages/gateway/src/listeners/index.ts | 2 | ||||
| -rw-r--r-- | packages/gateway/src/listeners/textContentDeletion.ts | 27 |
3 files changed, 30 insertions, 2 deletions
diff --git a/packages/gateway/src/listeners/clientReady/index.ts b/packages/gateway/src/listeners/clientReady/index.ts index 8c43d3b..39a2ef9 100644 --- a/packages/gateway/src/listeners/clientReady/index.ts +++ b/packages/gateway/src/listeners/clientReady/index.ts @@ -6,7 +6,6 @@ import { initializeMessageStatistics } from "../messageStatistics"; import { initializePersonaSystem } from "../messageCreate/personaRandomMessage"; import { initializeConversationStarterSystem } from "../messageCreate/dailyConversationStarter"; import { initializeWelcomeSystem } from "../memberJoin"; -import { initializeSuperFreakChannelSystem } from "../superFreakChannel"; export const handleClientReady = (client: Client) => { client.once(Events.ClientReady, async (readyClient) => { @@ -16,7 +15,7 @@ export const handleClientReady = (client: Client) => { initializePersonaSystem(readyClient); initializeConversationStarterSystem(readyClient); initializeWelcomeSystem(readyClient); - await initializeSuperFreakChannelSystem(readyClient); + // await initializeSuperFreakChannelSystem(readyClient); await handleUmagramCatchup(readyClient); // Character claim tracker will initialize on first use }); diff --git a/packages/gateway/src/listeners/index.ts b/packages/gateway/src/listeners/index.ts index 46ae30c..167a68f 100644 --- a/packages/gateway/src/listeners/index.ts +++ b/packages/gateway/src/listeners/index.ts @@ -12,6 +12,7 @@ import { handleAutoDeletion } from "./autoDeletion"; import { handleEmojiUsageTracking } from "./emojiUsageTracking"; import { handleBotMessageLogger } from "./botMessageLogger"; import { handleRoleExclusion } from "./roleExclusion"; +import { handleTextContentDeletion } from "./textContentDeletion"; // import { handleMediaModeration } from "./mediaModeration"; export const handleListeners = (client: Client) => { @@ -28,5 +29,6 @@ export const handleListeners = (client: Client) => { handleEmojiUsageTracking(client); handleBotMessageLogger(client); handleRoleExclusion(client); + handleTextContentDeletion(client); // handleMediaModeration(client); }; diff --git a/packages/gateway/src/listeners/textContentDeletion.ts b/packages/gateway/src/listeners/textContentDeletion.ts new file mode 100644 index 0000000..f064a4c --- /dev/null +++ b/packages/gateway/src/listeners/textContentDeletion.ts @@ -0,0 +1,27 @@ +import { Client, Events, Message } from "discord.js"; +import { logUnexpectedDiscordAPIError } from "../utilities"; + +const TARGET_CHANNEL_ID = "1436188327060570184"; + +export const handleTextContentDeletion = (client: Client) => { + client.on(Events.MessageCreate, async (message: Message) => { + const isMainChannel = message.channelId === TARGET_CHANNEL_ID; + const isThreadInChannel = + message.channel?.isThread() && + message.channel.parentId === TARGET_CHANNEL_ID; + + if (!isMainChannel && !isThreadInChannel) return; + + const hasText = message.content && message.content.trim().length > 0; + const hasAttachments = message.attachments.size > 0; + const hasEmbeds = message.embeds.length > 0; + + if (!hasText || hasAttachments || hasEmbeds) return; + + try { + await message.delete(); + } catch (error) { + logUnexpectedDiscordAPIError(error); + } + }); +}; |