geforkt von Mirrors/Paper
0708fa363b
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 CraftBukkit Changes:eb2e6578
SPIGOT-5116: Fix concurrent modification exception inside ChunkMapDistance989f9b3d
SPIGOT-4849: Fix server crash when accessing chunks during chunk load/unload/populate eventsf554183c
SPIGOT-5171: Don't fire PlayerTeleportEvent if not actually moving2349feb8
SPIGOT-5163: Cancelling PlayerBucketFillEvent visually removes the targeted block Spigot Changes: 9a643a6a Remove DataWatcher Locking
85 Zeilen
3.9 KiB
Diff
85 Zeilen
3.9 KiB
Diff
From 06ff269f22e72c29af69f2dac6b5cd04e50d026c 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 2bbd3663a..55b564610 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntityFurnace.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java
|
|
@@ -8,6 +8,7 @@ import java.util.Map;
|
|
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;
|
|
@@ -26,6 +27,7 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I
|
|
protected NonNullList<ItemStack> items;
|
|
public int burnTime;
|
|
private int ticksForCurrentFuel;
|
|
+ public double cookSpeedMultiplier = 1.0; // Paper - cook speed multiplier API
|
|
public int cookTime;
|
|
public int cookTimeTotal;
|
|
protected final IContainerProperties b;
|
|
@@ -212,6 +214,11 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I
|
|
this.n.put(minecraftkey, j);
|
|
}
|
|
|
|
+ // Paper start - cook speed API
|
|
+ if (nbttagcompound.hasKey("Paper.CookSpeedMultiplier")) {
|
|
+ this.cookSpeedMultiplier = nbttagcompound.getDouble("Paper.CookSpeedMultiplier");
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
@Override
|
|
@@ -220,6 +227,7 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I
|
|
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.n.size());
|
|
int i = 0;
|
|
@@ -283,8 +291,8 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I
|
|
}
|
|
|
|
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.getRecipeCookingTime();
|
|
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 9cc67915c..1ce10ea04 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java
|
|
@@ -63,4 +63,18 @@ public class CraftFurnace<T extends TileEntityFurnace> extends CraftContainer<T>
|
|
public void setCookTimeTotal(int cookTimeTotal) {
|
|
this.getSnapshot().cookTimeTotal = cookTimeTotal;
|
|
}
|
|
+
|
|
+ // 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.22.0
|
|
|