diff --git a/src/main/java/com/gregtechceu/gtceu/api/pattern/MultiblockState.java b/src/main/java/com/gregtechceu/gtceu/api/pattern/MultiblockState.java index eca90ad7f7c..e310177a82a 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/pattern/MultiblockState.java +++ b/src/main/java/com/gregtechceu/gtceu/api/pattern/MultiblockState.java @@ -172,6 +172,11 @@ public void onBlockStateChanged(BlockPos pos, BlockState state) { } } else { IMultiController controller = getController(); + if (controller == null && error == UNLOAD_ERROR) { + if (!serverLevel.isLoaded(controllerPos)) { + GTCEu.LOGGER.info("Controller not loaded, pos {}", controllerPos); + } + } if (controller != null) { if (controller.isFormed() && state.getBlock() instanceof ActiveBlock) { LongSet activeBlocks = getMatchContext().getOrDefault("vaBlocks", LongSets.emptySet()); diff --git a/src/main/java/com/gregtechceu/gtceu/core/mixins/LevelMixin.java b/src/main/java/com/gregtechceu/gtceu/core/mixins/LevelMixin.java index a29a022f803..d095baa8fa6 100644 --- a/src/main/java/com/gregtechceu/gtceu/core/mixins/LevelMixin.java +++ b/src/main/java/com/gregtechceu/gtceu/core/mixins/LevelMixin.java @@ -67,7 +67,7 @@ public abstract class LevelMixin implements LevelAccessor { @SuppressWarnings("ConstantValue") @Inject(method = "markAndNotifyBlock", at = @At(value = "INVOKE", - target = "Lnet/minecraft/world/level/Level;blockUpdated(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/Block;)V", + target = "Lnet/minecraft/world/level/Level;setBlocksDirty(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockState;)V", remap = true), remap = false) private void gtceu$updateChunkMultiblocks(BlockPos pos, LevelChunk chunk,