Пример #1
0
 public void Deserialize(NetDataReader reader)
 {
     ID      = reader.GetKey32();
     Secret  = reader.GetJoinSecret();
     MaxSize = reader.GetByte();
     Level   = reader.Get <LevelChangeMessage>();
     Players = new PlayerJoinMessage[reader.GetByte()];
     for (var i = 0; i < Players.Length; ++i)
     {
         Players[i] = reader.Get <PlayerJoinMessage>();
     }
 }
Пример #2
0
        public static bool TryParse(byte[] data, out JoinSecret result, out Version version)
        {
            var reader = new NetDataReader(data);

            try
            {
                version = reader.GetVersion();
            }
            catch
            {
                result  = default;
                version = default;
                return(false);
            }

            IPEndPoint endPoint;
            Key32      key;
            double     tickDeltaTime;

            try
            {
                endPoint      = reader.GetIPEndPoint();
                key           = reader.GetKey32();
                tickDeltaTime = reader.GetDouble();
            }
            catch
            {
                result = default;
                return(false);
            }

            if (tickDeltaTime <= 0)
            {
                result = default;
                return(false);
            }

            result = new JoinSecret(version, endPoint, key, tickDeltaTime);
            if (reader.AvailableBytes > 0)
            {
                return(false);
            }

            return(true);
        }
Пример #3
0
 public static JoinSecret GetJoinSecret(this NetDataReader @this)
 {
     return(new JoinSecret(@this.GetVersion(), @this.GetIPEndPoint(), @this.GetKey32(), @this.GetDouble()));
 }
Пример #4
0
 public void Deserialize(NetDataReader reader)
 {
     AccessKey  = reader.GetKey32();
     HostKey    = reader.GetNullable <Key32>(NetDataReaderExtensions.GetKey32);
     ClientTime = reader.GetDouble();
 }