Перейти к содержанию

менеджер сессий

Менеджер сессий.

Предоставляет высокоуровневый класс для работы с игровыми сессиями. Обычно используется один менеджер сессий на платформу. Он уже и будет руководить всеми играми и игроками.

SessionManager

Python
SessionManager(
    game_storage: BaseStorage | None = None,
    player_storage: BaseStorage | None = None,
    event_handler: _H | None = None,
)

Bases: Generic[_H]

Менеджер сессий.

Высокоуровневый класс для управления сессиями и игроками. Предоставляет высокоуровневые методы для создания и удаления игр. Привязывается к конкретному типу игр и хранилищу.

Parameters:

  • game_storage

    (BaseStorage | None, default: None ) –

    Хранилище для игр. По умолчания в оперативной памяти. Каждая созданная игра связывается с идентификатором room_id. Таким образом в одном чате может находиться только одна комната.

  • player_storage

    (BaseStorage | None, default: None ) –

    Хранилище для игроков. По умолчанию в оперативной памяти. Каждый игрок может находиться только в одной игре (комнате).

  • event_handler

    (_H | None, default: None ) –

    Обработчик событий. Поставляется в игры для обработку всех происходящих событий.

__slots__ class-attribute instance-attribute

Python
__slots__ = ('_games', '_players', '_event_handler')

create

Python
create(room_id: str, owner: BaseUser) -> MauGame

Создает новую игру.

Автоматически поставляет менеджер игроков и обработчик событий для игры. Добавляет созданную игру в хранилище. Отправляет событие SESSION_START о начале новой сессии.

Теперь можно добавить игроков через экземпляр игры, а после запустить игру.

Parameters:

  • room_id

    (str) –

    к какой комнате будет привязана игра в хранилище.

  • owner

    (BaseUser) –

    Владелец комнаты, становится первым игроком.

player

Python
player(user_id: str) -> Player | None

Возвращает игрока напрямую из хранилища по ID пользователя.

remove

Python
remove(room_id: str) -> None

Полностью завершает игру в для указанной room ID.

Должна выполняться после game.end(), поскольку очищает хранилище игроков. Удаляет игру из хранилища, отправляет событие SESSION_END.

room

Python
room(room_id: str) -> MauGame | None

Возвращает игру напрямую из хранилища по ID комнаты.

set_handler

Python
set_handler(handler: _H) -> None

Устанавливает новый обработчик событий.