Paper/patches/api/0327-Add-player-health-update-API.patch
Jake Potrebic 41e6f20420
Updated Upstream (Bukkit/CraftBukkit) (#9342)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
fdff0cd4 PR-869: Add Enderman#teleport and Enderman#teleportTowards
dfd86ee7 Improve sendSignChange and related documentation
beced2b2 PR-867: Add Player#sendBlockUpdate to send tile entity updates

CraftBukkit Changes:
ad6d0cffb SPIGOT-7394: Fix another issue with sendSignChange
66c5ce4c7 SPIGOT-7391: Preserve vanilla sign json where not modified by event
ae3824f94 PR-1204: Add Enderman#teleport and Enderman#teleportTowards
5863a2eae Fix sendSignChange not working
4a7eadc97 PR-1201: Add Player#sendBlockUpdate to send tile entity updates
789324e30 Work around issue placing decorated pots
2023-06-16 11:28:31 +01:00

43 lines
1.8 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: SamB440 <sam@islandearth.net>
Date: Wed, 17 Nov 2021 12:30:36 +0000
Subject: [PATCH] Add player health update API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index e897c373406aa0105b1060549469590585d5c78d..18e098920193438d171ca57e505e20c6c96742ae 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2118,6 +2118,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
public double getHealthScale();
+ // Paper start
+ /**
+ * Forcefully sends a health update to the player.
+ * <p>This method can cause the client to display health values
+ * different to their true server values. If the player takes damage or
+ * causes an action to otherwise cause a health update, these values
+ * will no longer be shown.</p>
+ * Setting the visible health to 0 will result in the client seeing
+ * the death screen, unable to press the respawn button.
+ * @see #sendHealthUpdate()
+ * @param health the health of the player
+ * @param foodLevel the food level of the player
+ * @param saturationLevel the saturation level of the player
+ */
+ public void sendHealthUpdate(final double health, final int foodLevel, final float saturationLevel);
+
+ /**
+ * Forcefully sends a health update to the player.
+ * This uses the player's current health, saturation, and food level.
+ * <p>Use after {@link #setHealth(double)} to show the heart animation
+ * of gaining or losing health.</p>
+ */
+ public void sendHealthUpdate();
+ // Paper end
+
/**
* Gets the entity which is followed by the camera when in
* {@link GameMode#SPECTATOR}.