unify item creation in curios and normal inventory

this also allows creation of placeholders within curios containers
This commit is contained in:
EoD 2025-07-10 19:14:52 +00:00
parent a382b0105a
commit a70605a8b6
2 changed files with 2 additions and 4 deletions

View File

@ -73,9 +73,7 @@ public class ModsSupport {
} }
String serialized = entry.getValue(); String serialized = entry.getValue();
try { try {
String nbtString = VanillaSync.deserializeString(serialized); ItemStack stack = VanillaSync.deserializeAndCreatePlaceholderIfNeeded(serialized);
CompoundTag tag = VanillaSync.snbtToFixedCompoundTag(nbtString);
ItemStack stack = ItemStack.of(tag);
if (handler.getCurios().containsKey(slotType)) { if (handler.getCurios().containsKey(slotType)) {
ICurioStacksHandler stacksHandler = handler.getCurios().get(slotType); ICurioStacksHandler stacksHandler = handler.getCurios().get(slotType);
IDynamicStackHandler dynStacks = stacksHandler.getStacks(); IDynamicStackHandler dynStacks = stacksHandler.getStacks();

View File

@ -249,7 +249,7 @@ public class VanillaSync {
} }
// deserialize item and potentially create placeholders // deserialize item and potentially create placeholders
private static ItemStack deserializeAndCreatePlaceholderIfNeeded(String serializedNbt) public static ItemStack deserializeAndCreatePlaceholderIfNeeded(String serializedNbt)
throws CommandSyntaxException { throws CommandSyntaxException {
if (serializedNbt == null || serializedNbt.isEmpty() || serializedNbt.equals("B64:e30=")) { if (serializedNbt == null || serializedNbt.isEmpty() || serializedNbt.equals("B64:e30=")) {
// Check for empty NBT (Base64 encoded '{}') // Check for empty NBT (Base64 encoded '{}')