public void UnregisterListener() { listener = null; ResetControl(); }
public void RegisterListener(IPlayerSessionEventListener listener) { this.listener = listener; }
public void Replace(int id, Password password, CreatePlayerData data, IPlayerSessionEventListener listener) { if(state == SessionState.Ended) throw new BadSessionStateException(); lock(Lock) { if(!this.data.PlayerPassword.CheckPassword(password)) throw new BadSessionPasswordException(); SessionPlayer player = GetPlayer(id); if(player.CheckListener() && !player.IsAI) throw new CannotReplacePlayerException(); player.Update(data); player.RegisterListener(listener); eventMgr.SendController(player); if(state == SessionState.Playing) game.RegisterPlayer(player); eventMgr.OnPlayerUpdated(player); server.SaveState(); } }
public void Join(Password password, CreatePlayerData data, IPlayerSessionEventListener listener) { if(state == SessionState.Ended) throw new BadSessionStateException(); lock(Lock) { if(state != SessionState.WaitingForPlayers) throw new BadSessionStateException(); if(players.Count >= this.data.MaxPlayers) throw new TooManyPlayersException(); if(!this.data.PlayerPassword.CheckPassword(password)) throw new BadSessionPasswordException(); int id = players.GenerateID(); if(creatorId == 0) creatorId = id; SessionPlayer player = new SessionPlayer(id, this, data); players.Add(id, player); playerList.Add(player); player.RegisterListener(listener); eventMgr.SendController(player); eventMgr.OnPlayerJoinedSession(player); server.SaveState(); } }
/// <summary> /// Adds the listener to the list of member listeners. /// </summary> /// <param name="listener"> /// The listener to add. /// </param> public void AddListener(IPlayerSessionEventListener listener) { if(!mainListeners.Contains(listener)) mainListeners.Add(listener); if(!playerListeners.Contains(listener)) playerListeners.Add(listener); }
public void CreateSession(CreateSessionData sessionData, CreatePlayerData playerData, IPlayerSessionEventListener listener) { lock(Lock) { int id = sessions.GenerateID(); Session session = new Session(this, id, sessionData); sessions.Add(id, session); Console.Error.WriteLine("INFO: Created session #{0}.", id); session.Join(sessionData.PlayerPassword, playerData, listener); eventMgr.OnSessionCreated(session); SaveState(); } }