From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lama06 Date: Sat, 21 Jan 2023 13:45:22 +0100 Subject: [PATCH] Win Screen API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java index b9c8ca96b36050b2420c9f168bc15767f751ec23..5e1a706fb68658061ab5c29cba82d411716e5692 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1135,6 +1135,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendMap(@NotNull MapView map); + // Paper start + /** + * Shows the player the win screen that normally is only displayed after one kills the ender dragon + * and exits the end for the first time. + * In vanilla, the win screen starts with a poem and then continues with the credits but its content can be + * changed by using a resource pack. + *
+ * Calling this method does not change the value of {@link #hasSeenWinScreen()}. + * That means that the win screen is still displayed to a player if they leave the end for the first time, even though + * they have seen it before because this method was called. + * Note this method does not make the player invulnerable, which is normally expected when viewing credits. + * + * @see #hasSeenWinScreen() + * @see #setHasSeenWinScreen(boolean) + * @see https://minecraft.wiki/wiki/End_Poem#Technical_details + */ + public void showWinScreen(); + + /** + * Returns whether this player has seen the win screen before. + * When a player leaves the end the win screen is shown to them if they have not seen it before. + * + * @return Whether this player has seen the win screen before + * @see #setHasSeenWinScreen(boolean) + * @see #showWinScreen() + * @see https://minecraft.wiki/wiki/End_Poem + */ + public boolean hasSeenWinScreen(); + + /** + * Changes whether this player has seen the win screen before. + * When a player leaves the end the win screen is shown to them if they have not seen it before. + * + * @param hasSeenWinScreen Whether this player has seen the win screen before + * @see #hasSeenWinScreen() + * @see #showWinScreen() + * @see https://minecraft.wiki/wiki/End_Poem + */ + public void setHasSeenWinScreen(boolean hasSeenWinScreen); + // Paper end + // Paper start /** * Permanently Bans the Profile and IP address currently used by the player.