/// <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"); if (version >= 32) { byte dataByte = reader.ReadByte(); Flying = (dataByte & 0x1) != 0; InstantBuild = (dataByte & 0x2) != 0; MayFly = (dataByte & 0x4) != 0; Invulnerable = (dataByte & 0x8) != 0; FlyingSpeed = reader.ReadByte(); WalkSpeed = reader.ReadByte(); } else { Flying = reader.ReadBoolean(); InstantBuild = reader.ReadBoolean(); MayFly = reader.ReadBoolean(); Invulnerable = reader.ReadBoolean(); FlyingSpeed = 15; WalkSpeed = 25; } }
/// <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 (); Enchantment = 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"); 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 System.ArgumentNullException("reader"); PositionX = reader.ReadDouble(); PositionY = reader.ReadDouble(); PositionZ = reader.ReadDouble(); Radius = reader.ReadSingle(); var records = new ExplosionRecord[RecordCount = reader.ReadInt32()]; for (int i = 0; i < RecordCount; i++) { var record = new ExplosionRecord(); record.OffsetX = reader.ReadByte(); record.OffsetY = reader.ReadByte(); record.OffsetZ = reader.ReadByte(); records[i] = record; } Records = records; if (version >= 36) { VelocityX = reader.ReadSingle(); VelocityY = reader.ReadSingle(); VelocityZ = reader.ReadSingle(); } }
/// <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(); Yaw = 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 ArgumentNullException("reader"); ProtocolVersion = reader.ReadByte(); Username = reader.ReadClassicString(); VerificationKey = reader.ReadClassicString(); Unused = 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"); PlayerID = reader.ReadByte (); ChangeX = reader.ReadByte (); ChangeY = reader.ReadByte (); ChangeZ = 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"); EntityId = reader.ReadInt32(); EffectId = reader.ReadByte(); Amplifier = reader.ReadByte(); Duration = 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"); Reason = reader.ReadByte(); GameMode = reader.ReadByte(); //Console.WriteLine("Invalide State: Reason: " + Reason + " GameMode: " + GameMode); }
/// <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(); InBed = reader.ReadByte(); PositionX = reader.ReadInt32(); PositionY = reader.ReadByte(); PositionZ = 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"); PositionX = reader.ReadInt16 (); PositionY = reader.ReadInt16 (); PositionZ = reader.ReadInt16 (); Mode = reader.ReadByte (); BlockType = 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"); Status = reader.ReadByte (); PositionX = reader.ReadInt32 (); PositionY = reader.ReadByte (); PositionZ = reader.ReadInt32 (); Face = 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"); WindowId = reader.ReadByte(); Slot = reader.ReadInt16(); RightClick = reader.ReadByte(); ActionNumber = reader.ReadInt16(); Shift = reader.ReadBoolean(); Item = ItemStack.Read(reader); }
/// <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"); PlayerID = reader.ReadByte (); PositionX = reader.ReadInt16 (); PositionY = reader.ReadInt16 (); PositionZ = reader.ReadInt16 (); Yaw = 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 ArgumentNullException("reader"); PositionX = reader.ReadInt32 (); PositionY = reader.ReadInt16 (); PositionZ = reader.ReadInt32 (); Byte1 = reader.ReadByte (); Byte2 = reader.ReadByte (); if (version >= 38) UnknownInt16 = 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"); 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"); 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(); }
/// <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"); ChunkX = reader.ReadInt32(); ChunkZ = reader.ReadInt32(); Size = reader.ReadInt16(); var coordinates = new List<short>(); var types = new List<byte>(); var metadata = new List<byte>(); for (int i = 0; i < Size; i++) { coordinates.Add(reader.ReadInt16()); } for (int i = 0; i < Size; i++) { types.Add(reader.ReadByte()); } for (int i = 0; i < Size; i++) { metadata.Add(reader.ReadByte()); } CoordiateArray = coordinates; TypeArray = types; MetadataArray = metadata; }
/// <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"); StatisticId = reader.ReadInt32 (); Amount = version >=72 ? reader.ReadInt32() : reader.ReadByte (); }
/// <summary> /// Reads the specified stream. /// </summary> /// <param name="stream">The stream.</param> /// <returns></returns> /// <remarks></remarks> public static ItemStack Read(BigEndianStream stream) { if (stream == null) throw new System.ArgumentNullException("stream"); var stack = new ItemStack(); if ((stack.ItemType = stream.ReadInt16()) >= 0) { stack.Count = stream.ReadByte(); stack.Durability = stream.ReadInt16(); } else return stack; if (((stream.Owner as PacketEndPoint).Version >=36 && stack.ItemType != -1) || (EnchantHelper.Enchantable.Contains(stack.ItemType) && !((stream.Owner as PacketEndPoint).Use12w18aFix && !(_12w18a.Contains(stack.ItemType)))))//12w18a fix { short hasData = stream.ReadInt16(); if (hasData > 0) { stack.AdditionalData = stream.ReadBytes(hasData); } } if (stack.AdditionalData == null) stack.AdditionalData = new byte[0]; return stack; }
/// <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"); UserType = 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"); 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"); WindowId = reader.ReadByte (); Count = reader.ReadInt16 (); Items = InventoryPacket.ParsePayload(reader, Count); }
/// <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"); ChunkData = reader.ReadBytes(reader.ReadInt16 ()); PercentComplete = 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"); PositionX = reader.ReadInt32(); PositionY = reader.ReadByte(); PositionZ = reader.ReadInt32(); Direction = reader.ReadByte(); Item = ItemStack.Read(reader); if (version >= 34) { BlockX = reader.ReadByte(); BlockY = reader.ReadByte(); BlockZ = 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"); 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(); }
/// <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(); ActionNumber = reader.ReadInt16(); Accepted = reader.ReadBoolean(); }