aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0344-Add-player-health-update-API.patch
blob: 342d83835c965223fea58b7710d2cd74a4b388d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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 ecd1a8c13137adc880067f9e911e8b1a08c5cd14..5e4a9ce5f899624255e806152c59f60664bcf701 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1821,6 +1821,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}.