mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-21 18:37:42 +01:00
93 lines
4.9 KiB
Diff
93 lines
4.9 KiB
Diff
From 58bcc5ac517eaea08870e09e86ebe44e4e38f32e Mon Sep 17 00:00:00 2001
|
|
From: Phoenix616 <mail@moep.tv>
|
|
Date: Thu, 16 May 2019 01:33:46 +0100
|
|
Subject: [PATCH] Fix MC-113809 Only grow cactus/reeds/bamboo/chorus fruit on
|
|
random tick
|
|
|
|
---
|
|
src/main/java/net/minecraft/server/Block.java | 1 +
|
|
src/main/java/net/minecraft/server/BlockBamboo.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/BlockReed.java | 1 +
|
|
src/main/java/net/minecraft/server/WorldServer.java | 2 ++
|
|
6 files changed, 7 insertions(+)
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
|
|
index f9747fb18..4a537d1d7 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/BlockBamboo.java b/src/main/java/net/minecraft/server/BlockBamboo.java
|
|
index ffb65776c..d94368b03 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockBamboo.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockBamboo.java
|
|
@@ -85,6 +85,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement {
|
|
if (!iblockdata.canPlace(world, blockposition)) {
|
|
world.b(blockposition, true);
|
|
} else if ((Integer) iblockdata.get(BlockBamboo.f) == 0) {
|
|
+ if (!randomTick) return; // Purpur - fix MC-113809
|
|
if (world.random.nextInt(Math.max(1, (int) (100.0F / world.spigotConfig.bambooModifier) * 3)) == 0 && world.isEmpty(blockposition.up()) && world.getLightLevel(blockposition.up(), 0) >= 9) { // Spigot
|
|
int i = this.b((IBlockAccess) world, blockposition) + 1;
|
|
|
|
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/BlockReed.java b/src/main/java/net/minecraft/server/BlockReed.java
|
|
index ff674a9d5..4a13e248e 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockReed.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockReed.java
|
|
@@ -23,6 +23,7 @@ public class BlockReed extends Block {
|
|
if (!iblockdata.canPlace(world, blockposition)) {
|
|
world.b(blockposition, true);
|
|
} else if (world.isEmpty(blockposition.up())) {
|
|
+ if (!randomTick) return; // Purpur - fix MC-113809
|
|
int i;
|
|
|
|
for (i = 1; world.getType(blockposition.down(i)).getBlock() == this; ++i) {
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
index 451ad4f32..a41d050cf 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -452,7 +452,9 @@ public class WorldServer extends World {
|
|
IBlockData iblockdata = chunksection.getType(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k);
|
|
|
|
if (iblockdata.q()) {
|
|
+ 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 = iblockdata.p();
|
|
--
|
|
2.20.1
|
|
|