22
33import com .gregtechceu .gtceu .GTCEu ;
44import com .gregtechceu .gtceu .api .sync_system .data_transformers .ValueTransformer ;
5+ import com .gregtechceu .gtceu .api .sync_system .data_transformers .ValueTransformers ;
56
67import net .minecraft .nbt .CompoundTag ;
78import net .minecraft .nbt .Tag ;
@@ -26,15 +27,19 @@ public static Tag serializeField(Object holder, FieldSyncData field,
2627 return nullCompound ;
2728 }
2829
29- try {
30- if (field .transformer != null ) {
31- return ((ValueTransformer <Object >) field .transformer ).serializeNBT (currentValue ,
32- new ValueTransformer .TransformerContext <>(holder , field .type , currentValue , field .fieldName ,
33- writeClientFields , fullSync ));
34- } else {
30+ if (field .transformer == null ) {
31+ field .setTransformer (ValueTransformers .get (field .type .getRawType ()));
32+ if (field .transformer == null ) {
3533 GTCEu .LOGGER .error ("Sync: Failed to serialize field {} in class {}: Missing value transformer for {}" ,
3634 field .fieldName , holder .getClass ().getName (), field .type );
35+ return new CompoundTag ();
3736 }
37+ }
38+
39+ try {
40+ return ((ValueTransformer <Object >) field .transformer ).serializeNBT (currentValue ,
41+ new ValueTransformer .TransformerContext <>(holder , field .type , currentValue , field .fieldName ,
42+ writeClientFields , fullSync ));
3843
3944 } catch (Exception e ) {
4045 GTCEu .LOGGER .error ("Sync: Failed to serialize field {}" , field .fieldName , e );
@@ -55,9 +60,12 @@ public static void deserializeField(Object holder, FieldSyncData field,
5560 }
5661
5762 if (field .transformer == null ) {
58- GTCEu .LOGGER .error ("Sync: Failed to deserialize field {} in class {}: Missing value transformer for {}" ,
59- field .fieldName , holder .getClass ().getName (), field .type );
60- return ;
63+ field .setTransformer (ValueTransformers .get (field .type .getRawType ()));
64+ if (field .transformer == null ) {
65+ GTCEu .LOGGER .error ("Sync: Failed to deserialize field {} in class {}: Missing value transformer for {}" ,
66+ field .fieldName , holder .getClass ().getName (), field .type );
67+ return ;
68+ }
6169 }
6270
6371 try {
0 commit comments