0976d52bbd
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 Please note that this build includes changes to meet upstreams requirements for nullability annotations. While we aim for a level of accuracy, these might not be 100% correct, if there are any issues, please speak to us on discord, or open an issue on the tracker to discuss. Bukkit Changes: 9a6a1de3 Remove nullability annotations from enum constructors 3f0591ea SPIGOT-2540: Add nullability annotations to entire Bukkit API CraftBukkit Changes:8d8475fc
SPIGOT-4666: Force parameter in HumanEntity#sleep8b1588e2
Fix ExplosionPrimeEvent#setFire not working with EnderCrystals39a287b7
Don't ignore newlines in PlayerListHeader/Footer Spigot Changes: cf694d87 Add nullability annotations
74 Zeilen
2.4 KiB
Diff
74 Zeilen
2.4 KiB
Diff
From 6f20f63b0dbe9562c28f5332c0e8920e476b1bea 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 64a43f426..76b2dd7cb 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 46a398e88..818bf2936 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
|
|
|