public IItemRailing findNearestColoredTarget(IItemRailingTransfer itemwrapper) {
   IItemRailing[] arr = (IItemRailing[]) this.getNodes().toArray();
   Arrays.sort(
       arr,
       new RailingDistanceComparator.RailingColoredDistanceComparator(
           itemwrapper.getRailing(), itemwrapper.getColor()));
   return arr[0];
 }
 public IItemRailing chooseNextInstantGoal(IItemRailingTransfer itemwrapper) {
   IItemRailing[] arr =
       (IItemRailing[]) itemwrapper.getRailing().getConnectionMap().entrySet().toArray();
   Arrays.sort(arr, new RailingDistanceComparator(itemwrapper.getEndGoal()));
   return arr[0];
 }
 public IItemRailing findTargetForIItemTransfer(IItemRailingTransfer itemwrapper) {
   if (itemwrapper.getColor() == null) {
     return findNearestInventory(itemwrapper);
   }
   return findNearestColoredTarget(itemwrapper);
 }