Пример #1
0
        public static void HandleMessage(NetIncomingMessage im, bool hostMessage = false)
        {
            ServerAuthenticate packet = new ServerAuthenticate(im);
            if (KSPMPlayer.isHost && hostMessage == true)
            {
                if (!KSPClient.clientExist(im.SenderConnection))
                {
                    if (KSPClient.nameExist(packet.name))
                    {
                        KSPMPlayer.HostSendMessage(im.SenderConnection, new ServerUsernameTaken());
                        im.SenderConnection.Disconnect("Change your username");
                    }
                    else
                    {
                        new KSPClient(im.SenderConnection, packet.name);
                        KSPMPlayer.HostSendMessage(im.SenderConnection, new ServerConnectionSuccessful());
                    }
                }

            }
            else
            {
                KSPMultiplayer.print("Client SHOULD NEVER GET THIS PACKET TYPE WTF IS WRONG WITH YOU RUINING THE GAME LIKE THAT");
            }
        }
Пример #2
0
        public static void ClientHandleMessages()
        {
            if (netClient != null)
            {
                NetIncomingMessage incomingMessage;

                while ((incomingMessage = netClient.ReadMessage()) != null)
                {
                    switch (incomingMessage.MessageType)
                    {
                        case NetIncomingMessageType.VerboseDebugMessage:
                        case NetIncomingMessageType.DebugMessage:
                        case NetIncomingMessageType.WarningMessage:
                        case NetIncomingMessageType.ErrorMessage:
                            Console.WriteLine(incomingMessage.ReadString());
                            break;
                        case NetIncomingMessageType.StatusChanged:
                            switch ((NetConnectionStatus)incomingMessage.ReadByte())
                            {
                                case NetConnectionStatus.Connected:
                                    ServerAuthenticate sm = new ServerAuthenticate();
                                    KSPMultiplayer.print("CONNECTION CONNECTED!");
                                    sm.name = ConnectionWindow.username;
                                    sm.version = "1";
                                    ClientSendMessage(sm);
                                    // I DONT EVEN REMEMBER WRITING THIS
                                    break;
                            }
                            break;
                        case NetIncomingMessageType.Data:
                            var gameMessageType = (PacketTypes)incomingMessage.ReadByte();
                            switch (gameMessageType)
                            {
                                case PacketTypes.ServerUsernameTaken:
                                    ServerUsernameTaken.HandleMessage(incomingMessage);
                                    break;
                                case PacketTypes.ServerConnectionSuccessful:
                                    ServerConnectionSuccessful.HandleMessage(incomingMessage);

                                    break;
                                case PacketTypes.ClientVesselRegister:
                                    ClientVesselRegister.HandleMessage(incomingMessage);
                                    break;
                            }
                            break;
                    }
                    netClient.Recycle(incomingMessage);
                }
            }
        }