diff --git a/Spigot-Server-Patches/Add-option-to-disable-pillager-patrols.patch b/Spigot-Server-Patches/Add-option-to-disable-pillager-patrols.patch index 5844e1ed74..29c80fa43d 100644 --- a/Spigot-Server-Patches/Add-option-to-disable-pillager-patrols.patch +++ b/Spigot-Server-Patches/Add-option-to-disable-pillager-patrols.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to disable pillager patrols diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 33e251c87..79716faca 100644 +index c0af1aaf3..dbc645ebb 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +0,0 @@ public class PaperWorldConfig { diff --git a/Spigot-Server-Patches/Fix-zero-tick-instant-grow-farms-MC-113809.patch b/Spigot-Server-Patches/Fix-zero-tick-instant-grow-farms-MC-113809.patch new file mode 100644 index 0000000000..98ca0a77cf --- /dev/null +++ b/Spigot-Server-Patches/Fix-zero-tick-instant-grow-farms-MC-113809.patch @@ -0,0 +1,97 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phoenix616 +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 +index 33e251c87..c0af1aaf3 100644 +--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java ++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +@@ -0,0 +0,0 @@ public class PaperWorldConfig { + 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 altItemDespawnRateMap; + private void altItemDespawnRate() { +diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java +index 46490a943..54a61283e 100644 +--- a/src/main/java/net/minecraft/server/Block.java ++++ b/src/main/java/net/minecraft/server/Block.java +@@ -0,0 +0,0 @@ public class Block implements IMaterial { + private final float g; + protected final BlockStateList 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 +index c482aad3e..02c548dd9 100644 +--- a/src/main/java/net/minecraft/server/BlockBamboo.java ++++ b/src/main/java/net/minecraft/server/BlockBamboo.java +@@ -0,0 +0,0 @@ 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 +index e0974e256..3524fcb92 100644 +--- a/src/main/java/net/minecraft/server/BlockCactus.java ++++ b/src/main/java/net/minecraft/server/BlockCactus.java +@@ -0,0 +0,0 @@ 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 +index d70b52cad..b624cf380 100644 +--- a/src/main/java/net/minecraft/server/BlockChorusFlower.java ++++ b/src/main/java/net/minecraft/server/BlockChorusFlower.java +@@ -0,0 +0,0 @@ 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 +index 55b07444e..3bc3c5aa2 100644 +--- a/src/main/java/net/minecraft/server/BlockReed.java ++++ b/src/main/java/net/minecraft/server/BlockReed.java +@@ -0,0 +0,0 @@ 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 +index 4da34b6dd..722384a91 100644 +--- a/src/main/java/net/minecraft/server/WorldServer.java ++++ b/src/main/java/net/minecraft/server/WorldServer.java +@@ -0,0 +0,0 @@ public class WorldServer extends World { + IBlockData iblockdata = this.getType(nextticklistentry.a); + + if (iblockdata.getBlock() == nextticklistentry.b()) { ++ iblockdata.getBlock().randomTick = true; // Paper - fix MC-113809 + iblockdata.a(this, nextticklistentry.a, this.random); ++ iblockdata.getBlock().randomTick = false; // Paper - fix MC-113809 + } + + } +-- \ No newline at end of file