public bool CreateLobby(HanksiteSession ownerSession, LobbySettings settings) { lock (syncObject) { if (lobbyManagers.Any(manager => manager.Name == settings.Name)) { return(false); } lobbyManagers.Add(LobbyManager.CreateLobbyManager(ownerSession, settings)); return(true); } }
public LobbySettingsWithMembersSnapshot ConnectToLobby(HanksiteSession playerSession, string lobbyName) { lock (syncObject) { LobbyManager lobbyManager = lobbyManagers.SingleOrDefault(lobby => lobby.Name == lobbyName); if (lobbyManager == null) { return(null); } if (!lobbyManager.ConnectPlayer(playerSession)) { return(null); } return(lobbyManager.Snapshot); } }
public void RemoveLobbyManager(LobbyManager lobbyManager) { LobbyManagerRepository.Instance.RemoveLobbyManager(lobbyManager); }
public ILobbyMember CreateLobbyMember(HanksiteSession session, LobbyManager lobbyManager) { return(new LobbyMember(session, lobbyManager)); }