From 8247a2f9edc90b68dad4c5e195bd6d83f6f4dbdc Mon Sep 17 00:00:00 2001 From: alongstringofnumbers Date: Tue, 3 Sep 2024 20:03:58 -0700 Subject: [PATCH] Fix Stocking Buses running recipes while offline --- .../multiblockpart/appeng/MetaTileEntityAEHostablePart.java | 4 ++++ .../multiblockpart/appeng/MetaTileEntityMEStockingBus.java | 5 +++++ .../multiblockpart/appeng/MetaTileEntityMEStockingHatch.java | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java index fbe7e8ff674..6212144fec7 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java @@ -45,6 +45,7 @@ public abstract class MetaTileEntityAEHostablePart> extend private int meUpdateTick; protected boolean isOnline; private boolean allowExtraConnections; + protected boolean meStatusChanged = false; public MetaTileEntityAEHostablePart(ResourceLocation metaTileEntityId, int tier, boolean isExportHatch, Class> storageChannel) { @@ -158,6 +159,9 @@ public boolean updateMEStatus() { if (this.isOnline != isOnline) { writeCustomData(UPDATE_ONLINE_STATUS, buf -> buf.writeBoolean(isOnline)); this.isOnline = isOnline; + this.meStatusChanged = true; + } else { + this.meStatusChanged = false; } } return this.isOnline; diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java index 640f7869617..1d38921b5b8 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java @@ -68,6 +68,11 @@ public void update() { refreshList(); syncME(); } + + // Immediately Sync if the status changed, to prevent running recipes while offline + if (this.meStatusChanged && !this.isOnline) { + syncME(); + } } // Update the visual display for the fake items. This also is important for the item handler's diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java index 30e28eff54b..d1c01a83440 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java @@ -68,6 +68,11 @@ public void update() { refreshList(); syncME(); } + + // Immediately Sync if the status changed, to prevent running recipes while offline + if (this.meStatusChanged && !this.isOnline) { + syncME(); + } } @Override