From aaca06a70159e5a8b8be8f71820311e886f10951 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 7da844e43..4103d4966 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 392e72bb5..a7ca9a508 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -99,11 +99,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.11.0