24package com.dreamfirestudios.dreamcore.DreamRecipe;
26import com.dreamfirestudios.dreamcore.DreamCore;
27import org.bukkit.Material;
28import org.bukkit.NamespacedKey;
29import org.bukkit.event.inventory.PrepareItemCraftEvent;
30import org.bukkit.inventory.*;
31import org.bukkit.plugin.java.JavaPlugin;
33import java.util.ArrayList;
34import java.util.HashMap;
72 default String
recipeName(){
return getClass().getSimpleName(); }
78 default String
nameSpace(){
return String.format(
"%s_%s", com.dreamfirestudios.dreamcore.DreamCore.class.getSimpleName(),
recipeName()).toLowerCase(); }
86 default HashMap<Character, RecipeChoice>
recipeMaterials(){
return new HashMap<>(); }
98 default List<String>
recipeShape(){
return new ArrayList<>(); }
101 default RecipeChoice
recipeSource(){
return new RecipeChoice.ExactChoice(
new ItemStack(Material.AIR)); }
104 default RecipeChoice
recipeAddition(){
return new RecipeChoice.ExactChoice(
new ItemStack(Material.AIR)); }
145 @SuppressWarnings(
"deprecation")
162 var shapelessRecipe =
new ShapelessRecipe(
new NamespacedKey(javaPlugin,
nameSpace()),
recipeResult());
164 return shapelessRecipe;
Supported recipe families for IDreamRecipe.
StonecuttingRecipe
Stonecutter recipe.
BlastingRecipe
Blast furnace recipe.
SmokingRecipe
Smoker recipe.
MerchantRecipe
Villager merchant trade.
ShapedRecipe
Shaped crafting recipe.
CampfireRecipe
Campfire cooking recipe.
FurnaceRecipe
Standard furnace recipe.
SmithingRecipe
Smithing table recipe.
ShapelessRecipe
Shapeless crafting recipe.
Contract for defining DreamCore recipes with sensible defaults and a factory to build Bukkit recipe i...
default String recipeName()
Optional display/registry name; defaults to the class simple name.
default int recipeCookingTime()
Cooking time (ticks) for furnace-like recipes.
ItemStack recipeResult()
Resulting item produced by the recipe.
default RecipeChoice recipeSource()
Primary source/base item (furnace/smithing/cutting/etc.).
default int recipeSpecialPrice()
Special price value for merchant trades.
default List< RecipeChoice > recipeListMaterials()
Ingredient list used by shapeless recipes.
default float recipePriceMultiplier()
Price multiplier for merchant trades.
default int recipeDemand()
Demand parameter for merchant trade economics.
default Recipe ReturnRecipe(JavaPlugin javaPlugin)
Builds the appropriate Bukkit Recipe instance from the configured properties.
default HashMap< Character, RecipeChoice > recipeMaterials()
Character-to-ingredient mapping used by shaped recipes.
default List< String > recipeShape()
Three-row shape used by shaped recipes, e.g., ["ABC","DEF","GHI"].
default int recipeUses()
Allowed uses for merchant recipes.
default RecipeChoice recipeAddition()
Additional item for smithing recipes.
default boolean recipeExperienceReward()
Whether a merchant trade rewards experience.
default float recipeExperience()
Experience yielded by furnace-like recipes.
default String nameSpace()
Namespaced key local part (lowercase) used for registration.
RecipeType recipeType()
Type/family of this recipe.
default int recipeMaxUsers()
Maximum users for merchant recipes (villager demand system).