From 6d98fbc47da0cc57a1f283e0e0f47931e1393013 Mon Sep 17 00:00:00 2001 From: Tassu Date: Thu, 13 Sep 2018 08:45:01 +0300 Subject: [PATCH] Implement furnace cook speed multiplier API Signed-off-by: Tassu --- .../main/java/org/bukkit/block/Furnace.java | 20 +++++++++++++++++++ .../inventory/FurnaceStartSmeltEvent.java | 9 ++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) 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 ac3b24c5c9..dbdf3dbe95 100644 --- a/paper-api/src/main/java/org/bukkit/block/Furnace.java +++ b/paper-api/src/main/java/org/bukkit/block/Furnace.java @@ -74,6 +74,26 @@ public interface Furnace extends Container { @NotNull public Map, Integer> getRecipesUsed(); + // Paper start + /** + * Gets the cook speed multiplier that this {@link Furnace} will cook + * compared to vanilla. + * + * @return the multiplier, a value between 0 and 200 + */ + public double getCookSpeedMultiplier(); + + /** + * Sets the speed multiplier that this {@link Furnace} will cook + * compared to vanilla. + * + * @param multiplier the multiplier to set, a value between 0 and 200 + * @throws IllegalArgumentException if value is less than 0 + * @throws IllegalArgumentException if value is more than 200 + */ + public void setCookSpeedMultiplier(double multiplier); + // Paper end + @NotNull @Override public FurnaceInventory getInventory(); diff --git a/paper-api/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java b/paper-api/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java index 0808e7aeff..d386ab5dd4 100644 --- a/paper-api/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java @@ -18,10 +18,17 @@ public class FurnaceStartSmeltEvent extends InventoryBlockStartEvent { private final CookingRecipe recipe; private int totalCookTime; + @Deprecated // Paper - furnace cook speed multiplier public FurnaceStartSmeltEvent(@NotNull final Block furnace, @NotNull ItemStack source, @NotNull final CookingRecipe recipe) { + // Paper start + this(furnace, source, recipe, recipe.getCookingTime()); + } + + public FurnaceStartSmeltEvent(final @NotNull Block furnace, final @NotNull ItemStack source, final @NotNull CookingRecipe recipe, final int cookingTime) { + // Paper end super(furnace, source); this.recipe = recipe; - this.totalCookTime = recipe.getCookingTime(); + this.totalCookTime = cookingTime; // Paper - furnace cook speed multiplier } /**