From 6cd244c7016274fbfce518ec72637d376068438e Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 5 Dec 2020 21:28:31 -0600 Subject: [PATCH] Fix infinite furnaces triggering without lava source --- .../server/0133-Infinite-fuel-furnace.patch | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/patches/server/0133-Infinite-fuel-furnace.patch b/patches/server/0133-Infinite-fuel-furnace.patch index 9d3d49860..609c290d7 100644 --- a/patches/server/0133-Infinite-fuel-furnace.patch +++ b/patches/server/0133-Infinite-fuel-furnace.patch @@ -5,10 +5,10 @@ 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 1d3c2dd936..dfed2675a8 100644 +index 1d3c2dd936..1a47f0ae48 100644 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java -@@ -266,6 +266,18 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I +@@ -266,6 +266,22 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I if (!this.world.isClientSide) { ItemStack itemstack = (ItemStack) this.items.get(1); @@ -16,10 +16,14 @@ index 1d3c2dd936..dfed2675a8 100644 + boolean infiniteFuel = false; + 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(); -+ infiniteFuel = true; ++ IBlockData iblockdata = world.getTypeIfLoaded(pos); ++ if (iblockdata != null && iblockdata.equals(Blocks.LAVA)) { ++ Fluid fluid = iblockdata.getFluid(); ++ if (fluid != null && fluid.isSource()) { ++ world.setTypeAndData(pos, Blocks.AIR.getBlockData(), 3); ++ itemstack = Items.LAVA_BUCKET.createItemStack(); ++ infiniteFuel = true; ++ } + } + } + // Purpur end @@ -27,7 +31,7 @@ index 1d3c2dd936..dfed2675a8 100644 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); -@@ -319,6 +331,8 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I +@@ -319,6 +335,8 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I flag1 = true; this.world.setTypeAndData(this.position, (IBlockData) this.world.getType(this.position).set(BlockFurnace.LIT, this.isBurning()), 3); }