Когда я пытаюсь прочитать реакции, добавленные в отправленное сообщение, я всегда получаю пустой список.
MessageBuilder mb = new MessageBuilder();
channel.sendMessage(mb.build()).queue((t);
После добавления реакций я выполняю этот код:
System.out.println(t.getReactions().size());
for (MessageReaction r : t.getReactions()) {
System.out.println(r.getReactionEmote().getName());
}
(это еще не реализовано, я просто пытаюсь понять, как я могу его использовать)
Я ожидаю, что на выходе будет количество добавленных мной реакций, но System.out.println(t.getReactions().size());
всегда будет выводить 0 независимо от количества реакций, добавленных в отправленное сообщение.
Более того, при итерации списка, содержащего реакции, он всегда ничего не выводит на консоль, поскольку список кажется пустым .
Мне нужно что-то добавить, что я могу использовать .getReactions()
?
Я также пробовал использовать eventWaiter:
eventWaiter.waitForEvent(GuildMessageReactionAddEvent.class, (event) -> {
return "?".equals(event.getReactionEmote().getName()) && !event.getUser().isBot()
&& event.getMessageIdLong() == messageId;
}, (event) -> {
System.out.println("Reacting to reaction");
}, (long) 30, TimeUnit.SECONDS, () -> {
System.out.println("Timeout. No event was registered.");
});
Это всегда выводит предупреждение о тайм-ауте, независимо от добавленных реакций.