менеджер сессий
Менеджер сессий.
Предоставляет высокоуровневый класс для работы с игровыми сессиями.
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
Создает новую игру.
Автоматически поставляет менеджер игроков и обработчик событий
для игры.
Добавляет созданную игру в хранилище игр.
Отправляет событие 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
.
set_handler
set_handler(handler: _H) -> None
Устанавливает новый обработчик событий.