diff --git a/src/main/java/vip/fubuki/playersync/sync/ModsSupport.java b/src/main/java/vip/fubuki/playersync/sync/ModsSupport.java index 7af2fd4..d70bb55 100644 --- a/src/main/java/vip/fubuki/playersync/sync/ModsSupport.java +++ b/src/main/java/vip/fubuki/playersync/sync/ModsSupport.java @@ -73,9 +73,7 @@ public class ModsSupport { } String serialized = entry.getValue(); try { - String nbtString = VanillaSync.deserializeString(serialized); - CompoundTag tag = VanillaSync.snbtToFixedCompoundTag(nbtString); - ItemStack stack = ItemStack.of(tag); + ItemStack stack = VanillaSync.deserializeAndCreatePlaceholderIfNeeded(serialized); if (handler.getCurios().containsKey(slotType)) { ICurioStacksHandler stacksHandler = handler.getCurios().get(slotType); IDynamicStackHandler dynStacks = stacksHandler.getStacks(); diff --git a/src/main/java/vip/fubuki/playersync/sync/VanillaSync.java b/src/main/java/vip/fubuki/playersync/sync/VanillaSync.java index 3a8b8b7..058103e 100644 --- a/src/main/java/vip/fubuki/playersync/sync/VanillaSync.java +++ b/src/main/java/vip/fubuki/playersync/sync/VanillaSync.java @@ -249,7 +249,7 @@ public class VanillaSync { } // deserialize item and potentially create placeholders - private static ItemStack deserializeAndCreatePlaceholderIfNeeded(String serializedNbt) + public static ItemStack deserializeAndCreatePlaceholderIfNeeded(String serializedNbt) throws CommandSyntaxException { if (serializedNbt == null || serializedNbt.isEmpty() || serializedNbt.equals("B64:e30=")) { // Check for empty NBT (Base64 encoded '{}')