Есть хендлер который реагирует на команды "Начать игру" или "Следующий вопрос", при его срабатывании активируется вложенный хендлер который принимает ответ на вопрос переданный при помощи кнопок клавиатуры "answer_btn".
После один из ответов, (который получает вложенный хендлер) обрабатывается функцией check() которая возвращает True/False.
При любом значении result загружается сообщение с подключаемой клавиатурой next_question_keyboard, которая по идее должна отправлять меня к основному хендлеру (на первую строку), но я зависаю во вложенном хендлере.
ps
Код упрощенный для простоты понятия вопроса.
@disp.message(ai.F.text == 'Начать игру' or ai.F.text == 'Следующий вопрос') # основной хендлер
async def start_game(message):
await message(f'Зимой и летом одним цветом?')
await message.answer('Варианты ответа: \n a)Ясень \n b)Ёлка \n c)Кедр', reply_markup = answer_btn) # клавиатура с кнопками ответов
@disp.message(ai.F.text) # вложенный хендлер
async def check_answer(message):
result = check(message.text)
if result:
await message.answer('Верно!', reply_markup = next_question_keyboard) # клавиатура с кнопкой "Следующий вопрос"
else:
await message.answer(f'Неверно!', reply_markup = next_question_keyboard) # клавиатура с кнопкой "Следующий вопрос"