From 22251c19e0a10fa2073fa1e2d3c9e7641c652396 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 7f02ac219..0b4468726 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -209,4 +209,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.0.windows.1