if(used.get(r.destination.getSimpleID())) continue;
if (!(r.destination.getPipe() instanceof ICraftItems)) continue;
for(IFilter filter:r.filters) {
if(filter.blockCrafting()) continue outer;
}
ICraftItems crafter = (ICraftItems) r.destination.getPipe();
List<ItemIdentifierStack> craftedItems = crafter.getCraftedItems();
if(craftedItems != null) {
outer2:
for(ItemIdentifierStack craftedItem:craftedItems) {
if (craftedItem != null && !craftableItems.contains(craftedItem.getItem())) {
for(IFilter filter:r.filters) {