diff --git a/nms-patches/EntityLiving.patch b/nms-patches/EntityLiving.patch index 2d7a54d832..63e1349454 100644 --- a/nms-patches/EntityLiving.patch +++ b/nms-patches/EntityLiving.patch @@ -368,7 +368,7 @@ + player.setRealHealth(f); + } + -+ player.updateScaledHealth(); ++ player.updateScaledHealth(false); + return; + } + // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 675d5a4eab..b72fd02217 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1467,6 +1467,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void updateScaledHealth() { + updateScaledHealth(true); + } + + public void updateScaledHealth(boolean sendHealth) { AttributeMapServer attributemapserver = (AttributeMapServer) getHandle().getAttributeMap(); Collection set = attributemapserver.c(); // PAIL: Rename @@ -1475,7 +1479,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // SPIGOT-3813: Attributes before health if (getHandle().playerConnection != null) { getHandle().playerConnection.sendPacket(new PacketPlayOutUpdateAttributes(getHandle().getId(), set)); - sendHealthUpdate(); + if (sendHealth) { + sendHealthUpdate(); + } } getHandle().getDataWatcher().set(EntityLiving.HEALTH, (float) getScaledHealth());