Handle invalid enchantment NBT

Fixes #2117
This commit is contained in:
Camotoy 2021-09-14 11:18:26 -04:00
parent e13643d040
commit 0537c04ef6
No known key found for this signature in database
GPG key ID: 7EEFB66FE798081F

View file

@ -43,9 +43,9 @@ public class EnchantmentTranslator extends NbtItemStackTranslator {
@Override @Override
public void translateToBedrock(GeyserSession session, CompoundTag itemTag, ItemMapping mapping) { public void translateToBedrock(GeyserSession session, CompoundTag itemTag, ItemMapping mapping) {
List<Tag> newTags = new ArrayList<>(); List<Tag> newTags = new ArrayList<>();
if (itemTag.contains("Enchantments")) { Tag enchantmentTag = itemTag.get("Enchantments");
ListTag enchantmentTag = itemTag.get("Enchantments"); if (enchantmentTag instanceof ListTag listTag) {
for (Tag tag : enchantmentTag.getValue()) { for (Tag tag : listTag.getValue()) {
if (!(tag instanceof CompoundTag)) continue; if (!(tag instanceof CompoundTag)) continue;
CompoundTag bedrockTag = remapEnchantment((CompoundTag) tag); CompoundTag bedrockTag = remapEnchantment((CompoundTag) tag);
@ -53,9 +53,9 @@ public class EnchantmentTranslator extends NbtItemStackTranslator {
} }
itemTag.remove("Enchantments"); itemTag.remove("Enchantments");
} }
if (itemTag.contains("StoredEnchantments")) { enchantmentTag = itemTag.get("StoredEnchantments");
ListTag enchantmentTag = itemTag.get("StoredEnchantments"); if (enchantmentTag instanceof ListTag listTag) {
for (Tag tag : enchantmentTag.getValue()) { for (Tag tag : listTag.getValue()) {
if (!(tag instanceof CompoundTag)) continue; if (!(tag instanceof CompoundTag)) continue;
CompoundTag bedrockTag = remapEnchantment((CompoundTag) tag); CompoundTag bedrockTag = remapEnchantment((CompoundTag) tag);