/// <summary> /// Updates the NetworkManager and checks for new messages, and acts accordingly. /// </summary> public void Update() { NetIncomingMessage incomingMessage; while ((incomingMessage = _server.ReadMessage()) != null) { switch (incomingMessage.MessageType) { case NetIncomingMessageType.VerboseDebugMessage: case NetIncomingMessageType.DebugMessage: case NetIncomingMessageType.WarningMessage: case NetIncomingMessageType.ErrorMessage: break; case NetIncomingMessageType.StatusChanged: var status = (NetConnectionStatus)incomingMessage.ReadByte(); Console.WriteLine(incomingMessage.ReadString()); //If a player disconnected, signal a disconnect packet to the server if (status == NetConnectionStatus.Disconnected) { var dcPacket = new SPlayerDisconnect(); dcPacket.Sender = incomingMessage.SenderConnection; PacketService.ProcessReceivedPacket(dcPacket); } break; case NetIncomingMessageType.Data: //Read the packet ID int packetID = incomingMessage.ReadInt32(); //Alert all other sub systems of the presence of this packet _packetProcessor.ProcessPacket(packetID, incomingMessage); break; default: break; } _server.Recycle(incomingMessage); } }
private void Handler(SPlayerDisconnect sPlayerDisconnect) { _contentLockManager.PurgeLocks(sPlayerDisconnect.Sender); }