public void mergeSnapshot(NetworkedInventory ni) { if (snapshot == null) { snapshot = new ArrayList<ItemStack>(); } int[] slots = ni.getInventory().getAccessibleSlotsFromSide(ni.getInventorySide()); for (int i = 0; i < slots.length; i++) { ItemStack stack = ni.getInventory().getStackInSlot(i); if (stack != null && !isStackInSnapshot(stack)) { snapshot.add(stack); } } }
@Override public boolean doesItemPassFilter(NetworkedInventory ni, ItemStack item) { if (item == null) { return false; } if (snapshot != null) { return isStackInSnapshot(item); } else if (ni != null) { int[] slots = ni.getInventory().getAccessibleSlotsFromSide(ni.getInventorySide()); for (int i = 0; i < slots.length; i++) { ItemStack stack = ni.getInventory().getStackInSlot(i); if (stackEqual(item, stack)) { return true; } } } return false; }