From e33fc912a7a38dd16fafa8c9299b2fa2a1c51c71 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 19 Aug 2014 13:40:15 -0500 Subject: [PATCH] Update from upstream SpigotMC Skip invalid enchants in CraftMetaItem SpigotMC/Spigot@542e0798daa57976f0b07dcd0eb03e8c46cec197 --- ...ip-invalid-enchants-in-CraftMetaItem.patch | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 CraftBukkit-Patches/0175-Skip-invalid-enchants-in-CraftMetaItem.patch diff --git a/CraftBukkit-Patches/0175-Skip-invalid-enchants-in-CraftMetaItem.patch b/CraftBukkit-Patches/0175-Skip-invalid-enchants-in-CraftMetaItem.patch new file mode 100644 index 0000000000..7b1669faea --- /dev/null +++ b/CraftBukkit-Patches/0175-Skip-invalid-enchants-in-CraftMetaItem.patch @@ -0,0 +1,29 @@ +From 191d3976ce28c03bad044b14dc96ab11d232e1eb Mon Sep 17 00:00:00 2001 +From: Thinkofdeath +Date: Tue, 19 Aug 2014 11:04:21 +0100 +Subject: [PATCH] Skip invalid enchants in CraftMetaItem + +Its a rare case but when loading a world from a modded server which added enchantments +CraftMetaItem would add a null enchantment into the enchantment map which causes +NullPointers later + +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +index adaac09..0a6b139 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +@@ -432,7 +432,11 @@ class CraftMetaItem implements ItemMeta, Repairable { + int id = 0xffff & ((NBTTagCompound) ench.get(i)).getShort(ENCHANTMENTS_ID.NBT); + int level = 0xffff & ((NBTTagCompound) ench.get(i)).getShort(ENCHANTMENTS_LVL.NBT); + +- enchantments.put(Enchantment.getById(id), level); ++ // Spigot start - skip invalid enchantments ++ Enchantment e = Enchantment.getById(id); ++ if (e == null) continue; ++ // Spigot end ++ enchantments.put(e, level); + } + + return enchantments; +-- +1.9.1 +