менеджер сессий
Менеджер сессий.
Предоставляет высокоуровневый класс для работы с игровыми сессиями. Обычно используется один менеджер сессий на платформу. Он уже и будет руководить всеми играми и игроками.
SessionManager
SessionManager(
game_storage: BaseStorage | None = None,
player_storage: BaseStorage | None = None,
event_handler: _H | None = None,
)
Bases: Generic[_H]
Менеджер сессий.
Высокоуровневый класс для управления сессиями и игроками. Предоставляет высокоуровневые методы для создания и удаления игр. Привязывается к конкретному типу игр и хранилищу.
Parameters:
-
(game_storageBaseStorage | None, default:None) –Хранилище для игр. По умолчания в оперативной памяти. Каждая созданная игра связывается с идентификатором
room_id. Таким образом в одном чате может находиться только одна комната. -
(player_storageBaseStorage | None, default:None) –Хранилище для игроков. По умолчанию в оперативной памяти. Каждый игрок может находиться только в одной игре (комнате).
-
(event_handler_H | None, default:None) –Обработчик событий. Поставляется в игры для обработку всех происходящих событий.
__slots__
class-attribute
instance-attribute
__slots__ = ('_games', '_players', '_event_handler')
create
Создает новую игру.
Автоматически поставляет менеджер игроков и обработчик событий
для игры.
Добавляет созданную игру в хранилище.
Отправляет событие SESSION_START о начале новой сессии.
Теперь можно добавить игроков через экземпляр игры, а после запустить игру.
Parameters:
-
(room_idstr) –к какой комнате будет привязана игра в хранилище.
-
(ownerBaseUser) –Владелец комнаты, становится первым игроком.
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
Устанавливает новый обработчик событий.