diff options
Diffstat (limited to 'patch-remap/og/net/minecraft/network/PacketDataSerializer.patch')
-rw-r--r-- | patch-remap/og/net/minecraft/network/PacketDataSerializer.patch | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/network/PacketDataSerializer.patch b/patch-remap/og/net/minecraft/network/PacketDataSerializer.patch new file mode 100644 index 0000000000..560385097a --- /dev/null +++ b/patch-remap/og/net/minecraft/network/PacketDataSerializer.patch @@ -0,0 +1,101 @@ +--- a/net/minecraft/network/PacketDataSerializer.java ++++ b/net/minecraft/network/PacketDataSerializer.java +@@ -81,6 +81,8 @@ + import org.joml.Quaternionf; + import org.joml.Vector3f; + ++import org.bukkit.craftbukkit.inventory.CraftItemStack; // CraftBukkit ++ + public class PacketDataSerializer extends ByteBuf { + + public static final int DEFAULT_NBT_QUOTA = 2097152; +@@ -205,7 +207,7 @@ + + public <T, C extends Collection<T>> C readCollection(IntFunction<C> intfunction, PacketDataSerializer.a<T> packetdataserializer_a) { + int i = this.readVarInt(); +- C c0 = (Collection) intfunction.apply(i); ++ C c0 = intfunction.apply(i); // CraftBukkit - decompile error + + for (int j = 0; j < i; ++j) { + c0.add(packetdataserializer_a.apply(this)); +@@ -216,7 +218,7 @@ + + public <T> void writeCollection(Collection<T> collection, PacketDataSerializer.b<T> packetdataserializer_b) { + this.writeVarInt(collection.size()); +- Iterator iterator = collection.iterator(); ++ Iterator<T> iterator = collection.iterator(); // CraftBukkit - decompile error + + while (iterator.hasNext()) { + T t0 = iterator.next(); +@@ -243,12 +245,12 @@ + + public void writeIntIdList(IntList intlist) { + this.writeVarInt(intlist.size()); +- intlist.forEach(this::writeVarInt); ++ intlist.forEach((java.util.function.IntConsumer) this::writeVarInt); // CraftBukkit - decompile error + } + + public <K, V, M extends Map<K, V>> M readMap(IntFunction<M> intfunction, PacketDataSerializer.a<K> packetdataserializer_a, PacketDataSerializer.a<V> packetdataserializer_a1) { + int i = this.readVarInt(); +- M m0 = (Map) intfunction.apply(i); ++ M m0 = intfunction.apply(i); // CraftBukkit - decompile error + + for (int j = 0; j < i; ++j) { + K k0 = packetdataserializer_a.apply(this); +@@ -282,7 +284,7 @@ + } + + public <E extends Enum<E>> void writeEnumSet(EnumSet<E> enumset, Class<E> oclass) { +- E[] ae = (Enum[]) oclass.getEnumConstants(); ++ E[] ae = oclass.getEnumConstants(); // CraftBukkit - decompile error + BitSet bitset = new BitSet(ae.length); + + for (int i = 0; i < ae.length; ++i) { +@@ -293,7 +295,7 @@ + } + + public <E extends Enum<E>> EnumSet<E> readEnumSet(Class<E> oclass) { +- E[] ae = (Enum[]) oclass.getEnumConstants(); ++ E[] ae = oclass.getEnumConstants(); // CraftBukkit - decompile error + BitSet bitset = this.readFixedBitSet(ae.length); + EnumSet<E> enumset = EnumSet.noneOf(oclass); + +@@ -529,7 +531,7 @@ + } + + public <T extends Enum<T>> T readEnum(Class<T> oclass) { +- return ((Enum[]) oclass.getEnumConstants())[this.readVarInt()]; ++ return ((T[]) oclass.getEnumConstants())[this.readVarInt()]; // CraftBukkit - fix decompile error + } + + public PacketDataSerializer writeEnum(Enum<?> oenum) { +@@ -584,7 +586,7 @@ + try { + NBTCompressedStreamTools.writeAnyTag((NBTBase) nbtbase, new ByteBufOutputStream(this)); + return this; +- } catch (IOException ioexception) { ++ } catch (Exception ioexception) { // CraftBukkit - IOException -> Exception + throw new EncoderException(ioexception); + } + } +@@ -612,7 +614,7 @@ + } + + public PacketDataSerializer writeItem(ItemStack itemstack) { +- if (itemstack.isEmpty()) { ++ if (itemstack.isEmpty() || itemstack.getItem() == null) { // CraftBukkit - NPE fix itemstack.getItem() + this.writeBoolean(false); + } else { + this.writeBoolean(true); +@@ -641,6 +643,11 @@ + ItemStack itemstack = new ItemStack(item, b0); + + itemstack.setTag(this.readNbt()); ++ // CraftBukkit start ++ if (itemstack.getTag() != null) { ++ CraftItemStack.setItemMeta(itemstack, CraftItemStack.getItemMeta(itemstack)); ++ } ++ // CraftBukkit end + return itemstack; + } + } |