From 7863b3f62da87e072e3b671c5d7b9d3a0a62ea79 Mon Sep 17 00:00:00 2001 From: akastijn Date: Fri, 8 Aug 2025 22:38:05 +0200 Subject: [PATCH] Add `AutoThread` listener for creating threads in specific channels. --- .../java/com/alttd/listeners/AutoThread.java | 22 +++++++++++++++++++ .../java/com/alttd/listeners/JDAListener.java | 4 +++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/alttd/listeners/AutoThread.java diff --git a/src/main/java/com/alttd/listeners/AutoThread.java b/src/main/java/com/alttd/listeners/AutoThread.java new file mode 100644 index 0000000..1eaa97a --- /dev/null +++ b/src/main/java/com/alttd/listeners/AutoThread.java @@ -0,0 +1,22 @@ +package com.alttd.listeners; + +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NonNls; + +import java.util.List; + +public class AutoThread extends ListenerAdapter { + + List channels = List.of(1172922338023591956L); + + @Override + public void onMessageReceived(@NonNls MessageReceivedEvent event) { + if (!channels.contains(event.getChannel().getIdLong())) { + return; + } + event.getMessage().createThreadChannel("Auto Thread").queue(threadChannel -> + threadChannel.sendMessage("Thread for community post by: " + event.getAuthor().getAsMention()) + .queue()); + } +} diff --git a/src/main/java/com/alttd/listeners/JDAListener.java b/src/main/java/com/alttd/listeners/JDAListener.java index 7f90577..0274c42 100644 --- a/src/main/java/com/alttd/listeners/JDAListener.java +++ b/src/main/java/com/alttd/listeners/JDAListener.java @@ -42,13 +42,15 @@ public class JDAListener extends ListenerAdapter { Logger.altitudeLogs.info("JDA ready to register commands."); LockedChannel lockedChannel = new LockedChannel(); ButtonManager buttonManager = new ButtonManager(); + AutoThread autoThread = new AutoThread(); TagAdded tagAdded = new TagAdded(); AppealRepost appealRepost = new AppealRepost(buttonManager); ModalManager modalManager = new ModalManager(buttonManager); ContextMenuManager contextMenuManager = new ContextMenuManager(modalManager); SelectMenuManager selectMenuManager = new SelectMenuManager(); CommandManager commandManager = new CommandManager(jda, modalManager, contextMenuManager, lockedChannel, selectMenuManager, buttonManager); - jda.addEventListener(buttonManager, tagAdded, modalManager, commandManager, contextMenuManager, lockedChannel, appealRepost, selectMenuManager); + jda.addEventListener(buttonManager, tagAdded, modalManager, commandManager, contextMenuManager, lockedChannel, + appealRepost, selectMenuManager, autoThread); PollQueries.loadPolls(buttonManager); new Timer().scheduleAtFixedRate(new PollTimerTask(jda, Logger.altitudeLogs), TimeUnit.MINUTES.toMillis(1), TimeUnit.MINUTES.toMillis(5)); new QueriesEvent().loadActiveEvents();