From b62a77541e096a2f2f265d404adc1bd6a8b5bf17 Mon Sep 17 00:00:00 2001 From: Jedediah Smith 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 4a4043e..c1c168a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -200,4 +200,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 79d60a6..b807a3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -98,11 +98,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.10.0.windows.1