ReadString16() public method

public ReadString16 ( ) : string
return string
示例#1
0
        /// <summary>
        ///   Receives the specified reader.
        /// </summary>
        /// <param name="reader"> The reader. </param>
        /// <param name="version"> The version. </param>
        /// <remarks>
        /// </remarks>
        protected override void OnReceive(BigEndianStream reader, int version)
        {
            if (reader == null)
                throw new ArgumentNullException("reader");

            TeamName = reader.ReadString16();
            Mode = reader.ReadByte();
            if (Mode == 2 || Mode == 0)
            {
                TeamDisplayName = reader.ReadString16();
                TeamPrefix = reader.ReadString16();
                TeamSufix = reader.ReadString16();
                if (version >= 60)
                    FriendlyFire = reader.ReadByte();
                else
                    FriendlyFire = (byte) (reader.ReadBoolean() ? 1 : 0);
            }
            if (Mode == 0 || Mode == 3 || Mode == 4)
            {
                PlayerCount = reader.ReadInt16();

                var collection = new List<string>();

                for (int i = 0; i < PlayerCount; i++)
                {
                    collection.Add(reader.ReadString16());
                }

                Players = collection.ToArray();
            }
        }
示例#2
0
        /// <summary>
        ///   Receives the specified reader.
        /// </summary>
        /// <param name="reader"> The reader. </param>
        /// <param name="version"> The version. </param>
        /// <remarks>
        /// </remarks>
        protected override void OnReceive(BigEndianStream reader, int version)
        {
            if (reader == null)
                throw new ArgumentNullException("reader");
            if (version >= 32)
                return;
#pragma warning disable 618
            ProtocolVersion = reader.ReadInt32 ();
            UserName = reader.ReadString16 ();
            if (ProtocolVersion != 0)
                version = ProtocolVersion;
            //Not used
            if (version <= 27)
                reader.ReadInt64 ();
            if (version >= 23 && version <= 30)
                Unknown = reader.ReadString16 ();
            reader.ReadInt32 ();
            if (version >= 27)
                reader.ReadInt32 ();
            else
                reader.ReadByte ();
            reader.ReadByte ();
            reader.ReadByte ();
            reader.ReadByte ();
        }
        /// <summary>
        ///   Receives the specified reader.
        /// </summary>
        /// <param name="reader"> The reader. </param>
        /// <param name="version"> The version. </param>
        /// <remarks>
        /// </remarks>
        protected override void OnReceive(BigEndianStream reader, int version)
        {
            if (reader == null)
                throw new ArgumentNullException("reader");

            ScoreboardName = reader.ReadString16 ();
            ScoreboardDispayText = reader.ReadString16 ();
            CreateRemove = reader.ReadByte ();
        }
示例#4
0
        /// <summary>
        ///   Receives the specified reader.
        /// </summary>
        /// <param name="reader"> The reader. </param>
        /// <param name="version"> The version. </param>
        /// <remarks>
        /// </remarks>
        protected override void OnReceive(BigEndianStream reader, int version)
        {
            if (reader == null)
                throw new ArgumentNullException("reader");

            ItemName = reader.ReadString16();
            UpdateRemove = reader.ReadByte();
            ScoreName = reader.ReadString16();
            Value = reader.ReadInt32();
        }
示例#5
0
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     PositionX = reader.ReadInt32();
     PositionY = reader.ReadInt16();
     PositionZ = reader.ReadInt32();
     Line1 = reader.ReadString16();
     Line2 = reader.ReadString16();
     Line3 = reader.ReadString16();
     Line4 = reader.ReadString16();
 }
        public void StringTest()
        {
            MemoryStream memStream = new MemoryStream();
            BigEndianStream bigEndianStream = new BigEndianStream(memStream);

            string testString = "Hello, World!";

            bigEndianStream.Write(testString);

            memStream.Seek(0, SeekOrigin.Begin);

            var result = bigEndianStream.ReadString16();

            Assert.AreEqual(testString, result);

            Assert.AreEqual(memStream.Position, memStream.Length);


            memStream.SetLength(0);

            bigEndianStream.Write8(testString);

            memStream.Seek(0, SeekOrigin.Begin);

            result = bigEndianStream.ReadString8();

            Assert.AreEqual(testString, result);

            Assert.AreEqual(memStream.Position, memStream.Length);
        }
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     Channel = reader.ReadString16();
     InternalData = reader.ReadBytes(reader.ReadInt16());
 }
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     PlayerName = reader.ReadString16();
     Online = reader.ReadBoolean();
     Ping = reader.ReadInt16();
 }
