3939import vazkii.psi.common.item.base.ModDataComponents;
4040import vazkii.psi.common.item.component.ItemCADSocket;
4141
42+ import java.util.ArrayList;
4243import java.util.List;
4344import java.util.Objects;
4445
@@ -51,7 +52,14 @@ public class CADData implements ICapabilityProvider<ItemCapability<?, Void>, Voi
5152 public CADData(ItemStack cad) {
5253 this.cad = cad;
5354 this.cadHandler = (ComponentItemHandler) cad.getCapability(Capabilities.ItemHandler.ITEM);
54- this.data = cad.get(ModDataComponents.CAD_DATA.get());
55+ Data cadData = cad.get(ModDataComponents.CAD_DATA);
56+
57+ if(cadData == null) {
58+ cadData = new Data(0, 0, new ArrayList<>());
59+ cad.set(ModDataComponents.CAD_DATA, cadData);
60+ }
61+
62+ this.data = cadData;
5563 }
5664
5765 @Nullable
@@ -230,9 +238,9 @@ public boolean shouldShow(IPlayerData data) {
230238 public static class Data {
231239 public static final Codec<Data> CODEC = RecordCodecBuilder.create(
232240 builder -> builder.group(
233- Codec.INT.fieldOf("time ").forGetter(data -> data.time),
234- Codec.INT.fieldOf("battery ").forGetter(data -> data.battery),
235- Codec.list(Vector3.CODEC).fieldOf("vectors ").forGetter(data -> data.vectors)
241+ Codec.INT.fieldOf("Time ").forGetter(data -> data.time),
242+ Codec.INT.fieldOf("Battery ").forGetter(data -> data.battery),
243+ Codec.list(Vector3.CODEC).fieldOf("Memory ").forGetter(data -> data.vectors)
236244 ).apply(builder, Data::new));
237245 public static final StreamCodec<RegistryFriendlyByteBuf, Data> STREAM_CODEC = StreamCodec.composite(
238246 ByteBufCodecs.INT, data -> data.time,
0 commit comments