Как получить state.data определенного юзера aiogram

Кратко: пишу камень ножницы бумага для телеграмм бота.

Есть class RPS в нем 4 стейта

  1. Начало игры
  2. Выбор игрока 1
  3. Выбор игрока 2
  4. Финал

Как реализовать выгрузку date из игрока 2?

Код не могу пока прикрепить, готового решения не жду, мне нужно хотя бы понимание, как можно реализовать основную механику на aiogram


Ответы (1 шт):

Автор решения: oleksandrigo

Вот так

user_id = ...
chat_id = user_id # это если данные в ЛС, а не в группе какой-то, 
                  # в целом просто ниже подставьте user_id, а не плодите переменные
# обьект стейта
state_with: FSMContext = dp.current_state(chat=chat_id, user=user_id)
# текущий стейт и дата
current_state = await state_with.get_state()
current_data = await state_with.get_data()

await state_with.set_state(...)
# можно так
await state_with.set_data(...) # <- помещать словарь
# а еще можно открыть дату через прокси
async with state_with.proxy() as data:
    data[...] = ...
→ Ссылка