private void MessageHandlerChange(Yad.Net.Server.Server server, bool enter) { lock (((ICollection)_playerCollection).SyncRoot) { foreach (Player player in _playerCollection.Values) { Player p = player as Player; if (enter) { p.OnReceiveMessage -= new ReceiveMessageDelegate(server.MessageHandler.OnReceivePlayerMessage); p.OnReceiveMessage += new ReceiveMessageDelegate(this.MessageHandler.OnReceivePlayerMessage); p.OnConnectionLost += new ConnectionLostDelegate(this.OnConnectionLost); } else { p.OnReceiveMessage += new ReceiveMessageDelegate(server.MessageHandler.OnReceivePlayerMessage); p.OnReceiveMessage -= new ReceiveMessageDelegate(this.MessageHandler.OnReceivePlayerMessage); p.OnConnectionLost -= new ConnectionLostDelegate(this.OnConnectionLost); } } } }
public void LeaveMsgHandlerChange(Yad.Net.Server.Server server) { MessageHandlerChange(server, false); }
public void EnterMsgHandlerChange(Yad.Net.Server.Server server) { MessageHandlerChange(server, true); }