Я работаю над диссон-ботом в IntelliJ, используя Gradle, который выбирает два варианта и позволяет другим голосовать. Тем не менее, я не могу найти способ заставить его прослушивать выбор голоса после того, как команда голосования уже была использована.
public static void main(String[] args) throws LoginException {
JDABuilder builder = new JDABuilder(AccountType.BOT);
String token = "bot token";
builder.setToken(token);
builder.addEventListener(new Main());
builder.buildAsync();
}
@Override
public void onMessageReceived(MessageReceivedEvent event) {
System.out.println("We received a message from " +
event.getAuthor().getName() + ": " +
event.getMessage().getContentDisplay()
);
if (event.getMessage().getContentRaw().equals("vote uwu")) {
event.getJDA().addEventListener();
int choice1 = (int) (Math.random() * 6);
int choice2 = (int) (Math.random() * 6);
while (choice2 == choice1) {
choice2 = (int) (Math.random() * 6);
}
event.getChannel().sendMessage("1 - " + choices[choice1][0] + " | 2 - " + choices[choice2][0]).queue();
Здесь он сообщает о двух вариантах и нажимает тип 1 или 2, чтобы проголосовать , Кажется, я не могу получить голос с этим кодом, который следует за ним, потому что при распечатке баллы остаются неизменными, и я не вижу сообщения с подтверждением голосования.
if (event.getMessage().getContentRaw().equals("1")) {
choices[choice1][1] = Integer.toString((Integer.parseInt(choices[choice1][1]) + 2));
choices[choice2][1] = Integer.toString((Integer.parseInt(choices[choice2][1]) - 1));
event.getChannel().sendMessage("vote counted").queue();
}
else if (event.getMessage().getContentRaw().equals("2")) {
choices[choice2][1] = Integer.toString((Integer.parseInt(choices[choice2][1]) + 2));
choices[choice1][1] = Integer.toString((Integer.parseInt(choices[choice1][1]) - 1));
event.getChannel().sendMessage("vote counted").queue();
}
Я предполагаю, что не могу снова использовать «событие» из аргумента MessageReceivedEvent, так как мне подойти к этому?