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..b5a1274b19e 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,17 @@ public void update() { refreshList(); syncME(); } + + // Immediately clear cached items if the status changed, to prevent running recipes while offline + if (this.meStatusChanged && !this.isOnline) { + if (autoPull) { + clearInventory(0); + } else { + for (int i = 0; i < CONFIG_SIZE; i++) { + getAEItemHandler().getInventory()[i].setStack(null); + } + } + } } // 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..bc940a16ff2 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,18 @@ public void update() { refreshList(); syncME(); } + + // Immediately clear cached fluids if the status changed, to prevent running recipes while offline + if (this.meStatusChanged && !this.isOnline) { + if (autoPull) { + this.getAEFluidHandler().clearConfig(); + } else { + for (int i = 0; i < CONFIG_SIZE; i++) { + getAEFluidHandler().getInventory()[i].setStack(null); + } + + } + } } @Override