Как я могу заставить своего бота Discord принять ответ / второе событие после того, как он уже получил команду? - PullRequest
0 голосов
/ 29 февраля 2020

Я работаю над диссон-ботом в 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, так как мне подойти к этому?

...