summaryrefslogtreecommitdiffhomepage
path: root/patches/unapplied/server/0750-Fix-Spigot-growth-modifiers.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/unapplied/server/0750-Fix-Spigot-growth-modifiers.patch')
-rw-r--r--patches/unapplied/server/0750-Fix-Spigot-growth-modifiers.patch125
1 files changed, 125 insertions, 0 deletions
diff --git a/patches/unapplied/server/0750-Fix-Spigot-growth-modifiers.patch b/patches/unapplied/server/0750-Fix-Spigot-growth-modifiers.patch
new file mode 100644
index 0000000000..55460b9460
--- /dev/null
+++ b/patches/unapplied/server/0750-Fix-Spigot-growth-modifiers.patch
@@ -0,0 +1,125 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jason Penilla <[email protected]>
+Date: Fri, 3 Dec 2021 17:09:24 -0800
+Subject: [PATCH] Fix Spigot growth modifiers
+
+Fixes kelp modifier changing growth for other crops
+Also add growth modifiers for glow berries, mangrove propagules
+and torchflower crops
+Also fix above-mentioned modifiers from having the reverse effect
+
+Co-authored-by: Jake Potrebic <[email protected]>
+Co-authored-by: Noah van der Aa <[email protected]>
+Co-authored-by: Lulu13022002 <[email protected]>
+
+diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
+index 55f2fa02a36f0500b47f9ce377926719557106e5..18b5bce1138d50be32e5da013221be69dc47e21f 100644
+--- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
++++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java
+@@ -47,9 +47,17 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl
+
+ @Override
+ protected BlockState getGrowIntoState(BlockState state, RandomSource random) {
+- return super.getGrowIntoState(state, random).setValue(BERRIES, Boolean.valueOf(random.nextFloat() < 0.11F));
++ // Paper start
++ return this.getGrowIntoState(state, random, null);
+ }
+
++ @Override
++ protected BlockState getGrowIntoState(BlockState state, RandomSource random, @javax.annotation.Nullable Level level) {
++ final boolean value = random.nextFloat() < (level != null ? (0.11F * (level.spigotConfig.glowBerryModifier / 100.0F)) : 0.11F);
++ return (BlockState) super.getGrowIntoState(state, random).setValue(CaveVinesBlock.BERRIES, value);
++ }
++ // Paper end
++
+ @Override
+ public ItemStack getCloneItemStack(BlockGetter world, BlockPos pos, BlockState state) {
+ return new ItemStack(Items.GLOW_BERRIES);
+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 519d02a2009c4f09c9e8be7196a701f0f042012d..a140fed067e7e6c1c42e111f47d3678863ef95ce 100644
+--- a/src/main/java/net/minecraft/world/level/block/CropBlock.java
++++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java
+@@ -84,6 +84,10 @@ public class CropBlock extends BushBlock implements BonemealableBlock {
+ modifier = world.spigotConfig.carrotModifier;
+ } else if (this == Blocks.POTATOES) {
+ modifier = world.spigotConfig.potatoModifier;
++ // Paper start
++ } else if (this == Blocks.TORCHFLOWER_CROP) {
++ modifier = world.spigotConfig.torchFlowerModifier;
++ // Paper end
+ } else {
+ modifier = world.spigotConfig.wheatModifier;
+ }
+diff --git a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
+index 53b91cf8092b46dbf45afea9ccf439d565d1914a..3a1aa4e2405090ccebefb7f5944f36462929e221 100644
+--- a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
++++ b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java
+@@ -56,12 +56,18 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements
+ BlockPos blockposition1 = pos.relative(this.growthDirection);
+
+ if (this.canGrowInto(world.getBlockState(blockposition1))) {
+- org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, this.getGrowIntoState(state, world.random)); // CraftBukkit
++ org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, this.getGrowIntoState(state, world.random, world)); // CraftBukkit // Paper
+ }
+ }
+
+ }
+
++ // Paper start
++ protected BlockState getGrowIntoState(BlockState state, RandomSource random, @javax.annotation.Nullable Level level) {
++ return this.getGrowIntoState(state, random);
++ }
++ // Paper end
++
+ protected BlockState getGrowIntoState(BlockState state, RandomSource random) {
+ return (BlockState) state.cycle(GrowingPlantHeadBlock.AGE);
+ }
+diff --git a/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java b/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java
+index 5d78348fc18b22ccb7ad109890f867e20efec047..44c78f0d56c3459c063c104e401a521e3df7d8e5 100644
+--- a/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java
++++ b/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java
+@@ -89,7 +89,7 @@ public class MangrovePropaguleBlock extends SaplingBlock implements SimpleWaterl
+ @Override
+ public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) {
+ if (!isHanging(state)) {
+- if (random.nextInt(7) == 0) {
++ if (random.nextFloat() < (world.spigotConfig.saplingModifier / (100.0F * 7))) { // Paper
+ this.advanceTree(world, pos, state, random);
+ }
+
+diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
+index 102b038e2566cba4f259a61e502ff0808c47234c..ccbbc64b0ffaf055f98db71acaed9f51591f0594 100644
+--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
++++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
+@@ -96,6 +96,7 @@ public class SpigotWorldConfig
+ public int beetrootModifier;
+ public int carrotModifier;
+ public int potatoModifier;
++ public int torchFlowerModifier; // Paper
+ public int wheatModifier;
+ public int wartModifier;
+ public int vineModifier;
+@@ -106,6 +107,7 @@ public class SpigotWorldConfig
+ public int twistingVinesModifier;
+ public int weepingVinesModifier;
+ public int caveVinesModifier;
++ public int glowBerryModifier; // Paper
+ private int getAndValidateGrowth(String crop)
+ {
+ int modifier = this.getInt( "growth." + crop.toLowerCase(java.util.Locale.ENGLISH) + "-modifier", 100 );
+@@ -129,6 +131,7 @@ public class SpigotWorldConfig
+ this.beetrootModifier = this.getAndValidateGrowth( "Beetroot" );
+ this.carrotModifier = this.getAndValidateGrowth( "Carrot" );
+ this.potatoModifier = this.getAndValidateGrowth( "Potato" );
++ this.torchFlowerModifier = this.getAndValidateGrowth("TorchFlower"); // Paper
+ this.wheatModifier = this.getAndValidateGrowth( "Wheat" );
+ this.wartModifier = this.getAndValidateGrowth( "NetherWart" );
+ this.vineModifier = this.getAndValidateGrowth( "Vine" );
+@@ -139,6 +142,7 @@ public class SpigotWorldConfig
+ this.twistingVinesModifier = this.getAndValidateGrowth( "TwistingVines" );
+ this.weepingVinesModifier = this.getAndValidateGrowth( "WeepingVines" );
+ this.caveVinesModifier = this.getAndValidateGrowth( "CaveVines" );
++ this.glowBerryModifier = this.getAndValidateGrowth("GlowBerry"); // Paper
+ }
+
+ public double itemMerge;