PaperMC/patches/api/0389-Add-Player-Warden-Warning-API.patch
Jake Potrebic 531ef27e89
Use ApiStatus.Internal instead of Deprecated (#9042)
Mainly correctly marks a lot of still used "magic values"
as Internal instead of "Deprecated".
2023-11-11 13:52:32 -08:00

70 lines
2.5 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: dawon <dawon@dawon.eu>
Date: Sat, 15 Oct 2022 00:46:32 +0200
Subject: [PATCH] Add Player Warden Warning API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index ae1882f58dcc55c51757fa385effd329d348b896..bd35d2da3ef437e7025ea86265ebcc693399ac83 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3141,6 +3141,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param silent whether sound should be silenced
*/
void showElderGuardian(boolean silent);
+
+ /**
+ * Returns the player's cooldown in ticks until the next Warden warning can occur.
+ *
+ * @return ticks until next Warden warning can occur. 0 means there is no cooldown left.
+ */
+ int getWardenWarningCooldown();
+
+ /**
+ * Sets the player's cooldown in ticks until next Warden warning can occur.
+ *
+ * @param cooldown ticks until next Warden warning can occur. 0 means there is no cooldown left. Values less than 0 are set to 0.
+ */
+ void setWardenWarningCooldown(int cooldown);
+
+ /**
+ * Returns time since last Warden warning in ticks.
+ *
+ * @return ticks since last Warden warning
+ */
+ int getWardenTimeSinceLastWarning();
+
+ /**
+ * Sets time since last Warden warning in ticks.
+ *
+ * @param time ticks since last Warden warning
+ */
+ void setWardenTimeSinceLastWarning(int time);
+
+ /**
+ * Returns the player's current Warden warning level.
+ *
+ * @return current Warden warning level
+ */
+ int getWardenWarningLevel();
+
+ /**
+ * Sets the player's Warden warning level.
+ * <p>
+ * <b>Note:</b> This will not actually spawn the Warden.
+ * Even if the warning level is over threshold, the player still needs to activate a Shrieker in order to summon the Warden.
+ *
+ * @param warningLevel player's Warden warning level. The warning level is internally limited to valid values.
+ */
+ void setWardenWarningLevel(int warningLevel);
+
+ /**
+ * Increases the player's Warden warning level if possible and not on cooldown.
+ * <p>
+ * <b>Note:</b> This will not actually spawn the Warden.
+ * Even if the warning level is over threshold, the player still needs to activate a Shrieker in order to summon the Warden.
+ */
+ void increaseWardenWarningLevel();
// Paper end
@NotNull