2020-05-06 11:22:03 +02:00
|
|
|
From 448237ec196c32d672999706de094510b261366e Mon Sep 17 00:00:00 2001
|
2019-12-13 23:41:00 +01:00
|
|
|
From: Phoenix616 <mail@moep.tv>
|
|
|
|
Date: Sun, 15 Sep 2019 11:32:32 -0500
|
|
|
|
Subject: [PATCH] Fix zero-tick instant grow farms MC-113809
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
2020-05-06 10:35:20 +02:00
|
|
|
index 928fefb4195..44210855560 100644
|
2019-12-13 23:41:00 +01:00
|
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
2020-05-06 10:35:20 +02:00
|
|
|
@@ -554,6 +554,11 @@ public class PaperWorldConfig {
|
2019-12-13 23:41:00 +01:00
|
|
|
disableRelativeProjectileVelocity = getBoolean("game-mechanics.disable-relative-projectile-velocity", false);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ public boolean fixZeroTickInstantGrowFarms = true;
|
|
|
|
+ private void fixZeroTickInstantGrowFarms() {
|
|
|
|
+ fixZeroTickInstantGrowFarms = getBoolean("fix-zero-tick-instant-grow-farms", fixZeroTickInstantGrowFarms);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
public boolean altItemDespawnRateEnabled;
|
|
|
|
public Map<Material, Integer> altItemDespawnRateMap;
|
|
|
|
private void altItemDespawnRate() {
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
|
2020-05-06 10:35:20 +02:00
|
|
|
index 540fcce1dd4..e29ec958b35 100644
|
2019-12-13 23:41:00 +01:00
|
|
|
--- a/src/main/java/net/minecraft/server/Block.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/Block.java
|
|
|
|
@@ -46,6 +46,7 @@ public class Block implements IMaterial {
|
|
|
|
private final float g;
|
|
|
|
protected final BlockStateList<Block, IBlockData> blockStateList;
|
|
|
|
private IBlockData blockData;
|
|
|
|
+ public boolean randomTick = false; // Paper - fix MC-113809
|
|
|
|
protected final boolean v;
|
|
|
|
private final boolean i;
|
|
|
|
private final boolean j;
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockBamboo.java b/src/main/java/net/minecraft/server/BlockBamboo.java
|
2020-05-06 10:35:20 +02:00
|
|
|
index c482aad3e3e..02c548dd9c9 100644
|
2019-12-13 23:41:00 +01:00
|
|
|
--- 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(worldserver, blockposition)) {
|
|
|
|
worldserver.b(blockposition, true);
|
|
|
|
} else if ((Integer) iblockdata.get(BlockBamboo.f) == 0) {
|
|
|
|
+ if (worldserver.paperConfig.fixZeroTickInstantGrowFarms && !randomTick) return; // Paper - fix MC-113809
|
|
|
|
if (random.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.bambooModifier) * 3)) == 0 && worldserver.isEmpty(blockposition.up()) && worldserver.getLightLevel(blockposition.up(), 0) >= 9) { // Spigot
|
|
|
|
int i = this.b(worldserver, blockposition) + 1;
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockCactus.java b/src/main/java/net/minecraft/server/BlockCactus.java
|
2020-05-06 10:35:20 +02:00
|
|
|
index e0974e256f0..3524fcb9278 100644
|
2019-12-13 23:41:00 +01:00
|
|
|
--- 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(worldserver, blockposition)) {
|
|
|
|
worldserver.b(blockposition, true);
|
|
|
|
} else {
|
|
|
|
+ if (worldserver.paperConfig.fixZeroTickInstantGrowFarms && !randomTick) return; // Paper - fix MC-113809
|
|
|
|
BlockPosition blockposition1 = blockposition.up();
|
|
|
|
|
|
|
|
if (worldserver.isEmpty(blockposition1)) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockChorusFlower.java b/src/main/java/net/minecraft/server/BlockChorusFlower.java
|
2020-05-06 10:35:20 +02:00
|
|
|
index d70b52cadf1..b624cf38047 100644
|
2019-12-13 23:41:00 +01:00
|
|
|
--- 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(worldserver, blockposition)) {
|
|
|
|
worldserver.b(blockposition, true);
|
|
|
|
} else {
|
|
|
|
+ if (worldserver.paperConfig.fixZeroTickInstantGrowFarms && !randomTick) return; // Paper - fix MC-113809
|
|
|
|
BlockPosition blockposition1 = blockposition.up();
|
|
|
|
|
|
|
|
if (worldserver.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
|
2020-05-06 10:35:20 +02:00
|
|
|
index 55b07444e1d..3bc3c5aa29f 100644
|
2019-12-13 23:41:00 +01:00
|
|
|
--- 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(worldserver, blockposition)) {
|
|
|
|
worldserver.b(blockposition, true);
|
|
|
|
} else if (worldserver.isEmpty(blockposition.up())) {
|
|
|
|
+ if (worldserver.paperConfig.fixZeroTickInstantGrowFarms && !randomTick) return; // Paper - fix MC-113809
|
|
|
|
int i;
|
|
|
|
|
|
|
|
for (i = 1; worldserver.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
|
2020-05-06 10:35:20 +02:00
|
|
|
index 38c5b721bf1..17560a20fce 100644
|
2019-12-13 23:41:00 +01:00
|
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
2020-03-19 07:03:32 +01:00
|
|
|
@@ -589,7 +589,9 @@ public class WorldServer extends World {
|
2019-12-13 23:48:40 +01:00
|
|
|
IBlockData iblockdata = chunksection.getType(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k);
|
2019-12-13 23:41:00 +01:00
|
|
|
|
2019-12-13 23:48:40 +01:00
|
|
|
if (iblockdata.q()) {
|
|
|
|
+ iblockdata.getBlock().randomTick = true; // Paper - fix MC-113809
|
|
|
|
iblockdata.b(this, blockposition2, this.random);
|
|
|
|
+ iblockdata.getBlock().randomTick = false; // Paper - fix MC-113809
|
|
|
|
}
|
2019-12-13 23:41:00 +01:00
|
|
|
|
2019-12-13 23:48:40 +01:00
|
|
|
Fluid fluid = iblockdata.getFluid();
|
2019-12-13 23:41:00 +01:00
|
|
|
--
|
2020-05-02 00:03:47 +02:00
|
|
|
2.26.2
|
2019-12-13 23:41:00 +01:00
|
|
|
|