From 8043704bb079713a91fce9ac7cbf832723de9b09 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Tue, 21 Nov 2023 00:48:57 -0300 Subject: [PATCH] Only check for farm block moisture if the crop growth event wasn't cancelled --- .../server/0011-Blazingly-Simple-Farm-Checks.patch | 11 +++++++---- .../0012-Track-how-much-MSPT-each-world-used.patch | 2 +- patches/server/0013-Parallel-world-ticking.patch | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/patches/server/0011-Blazingly-Simple-Farm-Checks.patch b/patches/server/0011-Blazingly-Simple-Farm-Checks.patch index 9e13043..d86c46b 100644 --- a/patches/server/0011-Blazingly-Simple-Farm-Checks.patch +++ b/patches/server/0011-Blazingly-Simple-Farm-Checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Blazingly Simple Farm Checks diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java -index 6365ddea0c23bc5d4009d98915f2b39aed2a0328..2e39555a9202bd1474dd2229ece4ebab3d35f898 100644 +index 6365ddea0c23bc5d4009d98915f2b39aed2a0328..0c210c7788a45c672abed20175dfc05bfea89d34 100644 --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java -@@ -74,6 +74,49 @@ public class CropBlock extends BushBlock implements BonemealableBlock { +@@ -74,6 +74,52 @@ public class CropBlock extends BushBlock implements BonemealableBlock { int i = this.getAge(state); if (i < this.getMaxAge()) { @@ -46,19 +46,22 @@ index 6365ddea0c23bc5d4009d98915f2b39aed2a0328..2e39555a9202bd1474dd2229ece4ebab + + if (random.nextFloat() < (modifier / (100.0f * (Math.floor((25.0F / f) + 1))))) { // Spigot - SPIGOT-7159: Better modifier resolution + // Spigot end ++ if (!CraftEventFactory.handleBlockGrowEvent(world, pos, this.getStateForAge(i + 1), 2)) { ++ return; ++ } ++ + // Now that we know that the crop will grow... is the next stage the crop's max age? If yes, we are going to check if the farm land is moist! + if (i + 1 == getMaxAge() && isCurrentFarmlandStateMoist && !FarmBlock.isNearWater(world, farmlandBelowTheCurrentBlock)) { + // Whoops, farm land ain't moist! + // From FarmBlock, set the moisture to 0 + org.bukkit.craftbukkit.event.CraftEventFactory.handleMoistureChangeEvent(world, farmlandBelowTheCurrentBlock, (BlockState) farmlandBelowTheCurrentBlockData.setValue(FarmBlock.MOISTURE, 0), 2); // CraftBukkit + } -+ CraftEventFactory.handleBlockGrowEvent(world, pos, this.getStateForAge(i + 1), 2); // CraftBukkit + } + } else { float f = CropBlock.getGrowthSpeed(this, world, pos); // Spigot start -@@ -96,6 +139,8 @@ public class CropBlock extends BushBlock implements BonemealableBlock { +@@ -96,6 +142,8 @@ public class CropBlock extends BushBlock implements BonemealableBlock { // Spigot end CraftEventFactory.handleBlockGrowEvent(world, pos, this.getStateForAge(i + 1), 2); // CraftBukkit } diff --git a/patches/server/0012-Track-how-much-MSPT-each-world-used.patch b/patches/server/0012-Track-how-much-MSPT-each-world-used.patch index ba40c8f..cd0fa83 100644 --- a/patches/server/0012-Track-how-much-MSPT-each-world-used.patch +++ b/patches/server/0012-Track-how-much-MSPT-each-world-used.patch @@ -77,7 +77,7 @@ index 25367df06a8a6e8b0b3a56652a5fb1c70a15632d..a308b52c26c2bb1bfee9f50e03480676 for (final io.papermc.paper.chunk.SingleThreadChunkRegionManager regionManager : worldserver.getChunkSource().chunkMap.regionManagers) { regionManager.recalculateRegions(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 584a768f2ce1c98a1de7749060c47f21721f9055..3fe14f5f135249ea9004589a86ed372aeb4667f8 100644 +index c88d5b9125f6ee43bf2be60fd1745d836f271b78..3721a45fbc38d6fc92cc8ba5080c7bd18b8d006c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -685,6 +685,12 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0013-Parallel-world-ticking.patch b/patches/server/0013-Parallel-world-ticking.patch index fb69cd8..3953469 100644 --- a/patches/server/0013-Parallel-world-ticking.patch +++ b/patches/server/0013-Parallel-world-ticking.patch @@ -754,7 +754,7 @@ index a308b52c26c2bb1bfee9f50e03480676b53e602f..e48cb1a99f6876393eaaa98eeca41c0a this.profiler.popPush("connection"); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 8c20221736419bcb9c3e570af624eef8e6fc3b09..52f7b6cc6f410e353ec8a5836d23d47c5c934675 100644 +index 9a6915a87ae8aa4ffefea575d7a7d5199c800799..774d62b7166452157d237b703fbaf32c66829974 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -17,6 +17,7 @@ import java.util.Collections; @@ -841,7 +841,7 @@ index 8c33a12ca879c46893150d6adfb8aa4d397c6b4c..7088c8e8a7eba566fa91f5fa2995cd72 } } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3fe14f5f135249ea9004589a86ed372aeb4667f8..3e3f92cb5b740badf78133b0a942794860ddd1bb 100644 +index 3721a45fbc38d6fc92cc8ba5080c7bd18b8d006c..add727490a4513342914e94a57e4674310777b5a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -216,6 +216,7 @@ public class ServerLevel extends Level implements WorldGenLevel {