コード例 #1
0
ファイル: Server.cs プロジェクト: Rohansi/Programe
        public static void HandleUpload(NetConnection connection, Packet packet)
        {
            var upload = (Upload)packet;
            var session = SessionManager.Get(connection.RemoteUniqueIdentifier);

            string message = null;
            if (session.Account == null)
                message = "You need to login to do that.";

            if (message == null)
            {
                var ship = new Ship(session.Account.Username, upload.Program);
                message = Game.SpawnQueue.Enqueue(ship);
            }

            var messagePacket = new Message()
            {
                Title = "Upload",
                Content = message
            };
            Send(messagePacket, session);
        }
コード例 #2
0
ファイル: Server.cs プロジェクト: Rohansi/Programe
        public static void HandleAuth(NetConnection connection, Packet packet)
        {
            var auth = (Auth)packet;
            var session = SessionManager.Get(connection.RemoteUniqueIdentifier);

            if (session.Account != null)
                return;

            Account account;
            var error = "";
            switch (auth.Type)
            {
                case AuthType.Login:
                    account = Account.Login(auth.Username, auth.Password, out error);
                    break;
                case AuthType.Register:
                    account = Account.Register(auth.Username, auth.Password, out error);
                    break;
                default:
                    return;
            }

            if (account != null)
                SessionManager.Kick(account.Username);

            session.Account = account;

            var response = new AuthResponse
            {
                Type = auth.Type,
                Success = account != null,
                Message = error
            };

            Send(response, session);
        }
コード例 #3
0
ファイル: Client.cs プロジェクト: Rohansi/Programe
 public static void Send(Packet packet, NetDeliveryMethod method = NetDeliveryMethod.ReliableOrdered, int sequenceChannel = 0)
 {
     var message = client.CreateMessage();
     Packet.WriteToMessage(packet, message);
     client.SendMessage(message, method, sequenceChannel);
 }
コード例 #4
0
ファイル: Client.cs プロジェクト: Rohansi/Programe
 private static void HandleScene(NetConnection connection, Packet packet)
 {
     var scene = (Scene)packet;
     Width = scene.Width;
     Height = scene.Height;
     StaticObjects = scene.Items.OfType<DrawableNetObject>().OrderByDescending(o => o.Type).ToList();
 }
コード例 #5
0
ファイル: Client.cs プロジェクト: Rohansi/Programe
 private static void HandleObjects(NetConnection connection, Packet packet)
 {
     var objects = (Objects)packet;
     Objects = objects.Items.OfType<DrawableNetObject>().OrderByDescending(o => o.Type).ToList();
     Interface.MainForm.UpdateShips();
 }
コード例 #6
0
ファイル: Client.cs プロジェクト: Rohansi/Programe
 private static void HandleMessage(NetConnection connection, Packet packet)
 {
     var message = (Message)packet;
     Interface.ShowMessage(message.Title, message.Content);
 }
コード例 #7
0
ファイル: Client.cs プロジェクト: Rohansi/Programe
        private static void HandleAuthResponse(NetConnection connection, Packet packet)
        {
            var resp = (AuthResponse)packet;

            if (resp.Success)
                LoggedIn = true;

            Interface.ShowMessage(resp.Type.ToString(), resp.Message);
        }
コード例 #8
0
ファイル: Server.cs プロジェクト: Rohansi/Programe
 public static void Send(Packet packet, Session session, NetDeliveryMethod method = NetDeliveryMethod.ReliableOrdered, int sequenceChannel = 0)
 {
     var message = server.CreateMessage();
     Packet.WriteToMessage(packet, message);
     session.Connection.SendMessage(message, method, sequenceChannel);
 }
コード例 #9
0
ファイル: Server.cs プロジェクト: Rohansi/Programe
 public static void Broadcast(Packet packet, NetDeliveryMethod method = NetDeliveryMethod.ReliableOrdered, int sequenceChannel = 0)
 {
     var message = server.CreateMessage();
     Packet.WriteToMessage(packet, message);
     server.SendToAll(message, null, method, sequenceChannel);
 }
コード例 #10
0
ファイル: Packet.Static.cs プロジェクト: Rohansi/Programe
 public static void WriteToMessage(Packet packet, NetOutgoingMessage message)
 {
     message.Write((byte)packet.Id);
     packet.Write(message);
 }