diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java index 4e15db5b6d..c2d49ff3ae 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -1287,6 +1287,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.