示例#9
0
        /// <summary>
        ///   Receives the specified reader.
        /// </summary>
        /// <param name="reader"> The reader. </param>
        /// <param name="version"> The version. </param>
        /// <remarks>
        /// </remarks>
        protected override void OnReceive(BigEndianStream reader, int version)
        {
            if (reader == null)
                throw new ArgumentNullException("reader");
            Message = reader.ReadString16 ();

            //Console.WriteLine("Chat: " + Message);
        }
        /// <summary>
        ///   Receives the specified reader.
        /// </summary>
        /// <param name="reader"> The reader. </param>
        /// <param name="version"> The version. </param>
        /// <remarks>
        /// </remarks>
        protected override void OnReceive(BigEndianStream reader, int version)
        {
            if (reader == null)
                throw new ArgumentNullException("reader");

            Position = reader.ReadByte();
            ScoreName = reader.ReadString16();
        }
 /// <summary>
 ///   Receives the specified reader.
 /// </summary>
 /// <param name="reader"> The reader. </param>
 /// <param name="version"> The version. </param>
 /// <remarks>
 /// </remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new ArgumentNullException("reader");
     ServerId = reader.ReadString16 ();
     PublicKey = reader.ReadBytes(reader.ReadInt16 ());
     if (version >= 37)
         VerifyToken = reader.ReadBytes(reader.ReadInt16 ());
 }
示例#12
0
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     WindowId = reader.ReadByte();
     InventoryType = reader.ReadByte();
     WindowTitle = reader.ReadString16();
     Slots = reader.ReadByte();
 }
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     int i = reader.Peek();//if i == 0 it is the first byte of the Username string(because the length is normally < 255). if it is not 0 it is the protocol version
     if (i != 0)
         ProtocolVersion = reader.ReadByte();
     UserName = reader.ReadString16();
     if (UserName.Contains(";"))
     {
         Host = UserName.Substring(UserName.IndexOf(";", StringComparison.Ordinal) + 1);
         UserName = UserName.Substring(0, UserName.IndexOf(";", StringComparison.Ordinal));
     }
     if (ProtocolVersion >= 32)
     {
         string host = reader.ReadString16();
         int port = reader.ReadInt32();
         Host = host + ":" + port;
     }
 }
示例#14
0
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new ArgumentNullException("reader");
     EntityId = reader.ReadInt32();
     Title = reader.ReadString16();
     PositionX = reader.ReadInt32();
     PositionY = reader.ReadInt32();
     PositionZ = reader.ReadInt32();
     Direction = reader.ReadInt32();
 }
示例#15
0
 /// <summary>
 ///   Receives the specified reader.
 /// </summary>
 /// <param name="reader"> The reader. </param>
 /// <param name="version"> The version. </param>
 /// <remarks>
 /// </remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new ArgumentNullException("reader");
     WindowId = reader.ReadByte ();
     InventoryType = reader.ReadByte ();
     WindowTitle = reader.ReadString16 ();
     Slots = reader.ReadByte ();
     if (version >= 52)
         UseWindowTitle = reader.ReadBoolean ();
     if (InventoryType == 11)
         Unknown = reader.ReadInt32();
 }
示例#16
0
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     EntityId = reader.ReadInt32();
     reader.ReadString16(); //not used
     if (version <= 27)
         MapSeed = reader.ReadInt64();
     if (version >= 23 && version <= 30)
         Generator = reader.ReadString16();
     if (version >= 32)
         ServerMode = reader.ReadByte();
     else
         ServerMode = reader.ReadInt32();
     if (version >= 32)
         Dimension = reader.ReadByte();
     else
         Dimension = reader.ReadInt32();
     Difficulty = reader.ReadByte();
     WorldHeight = reader.ReadByte();
     MaxPlayers = reader.ReadByte();
 }
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     Name = reader.ReadString16();
     PositionX = reader.ReadInt32();
     PositionY = reader.ReadInt32();
     PositionZ = reader.ReadInt32();
     if (version >= 37)
         Volume = reader.ReadSingle();
     else
         Volume = reader.ReadByte();
     Pitch = reader.ReadByte();
 }
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     Language = reader.ReadString16();
     if (version >= 32)
         ViewDistance = reader.ReadByte();
     else
         ViewDistance = reader.ReadInt32();
     if (version >= 31)
         ChatOptions = (ChatFlags)reader.ReadByte();
     if (version >= 32)
         Difficulty = reader.ReadByte();
 }
