From b8aa810a5f4e843815410a76f2c782ce3c7b5a25 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Fri, 3 Jul 2020 14:32:34 +0200 Subject: [PATCH] Add equals(ItemStack) to IAEItemStack contract. --- src/api/java/appeng/api/storage/data/IAEItemStack.java | 9 +++++++++ src/main/java/appeng/util/item/AEItemStack.java | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/api/java/appeng/api/storage/data/IAEItemStack.java b/src/api/java/appeng/api/storage/data/IAEItemStack.java index 0f5f9b298..0a8cf594b 100644 --- a/src/api/java/appeng/api/storage/data/IAEItemStack.java +++ b/src/api/java/appeng/api/storage/data/IAEItemStack.java @@ -106,4 +106,13 @@ public interface IAEItemStack extends IAEStack { * @return definition stack */ ItemStack getDefinition(); + + /** + * Compare this AE item stack to another item stack, but ignores + * the amount. It checks the item type, NBT and damage values. + * + * @param is An item stack + */ + boolean equals(ItemStack is); + } \ No newline at end of file diff --git a/src/main/java/appeng/util/item/AEItemStack.java b/src/main/java/appeng/util/item/AEItemStack.java index 1e2cfcbb5..3bcd1d7e1 100644 --- a/src/main/java/appeng/util/item/AEItemStack.java +++ b/src/main/java/appeng/util/item/AEItemStack.java @@ -216,11 +216,16 @@ public final class AEItemStack extends AEStack implements IAEItemS if (ia instanceof AEItemStack) { return this.isSameType((AEItemStack) ia); } else if (ia instanceof ItemStack) { - return this.isSameType((ItemStack) ia); + // this actually breaks the equals contract (being equals to unrelated classes) + return equals((ItemStack) ia); } return false; } + public boolean equals(final ItemStack is) { + return this.isSameType(is); + } + @Override public String toString() { return this.getStackSize() + "x" + this.getDefinition().getItem().getRegistryName();