diff options
Diffstat (limited to 'Spigot-Server-Patches/0354-Implement-furnace-cook-speed-multiplier-API.patch')
-rw-r--r-- | Spigot-Server-Patches/0354-Implement-furnace-cook-speed-multiplier-API.patch | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0354-Implement-furnace-cook-speed-multiplier-API.patch b/Spigot-Server-Patches/0354-Implement-furnace-cook-speed-multiplier-API.patch new file mode 100644 index 0000000000..a668ba26b7 --- /dev/null +++ b/Spigot-Server-Patches/0354-Implement-furnace-cook-speed-multiplier-API.patch @@ -0,0 +1,84 @@ +From 30647dba5827f15f94d35d4cc67acd0cb71e367b Mon Sep 17 00:00:00 2001 +From: Tassu <[email protected]> +Date: Thu, 13 Sep 2018 08:45:21 +0300 +Subject: [PATCH] Implement furnace cook speed multiplier API + +Signed-off-by: Tassu <[email protected]> + +diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java +index 5b6ccfa9f5..bfbd35bbe5 100644 +--- a/src/main/java/net/minecraft/server/TileEntityFurnace.java ++++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java +@@ -9,6 +9,7 @@ import java.util.Map.Entry; + import javax.annotation.Nullable; + // CraftBukkit start + import java.util.List; ++ + import org.bukkit.craftbukkit.block.CraftBlock; + import org.bukkit.craftbukkit.entity.CraftHumanEntity; + import org.bukkit.craftbukkit.inventory.CraftItemStack; +@@ -25,6 +26,7 @@ public class TileEntityFurnace extends TileEntityContainer implements IWorldInve + private NonNullList<ItemStack> items; + private int burnTime; + private int ticksForCurrentFuel; ++ public double cookSpeedMultiplier = 1.0; // Paper - cook speed multiplier API + private int cookTime; + private int cookTimeTotal; + private IChatBaseComponent l; +@@ -218,6 +220,11 @@ public class TileEntityFurnace extends TileEntityContainer implements IWorldInve + this.l = IChatBaseComponent.ChatSerializer.a(nbttagcompound.getString("CustomName")); + } + ++ // Paper start - cook speed API ++ if (nbttagcompound.hasKey("Paper.CookSpeedMultiplier")) { ++ this.cookSpeedMultiplier = nbttagcompound.getDouble("Paper.CookSpeedMultiplier"); ++ } ++ // Paper end + } + + public NBTTagCompound save(NBTTagCompound nbttagcompound) { +@@ -225,6 +232,7 @@ public class TileEntityFurnace extends TileEntityContainer implements IWorldInve + nbttagcompound.setShort("BurnTime", (short) this.burnTime); + nbttagcompound.setShort("CookTime", (short) this.cookTime); + nbttagcompound.setShort("CookTimeTotal", (short) this.cookTimeTotal); ++ nbttagcompound.setDouble("Paper.CookSpeedMultiplier", this.cookSpeedMultiplier); // Paper - cook speed multiplier API + ContainerUtil.a(nbttagcompound, this.items); + nbttagcompound.setShort("RecipesUsedSize", (short) this.m.size()); + int i = 0; +@@ -299,8 +307,8 @@ public class TileEntityFurnace extends TileEntityContainer implements IWorldInve + } + + if (this.isBurning() && this.canBurn(irecipe)) { +- ++this.cookTime; +- if (this.cookTime == this.cookTimeTotal) { ++ this.cookTime += cookSpeedMultiplier; // Paper - cook speed multiplier API ++ if (this.cookTime >= this.cookTimeTotal) { // Paper - cook speed multiplier API + this.cookTime = 0; + this.cookTimeTotal = this.s(); + this.burn(irecipe); +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java +index c2eea8ce03..429c780ec7 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java +@@ -84,4 +84,18 @@ public class CraftFurnace extends CraftContainer<TileEntityFurnace> implements F + furnace.setCustomName(null); + } + } ++ ++ // Paper start - cook speed multiplier API ++ @Override ++ public double getCookSpeedMultiplier() { ++ return this.getSnapshot().cookSpeedMultiplier; ++ } ++ ++ @Override ++ public void setCookSpeedMultiplier(double multiplier) { ++ com.google.common.base.Preconditions.checkArgument(multiplier >= 0, "Furnace speed multiplier cannot be negative"); ++ com.google.common.base.Preconditions.checkArgument(multiplier <= 200, "Furnace speed multiplier cannot more than 200"); ++ this.getSnapshot().cookSpeedMultiplier = multiplier; ++ } ++ // Paper end + } +-- +2.21.0 + |