Пример #1
0
        /// <summary>
        /// Main method for routing incoming application network messages
        /// </summary>
        /// <param name="msg"></param>
        public void HandleData(NetIncomingMessage msg)
        {
            var messageType = (NetMessage)msg.ReadByte();

            switch (messageType)
            {
            case NetMessage.CraftMessage:
                IoCManager.Resolve <ICraftingManager>().HandleNetMessage(msg);
                break;

            case NetMessage.WelcomeMessage:
                SendWelcomeInfo(msg.SenderConnection);
                break;

            case NetMessage.RequestJob:
                HandleJobRequest(msg);
                break;

            case NetMessage.ForceRestart:
                Restart();
                break;

            case NetMessage.RequestMap:
                SendMap(msg.SenderConnection);
                break;

            case NetMessage.PlayerList:
                SendPlayerList(msg.SenderConnection);
                break;

            case NetMessage.ClientName:
                HandleClientName(msg);
                break;

            case NetMessage.ChatMessage:
                IoCManager.Resolve <IChatManager>().HandleNetMessage(msg);
                break;

            case NetMessage.PlayerSessionMessage:
                IoCManager.Resolve <IPlayerManager>().HandleNetworkMessage(msg);
                break;

            case NetMessage.MapMessage:
                IoCManager.Resolve <IMapManager>().HandleNetworkMessage(msg);
                break;

            case NetMessage.JobList:
                HandleJobListRequest(msg);
                break;

            case NetMessage.PlacementManagerMessage:
                IoCManager.Resolve <IPlacementManager>().HandleNetMessage(msg);
                break;

            case NetMessage.EntityMessage:
                EntityManager.HandleEntityNetworkMessage(msg);
                break;

            case NetMessage.RequestAdminLogin:
                HandleAdminMessage(messageType, msg);
                break;

            case NetMessage.RequestAdminPlayerlist:
                HandleAdminMessage(messageType, msg);
                break;

            case NetMessage.RequestAdminKick:
                HandleAdminMessage(messageType, msg);
                break;

            case NetMessage.RequestAdminBan:
                HandleAdminMessage(messageType, msg);
                break;

            case NetMessage.RequestAdminUnBan:
                HandleAdminMessage(messageType, msg);
                break;

            case NetMessage.RequestBanList:
                HandleAdminMessage(messageType, msg);
                break;

            case NetMessage.RequestEntityDeletion:
                HandleAdminMessage(messageType, msg);
                break;

            case NetMessage.StateAck:
                HandleStateAck(msg);
                break;

            case NetMessage.ConsoleCommand:
                IoCManager.Resolve <IClientConsoleHost>().ProcessCommand(msg.ReadString(), msg.SenderConnection);
                break;

            case NetMessage.ConsoleCommandRegister:
                IoCManager.Resolve <IClientConsoleHost>().HandleRegistrationRequest(msg.SenderConnection);
                break;
            }
        }