diff --git a/me/cache/CraftingCache.java b/me/cache/CraftingCache.java index ac40cd39..7378935f 100644 --- a/me/cache/CraftingCache.java +++ b/me/cache/CraftingCache.java @@ -47,10 +47,11 @@ public class CraftingCache implements IGridCache, ICraftingProviderHelper, ICell grid = g; } + @MENetworkEventSubscribe public void afterCacheConstruction(MENetworkPostCacheConstruction cc) { IStorageGrid sg = grid.getCache( IStorageGrid.class ); - sg.addCellProvider( this ); + sg.registerCellProvider( this ); } @Override @@ -173,7 +174,8 @@ public class CraftingCache implements IGridCache, ICraftingProviderHelper, ICell public List getCellArray(StorageChannel channel) { ArrayList list = new ArrayList( 1 ); - list.add( this ); + if ( channel == StorageChannel.ITEMS ) + list.add( this ); return list; } diff --git a/me/cache/GridStorageCache.java b/me/cache/GridStorageCache.java index 41de90ae..5966e328 100644 --- a/me/cache/GridStorageCache.java +++ b/me/cache/GridStorageCache.java @@ -62,6 +62,19 @@ public class GridStorageCache implements IStorageGrid } @Override + public void registerCellProvider(ICellProvider provider) + { + inactiveCellProviders.add( provider ); + addCellProvider( provider ); + } + + @Override + public void unregisterCellProvider(ICellProvider provider) + { + removeCellProvider( provider ); + inactiveCellProviders.remove( provider ); + } + public void addCellProvider(ICellProvider cc) { if ( inactiveCellProviders.contains( cc ) ) @@ -85,7 +98,6 @@ public class GridStorageCache implements IStorageGrid } } - @Override public void removeCellProvider(ICellProvider cc) { if ( activeCellProviders.contains( cc ) )