aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0841-Make-water-animal-spawn-height-configurable.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0841-Make-water-animal-spawn-height-configurable.patch')
-rw-r--r--patches/server/0841-Make-water-animal-spawn-height-configurable.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/patches/server/0841-Make-water-animal-spawn-height-configurable.patch b/patches/server/0841-Make-water-animal-spawn-height-configurable.patch
new file mode 100644
index 0000000000..70d7bcd1a9
--- /dev/null
+++ b/patches/server/0841-Make-water-animal-spawn-height-configurable.patch
@@ -0,0 +1,50 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Brokkonaut <[email protected]>
+Date: Sat, 18 Dec 2021 08:26:55 +0100
+Subject: [PATCH] Make water animal spawn height configurable
+
+
+diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+index c9eefc9455e3db248216a38cd6120cdfa27c1eab..bcac771024f406e2b60739162671a5d5bdbb39cd 100644
+--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+@@ -385,6 +385,24 @@ public class PaperWorldConfig {
+ mobSpawnerTickRate = getInt("mob-spawner-tick-rate", 1);
+ }
+
++ public Integer waterAnimalMaxSpawnHeight;
++ private void waterAnimalMaxSpawnHeight() {
++ String v = getString("wateranimal-spawn-height.maximum", "default");
++ try {
++ waterAnimalMaxSpawnHeight = Integer.parseInt(v);
++ } catch (NumberFormatException ignored) {
++ }
++ }
++
++ public Integer waterAnimalMinSpawnHeight;
++ private void waterAnimalMinSpawnHeight() {
++ String v = getString("wateranimal-spawn-height.minimum", "default");
++ try {
++ waterAnimalMinSpawnHeight = Integer.parseInt(v);
++ } catch (NumberFormatException ignored) {
++ }
++ }
++
+ public int containerUpdateTickRate;
+ private void containerUpdateTickRate() {
+ containerUpdateTickRate = getInt("container-update-tick-rate", 1);
+diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
+index 69f7e034cab1bfd7ca5dffc660b6decd739adf35..c039b896ee85543c26a8ab76640080f539deaa4c 100644
+--- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
++++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
+@@ -79,6 +79,10 @@ public abstract class WaterAnimal extends PathfinderMob {
+ public static boolean checkSurfaceWaterAnimalSpawnRules(EntityType<? extends WaterAnimal> type, LevelAccessor world, MobSpawnType reason, BlockPos pos, Random random) {
+ int i = world.getSeaLevel();
+ int j = i - 13;
++ // Paper start
++ i = world.getMinecraftWorld().paperConfig.waterAnimalMaxSpawnHeight != null ? world.getMinecraftWorld().paperConfig.waterAnimalMaxSpawnHeight : i;
++ j = world.getMinecraftWorld().paperConfig.waterAnimalMinSpawnHeight != null ? world.getMinecraftWorld().paperConfig.waterAnimalMinSpawnHeight : j;
++ // Paper end
+ return pos.getY() >= j && pos.getY() <= i && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER);
+ }
+ }