Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.97 KB | None | 0 0
  1.     public static List<ItemStack> getIngredientList(ItemStack itemStack) {
  2.         itemStack = new ItemBuilder(itemStack.getType())
  3.                 .data(itemStack.getDurability())
  4.                 .build();
  5.  
  6.         Map<ItemStack, Integer> map = new HashMap<>();
  7.         int value = map.get(item);
  8.         for (Recipe recipe : Bukkit.getRecipesFor(itemStack)) {
  9.             if (recipe instanceof ShapelessRecipe) {
  10.                 ShapelessRecipe shapeless = (ShapelessRecipe) recipe;
  11.  
  12.                 for (ItemStack item : shapeless.getIngredientList()) {
  13.                     if (item != null) {
  14.                         ItemStack is = new ItemBuilder(item.getType())
  15.                                 .data(item.getDurability())
  16.                                 .build();
  17.  
  18.                         if (map.containsKey(is)) {
  19.                             map.replace(is, value, value + item.getAmount());
  20.                         } else {
  21.                             map.put(is, item.getAmount());
  22.                         }
  23.                     }
  24.                 }
  25.             } else if (recipe instanceof ShapedRecipe) {
  26.                 ShapedRecipe shaped = (ShapedRecipe) recipe;
  27.  
  28.                 for (ItemStack item : shaped.getIngredientMap().values()) {
  29.                     if (item != null) {
  30.                         ItemStack is = new ItemBuilder(item.getType())
  31.                                 .data(item.getDurability())
  32.                                 .build();
  33.  
  34.                         if (map.containsKey(is)) {
  35.                             map.replace(is, value, value + item.getAmount());
  36.                         } else {
  37.                             map.put(is, item.getAmount());
  38.                         }
  39.                     }
  40.                 }
  41.             }
  42.         }
  43.  
  44.         List<ItemStack> items = new ArrayList<>();
  45.         map.forEach((k, v) -> items.add(new ItemBuilder(k.getType()).data(k.getDurability()).amount(v).build()));
  46.         return items;
  47.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement