diff --git a/src/main/java/appeng/me/storage/MEMonitorIInventory.java b/src/main/java/appeng/me/storage/MEMonitorIInventory.java index f879e293..8c1478c4 100644 --- a/src/main/java/appeng/me/storage/MEMonitorIInventory.java +++ b/src/main/java/appeng/me/storage/MEMonitorIInventory.java @@ -5,9 +5,10 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.Map.Entry; import java.util.NavigableMap; -import java.util.TreeMap; +import java.util.concurrent.ConcurrentSkipListMap; import net.minecraft.item.ItemStack; + import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -49,7 +50,7 @@ public class MEMonitorIInventory implements IMEMonitor final InventoryAdaptor adaptor; - final TreeMap memory; + private final NavigableMap memory; final IItemList list = AEApi.instance().storage().createItemList(); final HashMap, Object> listeners = new HashMap, Object>(); @@ -71,7 +72,7 @@ public class MEMonitorIInventory implements IMEMonitor public MEMonitorIInventory(InventoryAdaptor adaptor) { this.adaptor = adaptor; - memory = new TreeMap(); + memory = new ConcurrentSkipListMap(); } @Override diff --git a/src/main/java/appeng/me/storage/NetworkInventoryHandler.java b/src/main/java/appeng/me/storage/NetworkInventoryHandler.java index b8f87af7..0c628511 100644 --- a/src/main/java/appeng/me/storage/NetworkInventoryHandler.java +++ b/src/main/java/appeng/me/storage/NetworkInventoryHandler.java @@ -5,7 +5,8 @@ import java.util.Comparator; import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import java.util.TreeMap; +import java.util.NavigableMap; +import java.util.concurrent.ConcurrentSkipListMap; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -40,12 +41,12 @@ public class NetworkInventoryHandler> implements IMEInvent final SecurityCache security; // final TreeMultimap> priorityInventory; - final TreeMap>> priorityInventory; + private final NavigableMap>> priorityInventory; public NetworkInventoryHandler(StorageChannel chan, SecurityCache security) { myChannel = chan; this.security = security; - priorityInventory = new TreeMap>>( prioritySorter ); // TreeMultimap.create( prioritySorter, hashSorter ); + priorityInventory = new ConcurrentSkipListMap>>( prioritySorter ); // TreeMultimap.create( prioritySorter, hashSorter ); } public void addNewStorage(IMEInventoryHandler h) diff --git a/src/main/java/appeng/util/item/ItemList.java b/src/main/java/appeng/util/item/ItemList.java index a5b1c95d..08a54fd9 100644 --- a/src/main/java/appeng/util/item/ItemList.java +++ b/src/main/java/appeng/util/item/ItemList.java @@ -1,20 +1,30 @@ + package appeng.util.item; -import java.util.*; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.NavigableMap; +import java.util.concurrent.ConcurrentSkipListMap; + +import com.google.common.collect.Lists; import net.minecraftforge.oredict.OreDictionary; + import appeng.api.config.FuzzyMode; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; -import com.google.common.collect.Lists; public final class ItemList implements IItemList { - private final TreeMap records = new TreeMap(); + private final NavigableMap records = new ConcurrentSkipListMap(); private final Class clz; // private int currentPriority = Integer.MIN_VALUE; @@ -22,12 +32,12 @@ public final class ItemList implements IItemList cla) + public ItemList( Class cla ) { clz = cla; } - private boolean checkStackType(StackType st) + private boolean checkStackType( StackType st ) { if ( st == null ) return true; @@ -39,7 +49,7 @@ public final class ItemList implements IItemList implements IItemList implements IItemList implements IItemList implements IItemList implements IItemList implements IItemList implements IItemList implements IItemList implements IItemList findFuzzyDamage(AEItemStack filter, FuzzyMode fuzzy, boolean ignoreMeta) + public Collection findFuzzyDamage( AEItemStack filter, FuzzyMode fuzzy, boolean ignoreMeta ) { - StackType low = (StackType) filter.getLow( fuzzy, ignoreMeta ); - StackType high = (StackType) filter.getHigh( fuzzy, ignoreMeta ); + StackType low = ( StackType ) filter.getLow( fuzzy, ignoreMeta ); + StackType high = ( StackType ) filter.getHigh( fuzzy, ignoreMeta ); return records.subMap( low, true, high, true ).descendingMap().values(); } @Override - public Collection findFuzzy(StackType filter, FuzzyMode fuzzy) + public Collection findFuzzy( StackType filter, FuzzyMode fuzzy ) { if ( checkStackType( filter ) ) return new ArrayList(); @@ -209,21 +219,21 @@ public final class ItemList implements IItemList output = new LinkedList(); - for (IAEItemStack is : or.getAEEquivalents()) - output.addAll( findFuzzyDamage( (AEItemStack) is, fuzzy, is.getItemDamage() == OreDictionary.WILDCARD_VALUE ) ); + for ( IAEItemStack is : or.getAEEquivalents() ) + output.addAll( findFuzzyDamage( ( AEItemStack ) is, fuzzy, is.getItemDamage() == OreDictionary.WILDCARD_VALUE ) ); return output; }