From bee6f7ef0bdaa4a3854d33821a93a5d0a4f3006e Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 28 Dec 2021 12:04:53 +0100 Subject: [PATCH] fixed some requests not working due to missing NBT data Closes #108 --- src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java | 3 +-- .../java/de/ellpeck/prettypipes/packets/PacketRequest.java | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java b/src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java index d70c055..9957adf 100644 --- a/src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java +++ b/src/main/java/de/ellpeck/prettypipes/misc/ItemEquality.java @@ -2,7 +2,6 @@ package de.ellpeck.prettypipes.misc; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; -import net.minecraft.resources.ResourceLocation; import java.util.function.BiFunction; import java.util.function.Supplier; @@ -10,7 +9,7 @@ import java.util.function.Supplier; public class ItemEquality { public static final ItemEquality DAMAGE = new ItemEquality((stack, filter) -> stack.getDamageValue() == filter.getDamageValue(), false, Type.DAMAGE); - public static final ItemEquality NBT = new ItemEquality(ItemStack::isSameItemSameTags, false, Type.NBT); + public static final ItemEquality NBT = new ItemEquality(ItemStack::tagMatches, false, Type.NBT); public static final ItemEquality MOD = new ItemEquality((stack, filter) -> stack.getItem().getCreatorModId(stack).equals(filter.getItem().getCreatorModId(filter)), true, Type.MOD); public final Type type; diff --git a/src/main/java/de/ellpeck/prettypipes/packets/PacketRequest.java b/src/main/java/de/ellpeck/prettypipes/packets/PacketRequest.java index 48aa675..0ec142f 100644 --- a/src/main/java/de/ellpeck/prettypipes/packets/PacketRequest.java +++ b/src/main/java/de/ellpeck/prettypipes/packets/PacketRequest.java @@ -36,7 +36,8 @@ public class PacketRequest { public static void toBytes(PacketRequest packet, FriendlyByteBuf buf) { buf.writeBlockPos(packet.pos); - buf.writeItem(packet.stack); + // if we limit the tag here, non-shared data will be omitted, making the requested item not match the stored one + buf.writeItemStack(packet.stack, false); buf.writeVarInt(packet.amount); }