示例#19
0
        public static async Task<AdditionalServerListInformation> ReadAdditionalServerListInformationAsync(this ClientRemoteInterface clientInterface)
        {
            var packet = await clientInterface.ReadPacketAsync() as PluginMessage;

            if (packet == null || packet.Channel != "MC|PingHost")
                return null;

            var innerStream = new BigEndianStream(new MemoryStream(packet.InternalData.ToArray()));

            return new AdditionalServerListInformation
            {
                ProtocolVersion = innerStream.ReadByte(),
                Host = innerStream.ReadString16(),
                Port = innerStream.ReadInt32()
            };
        }
示例#20
0
 public static MetadataInfo Read(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new ArgumentNullException("reader");
     byte b = 0;
     var data = new Dictionary<byte, object> ();
     while ((b = reader.ReadByte ()) != 127)
     {
         switch (b >> 5)
         {
             case 0:
                 data.Add(b, reader.ReadByte ());
                 break;
             case 1:
                 data.Add(b, reader.ReadInt16 ());
                 break;
             case 2:
                 data.Add(b, reader.ReadInt32 ());
                 break;
             case 3:
                 data.Add(b, reader.ReadSingle ());
                 break;
             case 4:
                 data.Add(b, reader.ReadString16 ());
                 break;
             case 5:
                 data.Add(b, ItemStack.Read(reader));
                 break;
             case 6:
                 data.Add(b,
                          new EntityInformation
                              {
                                  Data1 = reader.ReadInt32 (),
                                  Data2 = reader.ReadInt32 (),
                                  Data3 = reader.ReadInt32 ()
                              });
                 break;
             default:
                 break;
         }
     }
     return new MetadataInfo {Data = data};
 }
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     Hash = reader.ReadString16();
 }
示例#22
0
 /// <summary>
 ///   Receives the specified reader.
 /// </summary>
 /// <param name="reader"> The reader. </param>
 /// <param name="version"> The version. </param>
 /// <remarks>
 /// </remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new ArgumentNullException("reader");
     UserNameList = reader.ReadString16 ();
 }
示例#23
0
            public static PropertyData Read(BigEndianStream stream)
            {
                var data = new PropertyData
                    {
                        Key = stream.ReadString16(),
                        Value = stream.ReadDouble(),
                        InnerData = new List<ModifierData>()
                    };

                var length = stream.ReadInt16();
                for (int i = 0; i < length; i++)
                {
                    data.InnerData.Add(ModifierData.Read(stream));
                }
                return data;
            }
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     EntityId = reader.ReadInt32();
     Name = reader.ReadString16();
     PositionX = reader.ReadInt32();
     PositionY = reader.ReadInt32();
     PositionZ = reader.ReadInt32();
     Rotation = reader.ReadByte();
     Pitch = reader.ReadByte();
     CurrentItem = reader.ReadInt16();
     if (version >= 38)
         MetaData = reader.ReadMetaData(version);
     else
     {
         MetaData = new MetadataInfo();
         MetaData.Data = new System.Collections.Generic.Dictionary<byte, object>
         {
             {17,(byte)0},
             {0,(byte)0},
             {16,(byte)0},
             {33,(short)300},
             {72,(int)0}
         };
     }
 }
示例#25
0
 /// <summary>
 /// Receives the specified reader.
 /// </summary>
 /// <param name="reader">The reader.</param>
 /// <param name="version">The version.</param>
 /// <remarks></remarks>
 protected override void OnReceive(BigEndianStream reader, int version)
 {
     if (reader == null)
         throw new System.ArgumentNullException("reader");
     if (version >= 32 && reader.Context == PacketContext.Client) return;
     if (version >= 27)
         World = reader.ReadInt32();
     else
         World = reader.ReadByte();
     Difficulty = reader.ReadByte();
     CreativeMode = reader.ReadByte();
     WorldHeight = reader.ReadInt16();
     if (version <= 27)
         MapSeed = reader.ReadInt64();
     if (version >= 23)
         Generator = reader.ReadString16();
 }