diff --git a/src/main/java/com/gregtechceu/gtceu/api/sync_system/SyncDataHolder.java b/src/main/java/com/gregtechceu/gtceu/api/sync_system/SyncDataHolder.java index eb9ff723d36..6d97b08ac94 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/sync_system/SyncDataHolder.java +++ b/src/main/java/com/gregtechceu/gtceu/api/sync_system/SyncDataHolder.java @@ -105,7 +105,7 @@ private static Tag serializeField(HolderLookup.Provider registries, ISyncManaged boolean writeClientFields, boolean fullSync) { Object currentValue = field.handle.get(holder); - if (!field.isSyncManaged && currentValue == null) { + if (currentValue == null) { var nullCompound = new CompoundTag(); nullCompound.putBoolean("null", true); return nullCompound; diff --git a/src/main/java/com/gregtechceu/gtceu/api/sync_system/data_transformers/gtceu/CoverBehaviorTransformer.java b/src/main/java/com/gregtechceu/gtceu/api/sync_system/data_transformers/gtceu/CoverBehaviorTransformer.java index f3fcc94e200..78a4c2c6e90 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/sync_system/data_transformers/gtceu/CoverBehaviorTransformer.java +++ b/src/main/java/com/gregtechceu/gtceu/api/sync_system/data_transformers/gtceu/CoverBehaviorTransformer.java @@ -23,13 +23,18 @@ public Tag serializeNBT(@Nullable CoverBehavior value, if (value != null) { return serialize(value, context.isClientSync(), context.lookup()); } - return new CompoundTag(); + var nullTag = new CompoundTag(); + nullTag.putBoolean("null", true); + return nullTag; } @Override public @Nullable CoverBehavior deserializeNBT(Tag tag, CoverBehaviorTransformer.TransformerContext context) { var compoundTag = ValueTransformer.assertTagType(CompoundTag.class, tag, context); + if (compoundTag.getBoolean("null")) { + return null; + } if (context.holder() instanceof ICoverable coverable) { return deserialize(compoundTag, coverable, context.currentValue(), context.isClientSync(), context.lookup());