From d04f42f8268047da4b892c77ddb9f534a302bb44 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 28 Jan 2014 19:13:57 -0500 Subject: [PATCH] Add ItemStack Recipe API helper methods Allows using ExactChoice Recipes with easier methodss diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java index 80af6cf5..3eae5a55 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java @@ -139,6 +139,12 @@ public class ShapedRecipe implements Recipe, Keyed { return this; } + // Paper start + public ShapedRecipe setIngredient(char key, ItemStack item) { + return setIngredient(key, new RecipeChoice.ExactChoice(item)); + } + // Paper end + /** * Get a copy of the ingredients map. * diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java index 7347e746..4de38b33 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java @@ -128,6 +128,33 @@ public class ShapelessRecipe implements Recipe, Keyed { return this; } + // Paper start + public ShapelessRecipe addIngredient(ItemStack item) { + return addIngredient(1, item); + } + public ShapelessRecipe addIngredient(int count, ItemStack item) { + Validate.isTrue(ingredients.size() + count <= 9, "Shapeless recipes cannot have more than 9 ingredients"); + while (count-- > 0) { + ingredients.add(new RecipeChoice.ExactChoice(item)); + } + return this; + } + public ShapelessRecipe removeIngredient(ItemStack item) { + return removeIngredient(1, item); + } + public ShapelessRecipe removeIngredient(int count, ItemStack item) { + Iterator iterator = ingredients.iterator(); + while (count > 0 && iterator.hasNext()) { + ItemStack stack = iterator.next().getItemStack(); + if (stack.equals(item)) { + iterator.remove(); + count--; + } + } + return this; + } + // Paper end + public ShapelessRecipe addIngredient(RecipeChoice ingredient) { Validate.isTrue(ingredients.size() + 1 <= 9, "Shapeless recipes cannot have more than 9 ingredients"); -- 2.20.1