Paper/Spigot-Server-Patches/0079-Set-health-before-death-event.patch
Zach Brown 974b0afca9
Remove last bit of chunk exists region file fix
CraftBukkit removed their implementation that caused this issue,
switching to Mojang's implementation which doesn't appear to share it. I
already removed the important bit in the last upstream merge, this is
just unused and unnecessary now. So we remove it.
2017-04-29 05:27:31 -05:00

50 lines
2.0 KiB
Diff

From 4cea4a67fa45178c59807df4f21b86b09b88574e Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sun, 19 Jul 2015 16:51:38 -0400
Subject: [PATCH] Set health before death event
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index b5ff26c71..6907d4680 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -215,4 +215,9 @@ public class PaperConfig {
private static void loadPermsBeforePlugins() {
loadPermsBeforePlugins = getBoolean("settings.load-permissions-yml-before-plugins", true);
}
+
+ public static boolean setHealthBeforeDeathEvent = false;
+ private static void healthDeath() {
+ setHealthBeforeDeathEvent = getBoolean("settings.set-health-before-death-event", false);
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 348a8c758..c0103cb39 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -102,11 +102,20 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+ (this instanceof CraftPlayer ? ", player: " + this.getName() + ')' : ')'));
}
+ // Paper start
+ if (com.destroystokyo.paper.PaperConfig.setHealthBeforeDeathEvent) {
+ this.getHandle().setHealth((float) health);
+ }
+
if (health == 0) {
getHandle().die(DamageSource.GENERIC);
}
- getHandle().setHealth((float) health);
+ // Paper start - wrap, see above
+ if (!com.destroystokyo.paper.PaperConfig.setHealthBeforeDeathEvent) {
+ getHandle().setHealth((float) health);
+ }
+ // Paper end
}
public double getMaxHealth() {
--
2.12.2.windows.2