From 59b2805a4a4b87290f25402c144df1f47e4e2eef Mon Sep 17 00:00:00 2001 From: RednedEpic Date: Thu, 23 Apr 2020 02:09:40 -0500 Subject: [PATCH] Fix NPE for unknown enchantments/enchantments not in bedrock --- .../item/translators/nbt/EnchantmentTranslator.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/nbt/EnchantmentTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/nbt/EnchantmentTranslator.java index fba20666..41e1ae36 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/nbt/EnchantmentTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/item/translators/nbt/EnchantmentTranslator.java @@ -58,8 +58,10 @@ public class EnchantmentTranslator extends NbtItemStackTranslator { if (!(tag instanceof CompoundTag)) continue; CompoundTag bedrockTag = remapEnchantment((CompoundTag) tag); - bedrockTag.put(new ShortTag("GeyserStoredEnchantment", (short) 0)); - newTags.add(bedrockTag); + if (bedrockTag != null) { + bedrockTag.put(new ShortTag("GeyserStoredEnchantment", (short) 0)); + newTags.add(bedrockTag); + } } itemTag.remove("StoredEnchantments"); } @@ -117,11 +119,11 @@ public class EnchantmentTranslator extends NbtItemStackTranslator { private CompoundTag remapEnchantment(CompoundTag tag) { - Tag javaEnchLvl = ((CompoundTag) tag).get("lvl"); + Tag javaEnchLvl = tag.get("lvl"); if (!(javaEnchLvl instanceof ShortTag)) return null; - Tag javaEnchId = ((CompoundTag) tag).get("id"); + Tag javaEnchId = tag.get("id"); if (!(javaEnchId instanceof StringTag)) return null;