Как заставить Telegram бота на Java общаться в контексте?

Рейтинг: 0Ответов: 1Опубликовано: 14.06.2023

Создаю телеграмм бота, основные методы прописал, не могу понять как заставить его общаться в контексте, пример:

Есть команда /data -> Для расчета математики даты, после данного сообщения мне нужно заставить бота ждать сообщение от пользователя в разных форматах.

Если пользователь вводит правильный формат, например 31.12.2023 -> Происходит расчет и возвращается ответ

Если пользователь вводит неправильный формат, например Sds/232 -> Происходит отправка сообщения о неправильном формате и возврат к исходному меню с функциями /start, /data и т.д.

Если сообщению после ввода /data присвоить callBackData, не могу понять как дальше сделать контекст.

В onUpdateReceived я не могу вписать, что при получении LocalDate начать расчет, ибо методов много, нужен именно контекст.

p.s. Упомяну, что строю не на вебхуках, а LongPolling

Ответы

▲ 1

Может кому поможет. Реализовал так:

При вызове команды /day в Map<Long, String> callBacker заносится информация о пользователе и самой CallBackData.

В слушатель (onUpdateReceived) занес информацию о проверке в мапе наличия ключа, если такой пользователь есть -> идет проверка callBack информации, тогда запускается сцена с расчетами и удаление пользователя оттуда.