|
1 | 1 | package org.togetherjava.tjbot.features.help;
|
2 | 2 |
|
3 | 3 | import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
| 4 | +import net.dv8tion.jda.api.events.channel.update.ChannelUpdateAppliedTagsEvent; |
4 | 5 | import net.dv8tion.jda.api.events.channel.update.ChannelUpdateArchivedEvent;
|
5 | 6 | import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
6 | 7 | import org.jetbrains.annotations.NotNull;
|
@@ -37,15 +38,27 @@ public void onChannelUpdateArchived(@NotNull ChannelUpdateArchivedEvent event) {
|
37 | 38 | }
|
38 | 39 | ThreadChannel threadChannel = event.getChannel().asThreadChannel();
|
39 | 40 |
|
40 |
| - |
41 | 41 | if (!helper.isHelpForumName(threadChannel.getParentChannel().getName())) {
|
42 | 42 | return;
|
43 | 43 | }
|
44 |
| - handleThreadStatus(threadChannel); |
| 44 | + handleThreadStatus(threadChannel.getIdLong()); |
45 | 45 | }
|
46 | 46 |
|
47 |
| - private void handleThreadStatus(ThreadChannel threadChannel) { |
| 47 | + @Override |
| 48 | + public void onChannelUpdateAppliedTags(@NotNull ChannelUpdateAppliedTagsEvent event) { |
| 49 | + ThreadChannel threadChannel = event.getChannel().asThreadChannel(); |
| 50 | + |
| 51 | + if(!helper.isHelpForumName(threadChannel.getParentChannel().getName())){ |
| 52 | + return; |
| 53 | + } |
| 54 | + |
| 55 | + String updatedTag = event.getAddedTags().getFirst().getName(); |
48 | 56 | long threadId = threadChannel.getIdLong();
|
| 57 | + |
| 58 | + handleTagsUpdate(threadId,updatedTag); |
| 59 | + } |
| 60 | + |
| 61 | + private void handleThreadStatus(long threadId) { |
49 | 62 | Instant closedAt = Instant.now();
|
50 | 63 |
|
51 | 64 | int status = database.read(context -> context.selectFrom(HELP_THREADS)
|
@@ -77,4 +90,13 @@ private void changeStatusToActive(long threadId) {
|
77 | 90 |
|
78 | 91 | logger.info("Thread with id: {}, updated to active status in database", threadId);
|
79 | 92 | }
|
| 93 | + |
| 94 | + private void handleTagsUpdate(long threadId, String updatedTag){ |
| 95 | + database.write(context->context.update(HELP_THREADS) |
| 96 | + .set(HELP_THREADS.TAG,updatedTag) |
| 97 | + .where(HELP_THREADS.CHANNEL_ID.eq(threadId)) |
| 98 | + .execute()); |
| 99 | + |
| 100 | + logger.info("Updated tag for thread with id: {} in database",threadId); |
| 101 | + } |
80 | 102 | }
|
0 commit comments