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

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

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

Предоставляет высокоуровневый класс для работы с игровыми сессиями.

SessionManager

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

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

create

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

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

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

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

Parameters:

  • room_id

    (str) –

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

  • owner

    (BaseUser) –

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

player

player(user_id: str) -> Player | None

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

remove

remove(room_id: str) -> None

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

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

room

room(room_id: str) -> MauGame | None

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

set_handler

set_handler(handler: _H) -> None

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