From bbbfe195e3d40ce492d8d57d5fe675f5adb5d159 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 25 Jun 2016 12:41:56 +0200 Subject: [PATCH] Fixes #143 "Crash related to losing power on the network" --- .../tile/controller/TileController.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index c0d2d4339..295f9a14e 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -85,7 +85,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR private RedstoneMode redstoneMode = RedstoneMode.IGNORE; - private List clientSlaves; + private List clientSlaves = new ArrayList(); @Override public BlockPos getPosition() { @@ -99,7 +99,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR @Override public boolean canRun() { - return energy.getEnergyStored() > 0 && energy.getEnergyStored() >= energyUsage && redstoneMode.isEnabled(worldObj, pos); + return energy.getEnergyStored() > 0 && redstoneMode.isEnabled(worldObj, pos); } @Override @@ -165,13 +165,11 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR craftingTasks.pop(); } } - } else { - disconnectSlaves(); } wirelessGridHandler.update(); - if (canRun() && getType() == EnumControllerType.NORMAL) { + if (getType() == EnumControllerType.NORMAL) { if (energy.getEnergyStored() - energyUsage >= 0) { energy.extractEnergy(energyUsage, false); } else { @@ -181,6 +179,12 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR energy.setEnergyStored(energy.getMaxEnergyStored()); } + if (!canRun() && !slaves.isEmpty()) { + disconnectSlaves(); + + updateSlaves(); + } + if (couldRun != canRun()) { couldRun = canRun();