public boolean removeItems(Collection<?> c, boolean modSold) {
        if (c == null || c.isEmpty()) {
            return false;
        }

        for (Iterator<ItemStack> iterator = items.iterator(); iterator.hasNext();) {
            ItemStack i = iterator.next();
            if (c.contains(i)) {
                if (modSold) {
                    i.item.modSold(-i.quantity);
                }
                iterator.remove();
            }
        }

        return true;
    }