From 21c220d1a8c39c1c7db9dfbfa86c37b4ddebd382 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 7 Jul 2019 15:54:20 -0500 Subject: [PATCH] Only grow cactus/chorus fruit on random tick (MC-113809) --- ...-chorus-fruit-on-random-tick-MC-1138.patch | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 patches/server/0044-Only-grow-cactus-chorus-fruit-on-random-tick-MC-1138.patch diff --git a/patches/server/0044-Only-grow-cactus-chorus-fruit-on-random-tick-MC-1138.patch b/patches/server/0044-Only-grow-cactus-chorus-fruit-on-random-tick-MC-1138.patch new file mode 100644 index 000000000..6e6104424 --- /dev/null +++ b/patches/server/0044-Only-grow-cactus-chorus-fruit-on-random-tick-MC-1138.patch @@ -0,0 +1,65 @@ +From 8d9d3cfcfde5a50364e88253afe35a82af735edb Mon Sep 17 00:00:00 2001 +From: Phoenix616 +Date: Thu, 16 May 2019 01:33:46 +0100 +Subject: [PATCH] Only grow cactus/chorus fruit on random tick (MC-113809) + +--- + src/main/java/net/minecraft/server/Block.java | 1 + + src/main/java/net/minecraft/server/BlockCactus.java | 1 + + src/main/java/net/minecraft/server/BlockChorusFlower.java | 1 + + src/main/java/net/minecraft/server/WorldServer.java | 2 ++ + 4 files changed, 5 insertions(+) + +diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java +index 8e16162a7..9b17269e6 100644 +--- a/src/main/java/net/minecraft/server/Block.java ++++ b/src/main/java/net/minecraft/server/Block.java +@@ -31,6 +31,7 @@ public class Block implements IMaterial { + protected final boolean q; + protected final SoundEffectType stepSound; + protected final Material material; ++ public boolean randomTick = false; // Purpur - fix MC-113809 + // Paper start + public co.aikar.timings.Timing timing; + public co.aikar.timings.Timing getTiming() { +diff --git a/src/main/java/net/minecraft/server/BlockCactus.java b/src/main/java/net/minecraft/server/BlockCactus.java +index 29f9ff6c1..375ada5a4 100644 +--- a/src/main/java/net/minecraft/server/BlockCactus.java ++++ b/src/main/java/net/minecraft/server/BlockCactus.java +@@ -21,6 +21,7 @@ public class BlockCactus extends Block { + if (!iblockdata.canPlace(world, blockposition)) { + world.b(blockposition, true); + } else { ++ if (!randomTick) return; // Purpur - fix MC-113809 + BlockPosition blockposition1 = blockposition.up(); + + if (world.isEmpty(blockposition1)) { +diff --git a/src/main/java/net/minecraft/server/BlockChorusFlower.java b/src/main/java/net/minecraft/server/BlockChorusFlower.java +index 74fa4889f..bbda083f6 100644 +--- a/src/main/java/net/minecraft/server/BlockChorusFlower.java ++++ b/src/main/java/net/minecraft/server/BlockChorusFlower.java +@@ -22,6 +22,7 @@ public class BlockChorusFlower extends Block { + if (!iblockdata.canPlace(world, blockposition)) { + world.b(blockposition, true); + } else { ++ if (!randomTick) return; // Purpur - fix MC-113809 + BlockPosition blockposition1 = blockposition.up(); + + if (world.isEmpty(blockposition1) && blockposition1.getY() < 256) { +diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java +index 548e4e02d..17c8f9ff8 100644 +--- a/src/main/java/net/minecraft/server/WorldServer.java ++++ b/src/main/java/net/minecraft/server/WorldServer.java +@@ -447,7 +447,9 @@ public class WorldServer extends World { + IBlockData iblockdata = chunksection.getType(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k); + + if (iblockdata.q()&& (!purpurConfig.blockTickEvent || new net.pl3x.purpur.event.block.BlockTickEvent(getWorld(), blockposition2.x, blockposition2.y, blockposition2.z, true).callEvent())) { // Purpur ++ iblockdata.getBlock().randomTick = true; // Purpur - fix MC-113809 + iblockdata.b((World) this, blockposition2, this.random); ++ iblockdata.getBlock().randomTick = false; // Purpur - fix MC-113809 + } + + Fluid fluid = chunksection.b(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k); +-- +2.20.1 +