diff --git a/patches/server/0137-Infinite-fuel-furnace.patch b/patches/server/0137-Infinite-fuel-furnace.patch new file mode 100644 index 000000000..a13428c49 --- /dev/null +++ b/patches/server/0137-Infinite-fuel-furnace.patch @@ -0,0 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Mon, 19 Oct 2020 15:14:01 -0500 +Subject: [PATCH] Infinite fuel furnace + + +diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java +index 1d3c2dd93..e96fc0420 100644 +--- a/src/main/java/net/minecraft/server/TileEntityFurnace.java ++++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java +@@ -266,6 +266,16 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I + if (!this.world.isClientSide) { + ItemStack itemstack = (ItemStack) this.items.get(1); + ++ // Purpur start ++ if (world.purpurConfig.furnaceInfiniteFuel && !isBurning() && itemstack.isEmpty() && !items.get(0).isEmpty() && world.getTime() % 20 == 0) { ++ BlockPosition pos = getPosition().down(); ++ if (world.getBlockIfLoaded(pos).getItem() == Blocks.LAVA.getItem()) { ++ world.setTypeAndData(pos, Blocks.AIR.getBlockData(), 3); ++ itemstack = Items.LAVA_BUCKET.createItemStack(); ++ } ++ } ++ // Purpur end ++ + if (!this.isBurning() && (itemstack.isEmpty() || ((ItemStack) this.items.get(0)).isEmpty())) { + if (!this.isBurning() && this.cookTime > 0) { + this.cookTime = MathHelper.clamp(this.cookTime - 2, 0, this.cookTimeTotal); +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 8f94b0537..71957fe45 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -344,6 +344,11 @@ public class PurpurWorldConfig { + farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); + } + ++ public boolean furnaceInfiniteFuel = false; ++ private void furnaceSettings() { ++ furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel); ++ } ++ + public boolean lavaInfinite = false; + public int lavaInfiniteRequiredSources = 2; + public int lavaSpeedNether = 10;