/// <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(); } }
/// <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 (); }
/// <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(); }
/// <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(); }
/// <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 ()); }
/// <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; } }
/// <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(); }
/// <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(); }
/// <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(); }
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() }; }
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(); }
/// <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 (); }
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} }; } }
/// <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(); }