summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-11-06 19:51:03 -0800
committerFuwn <[email protected]>2025-11-06 19:51:03 -0800
commit5826fe7030a1b8043a41cc73d1294986365c0065 (patch)
treef03d1fa9d0068f55c0823c44fd89758fa6439e39
parentfeat(gateway:listeners): Add #super-freak manager (diff)
downloadumabotdiscord-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.ts3
-rw-r--r--packages/gateway/src/listeners/index.ts2
-rw-r--r--packages/gateway/src/listeners/textContentDeletion.ts27
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);
+ }
+ });
+};