From c869ce00e0ee1d62e18c4403a3ed39f297987566 Mon Sep 17 00:00:00 2001 From: xsun <1563770452@qq.com> Date: Thu, 16 Mar 2017 15:39:35 +0800 Subject: [PATCH] fix a bug that cannot access items after lossing power. https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/2666/ --- .../appeng/me/cache/GridStorageCache.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/main/java/appeng/me/cache/GridStorageCache.java b/src/main/java/appeng/me/cache/GridStorageCache.java index 975b869b465..53dcb0bad66 100644 --- a/src/main/java/appeng/me/cache/GridStorageCache.java +++ b/src/main/java/appeng/me/cache/GridStorageCache.java @@ -19,14 +19,6 @@ package appeng.me.cache; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; - -import com.google.common.collect.HashMultimap; -import com.google.common.collect.SetMultimap; - import appeng.api.AEApi; import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; @@ -41,11 +33,7 @@ import appeng.api.networking.storage.IStackWatcher; import appeng.api.networking.storage.IStackWatcherHost; import appeng.api.networking.storage.IStorageGrid; -import appeng.api.storage.ICellContainer; -import appeng.api.storage.ICellProvider; -import appeng.api.storage.IMEInventoryHandler; -import appeng.api.storage.IMEMonitor; -import appeng.api.storage.StorageChannel; +import appeng.api.storage.*; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; @@ -53,6 +41,13 @@ import appeng.me.helpers.GenericInterestManager; import appeng.me.storage.ItemWatcher; import appeng.me.storage.NetworkInventoryHandler; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.SetMultimap; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; public class GridStorageCache implements IStorageGrid @@ -89,8 +84,8 @@ public void removeNode( final IGridNode node, final IGridHost machine ) final ICellContainer cc = (ICellContainer) machine; final CellChangeTracker tracker = new CellChangeTracker(); - this.inactiveCellProviders.remove( cc ); this.removeCellProvider( cc, tracker ); + this.inactiveCellProviders.remove( cc ); this.getGrid().postEvent( new MENetworkCellArrayUpdate() ); tracker.applyChanges(); @@ -186,6 +181,7 @@ private CellChangeTracker removeCellProvider( final ICellProvider cc, final Cell if( this.activeCellProviders.contains( cc ) ) { this.activeCellProviders.remove( cc ); + this.inactiveCellProviders.add( cc ); BaseActionSource actionSrc = new BaseActionSource();