/// <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);
            }
        }
Example #2
0
 private void Handler(SPlayerDisconnect sPlayerDisconnect)
 {
     _contentLockManager.PurgeLocks(sPlayerDisconnect.Sender);
 }