Skip to content

Commit 73dbeaf

Browse files
committed
Bugfix wrong messages selected as status messages
1 parent 5081631 commit 73dbeaf

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

application/src/main/java/org/togetherjava/tjbot/commands/help/HelpThreadOverviewUpdater.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public final class HelpThreadOverviewUpdater extends MessageReceiverAdapter impl
2828
private static final Logger logger = LoggerFactory.getLogger(HelpThreadOverviewUpdater.class);
2929

3030
private static final Color AMBIENT_COLOR = Color.decode("#CCCC00");
31+
private static final String STATUS_TITLE = "Active questions";
3132
// FIXME Reduce code duplication with similar pattern in ChangeHelpCategoryCommand
3233
private static final Pattern EXTRACT_CATEGORY_PATTERN =
3334
Pattern.compile("(?:\\[(?<category>.+)] )?(?<title>.+)");
@@ -127,7 +128,7 @@ private void updateOverview(@NotNull IThreadContainer stagingChannel,
127128
.filter(Predicate.not(ThreadChannel::isArchived))
128129
.toList();
129130

130-
MessageEmbed embed = new EmbedBuilder().setTitle("Active questions")
131+
MessageEmbed embed = new EmbedBuilder().setTitle(STATUS_TITLE)
131132
.setDescription(createDescription(activeThreads))
132133
.setColor(AMBIENT_COLOR)
133134
.build();
@@ -183,7 +184,21 @@ private void updateOverview(@NotNull IThreadContainer stagingChannel,
183184
.retrievePast(1)
184185
.map(messages -> messages.stream()
185186
.findFirst()
186-
.filter(message -> message.getAuthor().isBot()));
187+
.filter(HelpThreadOverviewUpdater::isStatusMessage));
188+
}
189+
190+
private static boolean isStatusMessage(@NotNull Message message) {
191+
if (!message.getAuthor().equals(message.getJDA().getSelfUser())) {
192+
return false;
193+
}
194+
195+
List<MessageEmbed> embeds = message.getEmbeds();
196+
if (embeds.isEmpty()) {
197+
return false;
198+
}
199+
200+
MessageEmbed embed = embeds.get(0);
201+
return STATUS_TITLE.equals(embed.getTitle());
187202
}
188203

189204
private enum ChannelType {

0 commit comments

Comments
 (0)