mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 07:48:53 +01:00
2f782a6652
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes:17543ecf
SPIGOT-5035: Error Using Virtual Merchant GUI0fc6922b
SPIGOT-5028: Villager#setVillagerExperience() doesn't workbdbdbe44
SPIGOT-5024: Fox error - Unknown target reason
73 lines
2.4 KiB
Diff
73 lines
2.4 KiB
Diff
From 03a8b7278e3d84ae6a755ff042e71e57896eed22 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
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 d742c4058..222a12baa 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
|
|
@@ -145,6 +145,13 @@ public class ShapedRecipe implements Recipe, Keyed {
|
|
return this;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ public ShapedRecipe setIngredient(char key, @NotNull 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 84062dd71..ddcf84e66 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
|
|
@@ -143,6 +143,40 @@ public class ShapelessRecipe implements Recipe, Keyed {
|
|
return this;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @NotNull
|
|
+ public ShapelessRecipe addIngredient(@NotNull ItemStack item) {
|
|
+ return addIngredient(1, item);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public ShapelessRecipe addIngredient(int count, @NotNull 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;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public ShapelessRecipe removeIngredient(@NotNull ItemStack item) {
|
|
+ return removeIngredient(1, item);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public ShapelessRecipe removeIngredient(int count, @NotNull ItemStack item) {
|
|
+ Iterator<RecipeChoice> iterator = ingredients.iterator();
|
|
+ while (count > 0 && iterator.hasNext()) {
|
|
+ ItemStack stack = iterator.next().getItemStack();
|
|
+ if (stack.equals(item)) {
|
|
+ iterator.remove();
|
|
+ count--;
|
|
+ }
|
|
+ }
|
|
+ return this;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Removes an ingredient from the list.
|
|
*
|
|
--
|
|
2.21.0
|
|
|