aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0025-Configurable-top-of-nether-void-damage.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0025-Configurable-top-of-nether-void-damage.patch')
-rw-r--r--Spigot-Server-Patches/0025-Configurable-top-of-nether-void-damage.patch91
1 files changed, 91 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0025-Configurable-top-of-nether-void-damage.patch b/Spigot-Server-Patches/0025-Configurable-top-of-nether-void-damage.patch
new file mode 100644
index 0000000000..64e5cff1dd
--- /dev/null
+++ b/Spigot-Server-Patches/0025-Configurable-top-of-nether-void-damage.patch
@@ -0,0 +1,91 @@
+From 52e6992f765e671f1ed612870e81947d646aca17 Mon Sep 17 00:00:00 2001
+From: Zach Brown <[email protected]>
+Date: Tue, 1 Mar 2016 23:58:50 -0600
+Subject: [PATCH] Configurable top of nether void damage
+
+
+diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+index 62e6830aa..e524a464f 100644
+--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+@@ -137,4 +137,10 @@ public class PaperWorldConfig {
+ waterOverLavaFlowSpeed = getInt("water-over-lava-flow-speed", 5);
+ log("Water over lava flow speed: " + waterOverLavaFlowSpeed);
+ }
++
++ public boolean netherVoidTopDamage;
++ private void netherVoidTopDamage() {
++ netherVoidTopDamage = getBoolean( "nether-ceiling-void-damage", false );
++ log("Top of the nether void damage: " + netherVoidTopDamage);
++ }
+ }
+diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
+index 313100aed..7feed2995 100644
+--- a/src/main/java/net/minecraft/server/Entity.java
++++ b/src/main/java/net/minecraft/server/Entity.java
+@@ -442,9 +442,15 @@ public abstract class Entity implements ICommandListener {
+ this.fallDistance *= 0.5F;
+ }
+
++ // Paper start - Configurable nether ceiling damage
++ // Extracted to own function
++ /*
+ if (this.locY < -64.0D) {
+ this.Y();
+ }
++ */
++ this.checkAndDoHeightDamage();
++ // Paper end
+
+ if (!this.world.isClientSide) {
+ this.setFlag(0, this.fireTicks > 0);
+@@ -454,6 +460,18 @@ public abstract class Entity implements ICommandListener {
+ this.world.methodProfiler.b();
+ }
+
++ // Paper start - Configurable top of nether void damage
++ private boolean paperNetherCheck() {
++ return this.world.paperConfig.netherVoidTopDamage && this.world.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER && this.locY >= 128.0D;
++ }
++
++ protected void checkAndDoHeightDamage() {
++ if (this.locY < -64.0D || paperNetherCheck()) {
++ this.kill();
++ }
++ }
++ // Paper end
++
+ protected void H() {
+ if (this.portalCooldown > 0) {
+ --this.portalCooldown;
+@@ -510,6 +528,7 @@ public abstract class Entity implements ICommandListener {
+ this.fireTicks = 0;
+ }
+
++ protected final void kill() { this.Y(); } // Paper - OBFHELPER
+ protected void Y() {
+ this.die();
+ }
+diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+index fd3337d3f..ca1faa41d 100644
+--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
++++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+@@ -204,9 +204,15 @@ public abstract class EntityMinecartAbstract extends Entity implements INamableT
+ this.setDamage(this.getDamage() - 1.0F);
+ }
+
++ // Paper start - Configurable nether ceiling damage
++ // Extracted to own function
++ /*
+ if (this.locY < -64.0D) {
+ this.Y();
+ }
++ */
++ this.checkAndDoHeightDamage();
++ // Paper end
+
+ int i;
+
+--
+2.12.2
+