summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nms-patches/EntityLiving.patch2
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java7
2 files changed, 6 insertions, 3 deletions
diff --git a/nms-patches/EntityLiving.patch b/nms-patches/EntityLiving.patch
index 1fd9494f..1521d5c8 100644
--- a/nms-patches/EntityLiving.patch
+++ b/nms-patches/EntityLiving.patch
@@ -257,7 +257,7 @@
+ player.setRealHealth(f);
+ }
+
-+ this.datawatcher.set(EntityLiving.HEALTH, Float.valueOf(player.getScaledHealth()));
++ player.updateScaledHealth();
+ 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 20059b94..1866d521 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1382,9 +1382,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
injectScaledMaxHealth(set, true);
+ // SPIGOT-3813: Attributes before health
+ if (getHandle().playerConnection != null) {
+ getHandle().playerConnection.sendPacket(new PacketPlayOutUpdateAttributes(getHandle().getId(), set));
+ sendHealthUpdate();
+ }
getHandle().getDataWatcher().set(EntityLiving.HEALTH, (float) getScaledHealth());
- sendHealthUpdate();
- getHandle().playerConnection.sendPacket(new PacketPlayOutUpdateAttributes(getHandle().getId(), set));
getHandle().maxHealthCache = getMaxHealth();
}