From 459895b41315aed213a973f54f17055d5baefb84 Mon Sep 17 00:00:00 2001 From: Robert MacRae Date: Mon, 18 Aug 2025 03:13:59 -0300 Subject: [PATCH] fixed the projector from crashing servers --- .../oc2/common/blockentity/ComputerBlockEntity.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/li/cil/oc2/common/blockentity/ComputerBlockEntity.java b/src/main/java/li/cil/oc2/common/blockentity/ComputerBlockEntity.java index 4deb7151..b5578f45 100644 --- a/src/main/java/li/cil/oc2/common/blockentity/ComputerBlockEntity.java +++ b/src/main/java/li/cil/oc2/common/blockentity/ComputerBlockEntity.java @@ -224,9 +224,13 @@ public final class ComputerBlockEntity extends ModBlockEntity implements Termina super.handleUpdateTag(tag); NBTSerialization.deserialize(tag.getCompound(TERMINAL_TAG_NAME), terminal); - virtualMachine.setBusStateClient(CommonDeviceBusController.BusState.values()[tag.getInt(AbstractVirtualMachine.BUS_STATE_TAG_NAME)]); - virtualMachine.setRunStateClient(VMRunState.values()[tag.getInt(AbstractVirtualMachine.RUN_STATE_TAG_NAME)]); - virtualMachine.setBootErrorClient(Component.Serializer.fromJson(tag.getString(AbstractVirtualMachine.BOOT_ERROR_TAG_NAME))); + + // Only update client-side state on the client + if (level != null && level.isClientSide()) { + virtualMachine.setBusStateClient(CommonDeviceBusController.BusState.values()[tag.getInt(AbstractVirtualMachine.BUS_STATE_TAG_NAME)]); + virtualMachine.setRunStateClient(VMRunState.values()[tag.getInt(AbstractVirtualMachine.RUN_STATE_TAG_NAME)]); + virtualMachine.setBootErrorClient(Component.Serializer.fromJson(tag.getString(AbstractVirtualMachine.BOOT_ERROR_TAG_NAME))); + } } @Override