Files
Purpur/patches/server/0140-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch
BillyGalbreath 59439785d9 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
cc0494817 Tick inactive goal selectors
c19ec6394 fix 4878 by always calling events using bukkit singleton
5d216be1d Fix MC-181190 curing zombie villager discount exploit (#4871)
2020-12-09 19:36:38 -06:00

125 lines
6.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <blake.galbreath@gmail.com>
Date: Sun, 22 Nov 2020 20:13:27 -0600
Subject: [PATCH] Kelp weeping and twisting vines configurable max growth age
diff --git a/src/main/java/net/minecraft/server/BlockGrowingTop.java b/src/main/java/net/minecraft/server/BlockGrowingTop.java
index 6c084ad5cd..6d49422c33 100644
--- a/src/main/java/net/minecraft/server/BlockGrowingTop.java
+++ b/src/main/java/net/minecraft/server/BlockGrowingTop.java
@@ -15,7 +15,7 @@ public abstract class BlockGrowingTop extends BlockGrowingAbstract implements IB
@Override
public IBlockData a(GeneratorAccess generatoraccess) {
- return (IBlockData) this.getBlockData().set(BlockGrowingTop.d, generatoraccess.getRandom().nextInt(25));
+ return (IBlockData) this.getBlockData().set(BlockGrowingTop.d, generatoraccess.getRandom().nextInt(getMaxGrowthAge(generatoraccess.getMinecraftWorld()))); // Purpur
}
@Override
@@ -25,9 +25,11 @@ public abstract class BlockGrowingTop extends BlockGrowingAbstract implements IB
public abstract double getGrowthModifier(WorldServer worldserver); // Purpur
+ public abstract int getMaxGrowthAge(WorldServer worldserver); // Purpur
+
@Override
public void tick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
- if ((Integer) iblockdata.get(BlockGrowingTop.d) < 25 && random.nextDouble() < (100.0D / getGrowthModifier(worldserver)) * this.e) { // Spigot // Purpur
+ if ((Integer) iblockdata.get(BlockGrowingTop.d) < getMaxGrowthAge(worldserver) && random.nextDouble() < (100.0D / getGrowthModifier(worldserver)) * this.e) { // Spigot // Purpur
BlockPosition blockposition1 = blockposition.shift(this.a);
if (this.h(worldserver.getType(blockposition1))) {
@@ -72,13 +74,13 @@ public abstract class BlockGrowingTop extends BlockGrowingAbstract implements IB
@Override
public void a(WorldServer worldserver, Random random, BlockPosition blockposition, IBlockData iblockdata) {
BlockPosition blockposition1 = blockposition.shift(this.a);
- int i = Math.min((Integer) iblockdata.get(BlockGrowingTop.d) + 1, 25);
+ int i = Math.min((Integer) iblockdata.get(BlockGrowingTop.d) + 1, getMaxGrowthAge(worldserver)); // Purpur
int j = this.a(random);
for (int k = 0; k < j && this.h(worldserver.getType(blockposition1)); ++k) {
worldserver.setTypeUpdate(blockposition1, (IBlockData) iblockdata.set(BlockGrowingTop.d, i));
blockposition1 = blockposition1.shift(this.a);
- i = Math.min(i + 1, 25);
+ i = Math.min(i + 1, getMaxGrowthAge(worldserver)); // Purpur
}
}
diff --git a/src/main/java/net/minecraft/server/BlockKelp.java b/src/main/java/net/minecraft/server/BlockKelp.java
index 2a7a6e5943..b35c115e34 100644
--- a/src/main/java/net/minecraft/server/BlockKelp.java
+++ b/src/main/java/net/minecraft/server/BlockKelp.java
@@ -58,5 +58,9 @@ public class BlockKelp extends BlockGrowingTop implements IFluidContainer {
public double getGrowthModifier(WorldServer worldserver) {
return worldserver.spigotConfig.kelpModifier;
}
+
+ public int getMaxGrowthAge(WorldServer worldserver) {
+ return worldserver.purpurConfig.kelpMaxGrowthAge;
+ }
// Purpur end
}
diff --git a/src/main/java/net/minecraft/server/BlockTwistingVines.java b/src/main/java/net/minecraft/server/BlockTwistingVines.java
index 146638111c..71b9b7183d 100644
--- a/src/main/java/net/minecraft/server/BlockTwistingVines.java
+++ b/src/main/java/net/minecraft/server/BlockTwistingVines.java
@@ -29,5 +29,9 @@ public class BlockTwistingVines extends BlockGrowingTop {
public double getGrowthModifier(WorldServer worldserver) {
return worldserver.purpurConfig.twistingVinesGrowthModifier;
}
+
+ public int getMaxGrowthAge(WorldServer worldserver) {
+ return worldserver.purpurConfig.twistingVinesMaxGrowthAge;
+ }
// Purpur end
}
diff --git a/src/main/java/net/minecraft/server/BlockWeepingVines.java b/src/main/java/net/minecraft/server/BlockWeepingVines.java
index 94ffadb91f..067df63ab2 100644
--- a/src/main/java/net/minecraft/server/BlockWeepingVines.java
+++ b/src/main/java/net/minecraft/server/BlockWeepingVines.java
@@ -29,5 +29,9 @@ public class BlockWeepingVines extends BlockGrowingTop {
public double getGrowthModifier(WorldServer worldserver) {
return worldserver.purpurConfig.weepingVinesGrowthModifier;
}
+
+ public int getMaxGrowthAge(WorldServer worldserver) {
+ return worldserver.purpurConfig.weepingVinesMaxGrowthAge;
+ }
// Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 7d4e84bb85..3ed6fbed70 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -355,6 +355,11 @@ public class PurpurWorldConfig {
furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel);
}
+ public int kelpMaxGrowthAge = 25;
+ private void kelpSettings() {
+ kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge);
+ }
+
public boolean lavaInfinite = false;
public int lavaInfiniteRequiredSources = 2;
public int lavaSpeedNether = 10;
@@ -409,13 +414,17 @@ public class PurpurWorldConfig {
}
public double twistingVinesGrowthModifier = 0.10D;
+ public int twistingVinesMaxGrowthAge = 25;
private void twistingVinesSettings() {
twistingVinesGrowthModifier = getDouble("blocks.twisting_vines.growth-modifier", twistingVinesGrowthModifier);
+ twistingVinesMaxGrowthAge = getInt("blocks.twisting_vines.max-growth-age", twistingVinesMaxGrowthAge);
}
public double weepingVinesGrowthModifier = 0.10D;
+ public int weepingVinesMaxGrowthAge = 25;
private void weepingVinesSettings() {
weepingVinesGrowthModifier = getDouble("blocks.weeping_vines.growth-modifier", weepingVinesGrowthModifier);
+ weepingVinesMaxGrowthAge = getInt("blocks.weeping_vines.max-growth-age", weepingVinesMaxGrowthAge);
}
public boolean babiesAreRidable = true;