@Override @SuppressWarnings("unchecked") public void loadCraftingRecipes(String outputId, Object... results) { if (outputId.equals("freezing") && getClass() == FreezerRecipeHandler.class) // don't want subclasses getting a hold of this { HashMap<List<Object>, ItemStack> recipes = null; try { try { recipes = ReflectionManager.getField( RecipeRegistry.class, HashMap.class, RecipeRegistry.registry(), 1); } catch (ArrayIndexOutOfBoundsException e) { } } catch (Exception e) { e.printStackTrace(); return; } if (recipes == null) return; for (Entry<List<Object>, ItemStack> recipe : recipes.entrySet()) { ItemStack item = recipe.getValue(); arecipes.add( new FreezingPair( new ItemStack((Item) recipe.getKey().get(0), 1, (Integer) recipe.getKey().get(1)), item, new ItemStack((Item) recipe.getKey().get(0), 1, (Integer) recipe.getKey().get(1)) .getItem() .getContainerItem( new ItemStack( (Item) recipe.getKey().get(0), 1, (Integer) recipe.getKey().get(1))))); } } else { super.loadCraftingRecipes(outputId, results); } }
@SuppressWarnings("unchecked") @Override public void loadCraftingRecipes(ItemStack result) { HashMap<List<Object>, ItemStack> recipes = null; try { try { recipes = ReflectionManager.getField( RecipeRegistry.class, HashMap.class, RecipeRegistry.registry(), 1); } catch (ArrayIndexOutOfBoundsException e) { } } catch (Exception e) { e.printStackTrace(); return; } if (recipes == null) return; for (Entry<List<Object>, ItemStack> recipe : recipes.entrySet()) { ItemStack item = recipe.getValue(); if (NEIClientUtils.areStacksSameType(item, result)) { arecipes.add( new FreezingPair( new ItemStack((Item) recipe.getKey().get(0), 1, (Integer) recipe.getKey().get(1)), item, new ItemStack((Item) recipe.getKey().get(0), 1, (Integer) recipe.getKey().get(1)) .getItem() .getContainerItem( new ItemStack( (Item) recipe.getKey().get(0), 1, (Integer) recipe.getKey().get(1))))); } } }
@SuppressWarnings("unchecked") @Override public void loadUsageRecipes(ItemStack ingredient) { HashMap<List<Object>, ItemStack> recipes = null; try { try { recipes = ReflectionManager.getField( RecipeRegistry.class, HashMap.class, RecipeRegistry.registry(), 1); } catch (ArrayIndexOutOfBoundsException e) { } } catch (Exception e) { e.printStackTrace(); return; } if (recipes == null) return; for (Entry<List<Object>, ItemStack> recipe : recipes.entrySet()) { ItemStack item = recipe.getValue(); if (ingredient.getItem() == (Item) recipe.getKey().get(0) && ingredient.getItemDamage() == (Integer) recipe.getKey().get(1)) { arecipes.add( new FreezingPair(ingredient, item, ingredient.getItem().getContainerItem(ingredient))); } } }