From a0a37f416ca6c9be007f65e1b8ef5efea9b50cb5 Mon Sep 17 00:00:00 2001 From: DerFrZocker Date: Tue, 24 Aug 2021 18:10:30 +0200 Subject: [PATCH] SPIGOT-6630: Replacing an enchantment on an item creates a conflict error --- .../org/bukkit/craftbukkit/inventory/CraftItemStack.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java index 80a661c1f..f31f4041a 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -9,6 +9,7 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.enchantment.EnchantmentManager; import org.apache.commons.lang.Validate; import org.bukkit.Material; +import org.bukkit.NamespacedKey; import org.bukkit.configuration.serialization.DelegateDeserialization; import org.bukkit.craftbukkit.enchantments.CraftEnchantment; import org.bukkit.craftbukkit.util.CraftLegacy; @@ -190,7 +191,7 @@ public final class CraftItemStack extends ItemStack { for (int i = 0; i < size; i++) { NBTTagCompound tag = (NBTTagCompound) list.get(i); String id = tag.getString(ENCHANTMENTS_ID.NBT); - if (id.equals(ench.getKey().toString())) { + if (ench.getKey().equals(NamespacedKey.fromString(id))) { tag.setShort(ENCHANTMENTS_LVL.NBT, (short) level); return; } @@ -242,7 +243,7 @@ public final class CraftItemStack extends ItemStack { for (int i = 0; i < size; i++) { NBTTagCompound enchantment = (NBTTagCompound) list.get(i); String id = enchantment.getString(ENCHANTMENTS_ID.NBT); - if (id.equals(ench.getKey().toString())) { + if (ench.getKey().equals(NamespacedKey.fromString(id))) { index = i; level = 0xffff & enchantment.getShort(ENCHANTMENTS_LVL.NBT); break;