Class ShapedRecipe

java.lang.Object
org.bukkit.inventory.ShapedRecipe
All Implemented Interfaces:
Recipe, Keyed

public class ShapedRecipe extends Object implements Recipe, Keyed
Represents a shaped (ie normal) crafting recipe.
  • Constructor Details

  • Method Details

    • shape

      @NotNull public ShapedRecipe shape(@NotNull String... shape)
      Set the shape of this recipe to the specified rows. Each character represents a different ingredient; exactly what each character represents is set separately. The first row supplied corresponds with the upper most part of the recipe on the workbench e.g. if all three rows are supplies the first string represents the top row on the workbench.
      Parameters:
      shape - The rows of the recipe (up to 3 rows).
      Returns:
      The changed recipe, so you can chain calls.
    • setIngredient

      @NotNull public ShapedRecipe setIngredient(char key, @NotNull MaterialData ingredient)
      Sets the material that a character in the recipe shape refers to.

      Note that before an ingredient can be set, the recipe's shape must be defined with shape(String...).

      Parameters:
      key - The character that represents the ingredient in the shape.
      ingredient - The ingredient.
      Returns:
      The changed recipe, so you can chain calls.
      Throws:
      IllegalArgumentException - if the key does not appear in the shape.
    • setIngredient

      @NotNull public ShapedRecipe setIngredient(char key, @NotNull Material ingredient)
      Sets the material that a character in the recipe shape refers to.

      Note that before an ingredient can be set, the recipe's shape must be defined with shape(String...).

      Parameters:
      key - The character that represents the ingredient in the shape.
      ingredient - The ingredient.
      Returns:
      The changed recipe, so you can chain calls.
      Throws:
      IllegalArgumentException - if the key does not appear in the shape.
    • setIngredient

      @Deprecated @NotNull public ShapedRecipe setIngredient(char key, @NotNull Material ingredient, int raw)
      Deprecated.
      Magic value
      Sets the material that a character in the recipe shape refers to.

      Note that before an ingredient can be set, the recipe's shape must be defined with shape(String...).

      Parameters:
      key - The character that represents the ingredient in the shape.
      ingredient - The ingredient.
      raw - The raw material data as an integer.
      Returns:
      The changed recipe, so you can chain calls.
      Throws:
      IllegalArgumentException - if the key does not appear in the shape.
    • setIngredient

      @NotNull public ShapedRecipe setIngredient(char key, @NotNull RecipeChoice ingredient)
      Sets the RecipeChoice that a character in the recipe shape refers to.

      Note that before an ingredient can be set, the recipe's shape must be defined with shape(String...).

      Parameters:
      key - The character that represents the ingredient in the shape.
      ingredient - The ingredient.
      Returns:
      The changed recipe, so you can chain calls.
      Throws:
      IllegalArgumentException - if the key does not appear in the shape.
    • getIngredientMap

      @NotNull public Map<Character,ItemStack> getIngredientMap()
      Get a copy of the ingredients map.
      Returns:
      The mapping of character to ingredients.
    • getChoiceMap

      @NotNull public Map<Character,RecipeChoice> getChoiceMap()
      Get a copy of the choice map.
      Returns:
      The mapping of character to ingredients.
    • getShape

      @NotNull public String[] getShape()
      Get the shape.
      Returns:
      The recipe's shape.
      Throws:
      NullPointerException - when not set yet
    • getResult

      @NotNull public ItemStack getResult()
      Get the result.
      Specified by:
      getResult in interface Recipe
      Returns:
      The result stack.
    • getKey

      @NotNull public NamespacedKey getKey()
      Description copied from interface: Keyed
      Return the namespaced identifier for this object.
      Specified by:
      getKey in interface Keyed
      Returns:
      this object's key
    • getGroup

      @NotNull public String getGroup()
      Get the group of this recipe. Recipes with the same group may be grouped together when displayed in the client.
      Returns:
      recipe group. An empty string denotes no group. May not be null.
    • setGroup

      public void setGroup(@NotNull String group)
      Set the group of this recipe. Recipes with the same group may be grouped together when displayed in the client.
      Parameters:
      group - recipe group. An empty string denotes no group. May not be null.
    • getCategory

      @NotNull public CraftingBookCategory getCategory()
      Gets the category which this recipe will appear in the recipe book under. Defaults to CraftingBookCategory.MISC if not set.
      Returns:
      recipe book category
    • setCategory

      public void setCategory(@NotNull CraftingBookCategory category)
      Sets the category which this recipe will appear in the recipe book under. Defaults to CraftingBookCategory.MISC if not set.
      Parameters:
      category - recipe book category