Задать вопрос
@SolanDrago

Как сделать чтобы бот ждал какое-то время, но при этом обрабатывал запросы?

Пишу развлекательного чат бота для Telegram на Aiogram 2.25.1.
Создаётся игра мафия, в группе где добавлен бот, он должен выводить сообщение с inline кнопкой "Присоединиться". После отправки данного сообщения бот должен ждать минуту, а после проверять сколько человек присоеденились к игре (нажали на кнопку).
Как такое реализовать? Ваши предложения
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
asyncio.sleep() вполне хватит.
Бот должен знать своё состояние ("покой", "сбор игроков", "игра идёт", ну и так далее).
Один обработчик (начало игры) проверяет, что сейчас состояние "покой", отправляет приглашение, ставит состояние "сбор игроков" и ждёт заданное время. По итогам ожидания проверяет список игроков. Если нужного числа игроков в списке нет, ставит состояние "покой", иначе "игра идёт".
Второй обработчик (игрок присоединился) проверяет, что сейчас состояние "сбор игроков". Если да, добавляет отправителя в список игроков.

Как хранить состояние, список игроков и другую игровую инфу, зависит от того, может ли параллельно идти несколько игровых сессий. Если не может, то достаточно простых глобальных переменных. Если может... всё сложнее.
Ответ написан
Ваш ответ на вопрос

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

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