mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-28 19:22:50 +01:00
b62dfa0bf9
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 39ce5d3a SPIGOT-4399: ItemMeta.equals broken with AttributeModifiers CraftBukkit Changes:1cf8b5dc
SPIGOT-4400: Populators running on existing chunks116cb9a1
SPIGOT-4399: Add attribute modifier equality test5ee1c18a
SPIGOT-4398: Set ASM7_EXPERIMENTAL flag
84 lines
3.9 KiB
Diff
84 lines
3.9 KiB
Diff
From 2db7829c9a28d4c3029e83d3a90f918dc16ce870 Mon Sep 17 00:00:00 2001
|
|
From: Tassu <git@tassu.me>
|
|
Date: Thu, 13 Sep 2018 08:45:21 +0300
|
|
Subject: [PATCH] Implement furnace cook speed multiplier API
|
|
|
|
Signed-off-by: Tassu <git@tassu.me>
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java
|
|
index c439b20c80..a537d35b73 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntityFurnace.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java
|
|
@@ -11,6 +11,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;
|
|
@@ -27,6 +28,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;
|
|
@@ -220,6 +222,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) {
|
|
@@ -227,6 +234,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;
|
|
@@ -301,8 +309,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 469dc4ff2b..0ffbe8cd64 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java
|
|
@@ -71,4 +71,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.19.0
|
|
|