protected static ItemStack ReadItem(StreamWrapper buff) { var id = buff.ReadShort(); var item = ItemStack.CreateItemStack(id); if (item == null) { return(null); } item.ItemCount = buff.ReadByte(); item.ItemDamage = buff.ReadShort(); var nbtLength = buff.ReadShort(); if (nbtLength < 0) { return(item); } item.NbtData = buff.ReadBytes(nbtLength); var reader = new NbtFile() { BigEndian = true }; reader.LoadFromBuffer(item.NbtData, 0, nbtLength, NbtCompression.AutoDetect); item.NbtRoot = reader.RootTag; return(item); }
public Packet GetPacket() { var length = streamWrapper.ReadVarInt(); var data = streamWrapper.ReadBytes(length); var tmp = new StreamWrapper(data); var id = tmp.ReadVarInt(); if (!forwardMaps[(int)ChannelState].TryGetValue(id, out var packetType)) { if (!IgnoredIds.Contains(id)) { Logger.Error($"Unknown packet id : {id}"); } return(null); } Debug.Assert(packetType != null, $"Error in getting packet {id}"); var packet = (Packet)Activator.CreateInstance(packetType); packet.ReadPacketData(tmp); return(packet); }