From 8769e2d5a53e2c374ff6a32ccfbe1c66ddc7ac6e Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Thu, 13 Jan 2022 15:21:08 -0800 Subject: [PATCH] Furnace RecipesUsed API --- .../main/java/org/bukkit/block/Furnace.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/paper-api/src/main/java/org/bukkit/block/Furnace.java b/paper-api/src/main/java/org/bukkit/block/Furnace.java index dbdf3dbe95..8745e5aeaa 100644 --- a/paper-api/src/main/java/org/bukkit/block/Furnace.java +++ b/paper-api/src/main/java/org/bukkit/block/Furnace.java @@ -92,6 +92,40 @@ public interface Furnace extends Container { * @throws IllegalArgumentException if value is more than 200 */ public void setCookSpeedMultiplier(double multiplier); + + /** + * Gets the number of times a recipe has been used since the + * last player removed items from the result slot. This is used + * to calculate experience rewards when withdrawing items from furnaces. + * + * @param furnaceRecipe the recipe to query the count for + * @return the count or 0 if none found + */ + int getRecipeUsedCount(@NotNull org.bukkit.NamespacedKey furnaceRecipe); + + /** + * Checks if the recipe has a used count present on this furnace. + * + * @param furnaceRecipe the recipe to check if a count exists for + * @return true if there is a positive count, else false + */ + boolean hasRecipeUsedCount(@NotNull org.bukkit.NamespacedKey furnaceRecipe); + + /** + * Sets the number of times a recipe has been used. This is used + * to calculate experience rewards when withdrawing items from furnaces. + * + * @param furnaceRecipe the recipe to set the count for + * @param count the count, a non-positive number will remove the recipe + */ + void setRecipeUsedCount(@NotNull org.bukkit.inventory.CookingRecipe furnaceRecipe, int count); + + /** + * Sets all recipes used by this furnace. + * + * @param recipesUsed the recipes used + */ + void setRecipesUsed(@NotNull Map, Integer> recipesUsed); // Paper end @NotNull