diff --git a/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java index 3d14f1afca..6f251252aa 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java +++ b/paper-api/src/main/java/org/bukkit/inventory/CookingRecipe.java @@ -42,6 +42,7 @@ public abstract class CookingRecipe implements Recipe, * @param cookingTime The cooking time (in ticks) */ public CookingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @NotNull RecipeChoice input, float experience, int cookingTime) { + Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); this.key = key; this.output = new ItemStack(result); this.ingredient = input; diff --git a/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java index 8a3184528e..d74b3114f5 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ShapedRecipe.java @@ -23,6 +23,7 @@ public class ShapedRecipe implements Recipe, Keyed { @Deprecated public ShapedRecipe(@NotNull ItemStack result) { + Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); this.key = NamespacedKey.randomKey(); this.output = new ItemStack(result); } @@ -41,6 +42,7 @@ public class ShapedRecipe implements Recipe, Keyed { */ public ShapedRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) { Preconditions.checkArgument(key != null, "key"); + Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); this.key = key; this.output = new ItemStack(result); diff --git a/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java index 17f2a0113d..68447fb8c1 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ShapelessRecipe.java @@ -24,6 +24,7 @@ public class ShapelessRecipe implements Recipe, Keyed { @Deprecated public ShapelessRecipe(@NotNull ItemStack result) { + Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); this.key = NamespacedKey.randomKey(); this.output = new ItemStack(result); } @@ -43,6 +44,7 @@ public class ShapelessRecipe implements Recipe, Keyed { * @see ShapelessRecipe#addIngredient(int,Material,int) */ public ShapelessRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) { + Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); this.key = key; this.output = new ItemStack(result); } diff --git a/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java b/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java index 0ad14ef076..d8ef781d6b 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java +++ b/paper-api/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java @@ -35,6 +35,7 @@ public class StonecuttingRecipe implements Recipe, Keyed { * @param input The input choices. */ public StonecuttingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @NotNull RecipeChoice input) { + Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); this.key = key; this.output = new ItemStack(result); this.ingredient = input;