@EniMou
Изучаю Java

Что делать, если бот в ВК на Java не не сразу отвечает на сообщения?

Здравствуйте, хочу создать мини-викторину в личных сообщениях бота, а проверка ответа будет осуществляться с помощью id сообщения. Может быть можно осуществить проверку намного проще (прошу подсказать, если таковая существует), но задержка меня беспокоит больше всего. Бот часто просто-напросто не читает первое, второе, третье сообщения.
Среда разработки Gradle. Ссылка на бота: https://vk.com/club212819492
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
@EniMou Автор вопроса
Изучаю Java
while (true) {
            MessagesGetLongPollHistoryQuery historyQuery = vk.messages().getLongPollHistory(actor).ts(ts);
            List<Message> messages = historyQuery.execute().getMessages().getItems();
            if (!messages.isEmpty()) {
                messages.forEach(message -> {
                    System.out.println(message.toString());
                    try {
                        int messageId = message.getId();
                        String derived = message.getText();
                        if (derived.equals("Привет")) {
                            vk.messages().send(actor).message("Здравствуй! " + messageId).userId(message.getFromId()).randomId(random.nextInt(10000)).execute();
                        } else if (derived.equals("Пока")) {
                            vk.messages().send(actor).message("До скорых встреч!").userId(message.getFromId()).randomId(random.nextInt(10000)).execute();
                        } else {
                            vk.messages().send(actor).message("Мой спектр возможностей ограничен, поэтому я, к сожалению не могу вам помочь(((  \n" + messageId)
                                    .userId(message.getFromId()).randomId(random.nextInt(10000)).execute();
                        }
                    } catch (ApiException | ClientException e) {
                        e.printStackTrace();
                    }
                });
            }
            ts = vk.messages().getLongPollServer(actor).execute().getTs();
            Thread.sleep(1);

        }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы