diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index 7b21047e5..b5157aa4b 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -312,6 +312,10 @@ gameplay-mechanics - **default**: false - **description**: Boats should eject players when on land +* void-damage-height + - **default**: -64.0 + - **description**: Lower limit where void damage starts to happen + * controllable-minecarts * enabled - **default**: true diff --git a/patches/server/0103-Configurable-void-damage-height.patch b/patches/server/0103-Configurable-void-damage-height.patch new file mode 100644 index 000000000..8869ab8a8 --- /dev/null +++ b/patches/server/0103-Configurable-void-damage-height.patch @@ -0,0 +1,46 @@ +From a47c3e1dd8f770cd3fc64916bb9d6962dd0067c5 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Thu, 27 Feb 2020 21:42:19 -0600 +Subject: [PATCH] Configurable void damage height + +--- + src/main/java/net/minecraft/server/Entity.java | 2 +- + src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java +index 98aef47056..576742ddfc 100644 +--- a/src/main/java/net/minecraft/server/Entity.java ++++ b/src/main/java/net/minecraft/server/Entity.java +@@ -451,7 +451,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke + + // Paper start + protected void performVoidDamage() { +- if (this.locY < -64.0D || (this.world.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER ++ if (this.locY < world.purpurConfig.voidDamageHeight || (this.world.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER + && world.paperConfig.doNetherTopVoidDamage() + && this.locY >= world.paperConfig.netherVoidTopDamageHeight)) { + +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 7aed41f0f9..c7a7c8636c 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -198,6 +198,7 @@ public class PurpurWorldConfig { + public String playerSleepCondition = "time >= 12541 && time <= 23458"; + public boolean useBetterMending = false; + public boolean saveProjectilesToDisk = true; ++ public double voidDamageHeight = -64.0D; + private void gameplayMechanicsSettings() { + armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); + boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); +@@ -254,6 +255,7 @@ public class PurpurWorldConfig { + set("gameplay-mechanics.saveProjectilesToDisk", null); + } + saveProjectilesToDisk = getBoolean("gameplay-mechanics.save-projectiles-to-disk", saveProjectilesToDisk); ++ voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); + } + + public int elytraDamagePerSecond = 1; +-- +2.24.0 +