From ea7b61290a39f0ab355d7a723907ed312f713b05 Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 24 Jul 2018 08:57:58 +1000 Subject: SPIGOT-4122: Fix an instance of legacy item inequalities --- src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java | 4 +++- src/main/java/org/bukkit/craftbukkit/util/CraftLegacy.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src/main/java') diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java index d7fb0acb..f4672b9a 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -22,6 +22,7 @@ import org.bukkit.material.MaterialData; import com.google.common.collect.ImmutableMap; import org.bukkit.craftbukkit.enchantments.CraftEnchantment; +import org.bukkit.craftbukkit.util.CraftLegacy; import org.bukkit.craftbukkit.util.CraftNamespacedKey; @DelegateDeserialization(ItemStack.class) @@ -545,7 +546,8 @@ public final class CraftItemStack extends ItemStack { if (handle == null || that.handle == null) { return false; } - if (!(that.getType() == getType() && getDurability() == that.getDurability())) { + Material comparisonType = CraftLegacy.fromLegacy(that.getType()); // This may be called from legacy item stacks, try to get the right material + if (!(comparisonType == getType() && getDurability() == that.getDurability())) { return false; } return hasItemMeta() ? that.hasItemMeta() && handle.getTag().equals(that.handle.getTag()) : !that.hasItemMeta(); diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/util/CraftLegacy.java index ea2fa6f4..ea6b8885 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftLegacy.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftLegacy.java @@ -147,6 +147,10 @@ public class CraftLegacy { } public static Material fromLegacy(Material material) { + if (material == null || !material.isLegacy()) { + return material; + } + return fromLegacy(new MaterialData(material)); } -- cgit v1.2.3