papermc/patches/api/0342-Add-player-health-update-API.patch
Nassim Jahnke 385f313a8b
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#8092)
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:
d41796de SPIGOT-7071: Add Player#stopSound(SoundCategory category)
61dae5b2 SPIGOT-7011, SPIGOT-7065: Overhaul of structures

CraftBukkit Changes:
991aeda12 SPIGOT-1729, SPIGOT-7090: Keep precision in teleportation between worlds
5c9a5f628 SPIGOT-7071: Add Player#stopSound(SoundCategory category)
68f888ded SPIGOT-7011, SPIGOT-7065: Overhaul of structures
0231a3746 Remove outdated build delay.

Spigot Changes:
475f6008 Rebuild patches
8ce1761f Rebuild patches
2022-07-04 16:38:06 +02:00

42 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 792441dd8465edd1e6c2ffcbb8b2823a5884554f..b2b28b48e6e7d9f32460b8a65cbe294be4812bd9 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1886,6 +1886,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}.