diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/InventoryPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/InventoryPackets.java index ae647c85e..fbd049acf 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/InventoryPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/InventoryPackets.java @@ -315,7 +315,7 @@ public class InventoryPackets { for (Tag enchEntry : ench) { if (enchEntry instanceof CompoundTag) { CompoundTag enchantmentEntry = new CompoundTag(""); - short oldId = (short) ((CompoundTag) enchEntry).get("id").getValue(); + short oldId = ((Number) ((CompoundTag) enchEntry).get("id").getValue()).shortValue(); String newId = MappingData.oldEnchantmentsIds.get(oldId); if (newId == null){ newId = "viaversion:legacy/"+oldId; @@ -334,7 +334,7 @@ public class InventoryPackets { for (Tag enchEntry : storedEnch) { if (enchEntry instanceof CompoundTag) { CompoundTag enchantmentEntry = new CompoundTag(""); - short oldId = (short) ((CompoundTag) enchEntry).get("id").getValue(); + short oldId = ((Number) ((CompoundTag) enchEntry).get("id").getValue()).shortValue(); String newId = MappingData.oldEnchantmentsIds.get(oldId); if (newId == null) { newId = "viaversion:legacy/"+oldId; @@ -522,13 +522,15 @@ public class InventoryPackets { ListTag newStoredEnch = new ListTag("StoredEnchantments", CompoundTag.class); for (Tag enchantmentEntry : storedEnch) { if (enchantmentEntry instanceof CompoundTag) { - CompoundTag enchEntry = new CompoundTag(""); + CompoundTag enchEntry = new CompoundTag("");String newId = (String) ((CompoundTag) enchantmentEntry).get("id").getValue(); + Short oldId = MappingData.oldEnchantmentsIds.inverse().get(newId); + if (oldId == null && newId.startsWith("viaversion:legacy/")){ + oldId = Short.valueOf(newId.substring(18)); + } enchEntry.put( new ShortTag( "id", - MappingData.oldEnchantmentsIds.inverse().get( - (String) ((CompoundTag) enchantmentEntry).get("id").getValue() - ) + oldId ) ); enchEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchantmentEntry).get("lvl").getValue()));