mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
403d07e954
Previously the upstream FurnaceStartSmeltEvent would default to the recipes cooking time, ignoring any modifications from the furnace speed multiplier. While this works correctly for upstream, paper introduces the speed multiplier API, which allows a different cook time from the one provided by the recipe. This commit now passes the modified cooktime to the furnace start smelt event explicitly, instead of allowing the event to default to the recipes cooking time, thus ensuring that the speed modifier is respected. Resolves: #6376
62 lines
2.6 KiB
Diff
62 lines
2.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Tassu <git@tassu.me>
|
|
Date: Thu, 13 Sep 2018 08:45:01 +0300
|
|
Subject: [PATCH] Implement furnace cook speed multiplier API
|
|
|
|
Signed-off-by: Tassu <git@tassu.me>
|
|
|
|
diff --git a/src/main/java/org/bukkit/block/Furnace.java b/src/main/java/org/bukkit/block/Furnace.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/block/Furnace.java
|
|
+++ b/src/main/java/org/bukkit/block/Furnace.java
|
|
@@ -0,0 +0,0 @@ public interface Furnace extends Container {
|
|
*/
|
|
public void setCookTimeTotal(int cookTimeTotal);
|
|
|
|
+ // 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/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java b/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/inventory/FurnaceStartSmeltEvent.java
|
|
@@ -0,0 +0,0 @@ public class FurnaceStartSmeltEvent extends BlockEvent {
|
|
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 - furnace cook speed multiplier
|
|
+ this(furnace, source, recipe, recipe.getCookingTime());
|
|
+ }
|
|
+
|
|
+ public FurnaceStartSmeltEvent(@NotNull final Block furnace, @NotNull ItemStack source, @NotNull CookingRecipe<?> recipe, int cookingTime) {
|
|
+ // Paper end
|
|
super(furnace);
|
|
this.source = source;
|
|
this.recipe = recipe;
|
|
- this.totalCookTime = recipe.getCookingTime();
|
|
+ this.totalCookTime = cookingTime; // Paper - furnace cook speed multiplier
|
|
}
|
|
|
|
/**
|