From 3e802e38bd388919a1ef0ee217aade962a627620 Mon Sep 17 00:00:00 2001 From: Andrew1031 Date: Fri, 20 Sep 2024 15:32:18 -0700 Subject: [PATCH] Automatically pin first message in project forum --- .../help/HelpThreadCreatedListener.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java index 12ee788fa1..2203c2b8c8 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java @@ -58,15 +58,15 @@ public HelpThreadCreatedListener(HelpSystemHelper helper) { @Override public void onMessageReceived(MessageReceivedEvent event) { + String projectsChannelName = "projects"; if (event.isFromThread()) { ThreadChannel threadChannel = event.getChannel().asThreadChannel(); Channel parentChannel = threadChannel.getParentChannel(); - if (helper.isHelpForumName(parentChannel.getName())) { - int messageCount = threadChannel.getMessageCount(); - if (messageCount > 1 || wasThreadAlreadyHandled(threadChannel.getIdLong())) { - return; - } + boolean isPost = isPostMessage(threadChannel); + if (helper.isHelpForumName(parentChannel.getName()) && isPost) { handleHelpThreadCreated(threadChannel); + } else if (parentChannel.getName().equals(projectsChannelName) && isPost) { + handleProjectThread(event); } } } @@ -90,6 +90,10 @@ private void handleHelpThreadCreated(ThreadChannel threadChannel) { }).queue(); } + private void handleProjectThread(MessageReceivedEvent event) { + event.getMessage().pin().queue(); + } + private static User getMentionedAuthorByMessage(Message message) { return message.getMentions().getUsers().getFirst(); } @@ -98,6 +102,11 @@ private static boolean isPostedBySelfUser(Message message) { return message.getJDA().getSelfUser().equals(message.getAuthor()); } + private boolean isPostMessage(ThreadChannel threadChannel) { + int messageCount = threadChannel.getMessageCount(); + return messageCount <= 1 && !wasThreadAlreadyHandled(threadChannel.getIdLong()); + } + private RestAction createAIResponse(ThreadChannel threadChannel, Message message) { return helper.constructChatGptAttempt(threadChannel, getMessageContent(message), componentIdInteractor);