package lobbies import ( "mchess_server/chess" "mchess_server/utils" ) type Usher struct { } var usherInstance *Usher func newUsher() *Usher { return &Usher{} } func GetUsher() *Usher { if usherInstance == nil { usherInstance = newUsher() } return usherInstance } func (u *Usher) WelcomeNewPlayer(player *chess.Player) *Lobby { return GetLobbyRegistry().GetLobbyForPlayer() } func (u *Usher) CreateNewPrivateLobby(player *chess.Player) *Lobby { return GetLobbyRegistry().CreateNewPrivateLobby() } func (u *Usher) FindExistingPrivateLobby(p utils.Passphrase) *Lobby { return GetLobbyRegistry().GetLobbyByPassphrase(p) } func (u *Usher) AddPlayerToLobbyAndStartGameIfFull(player *chess.Player, lobby *Lobby) { lobby.AddPlayerAndStartGameIfFull(player) }