aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0405-Win-Screen-API.patch
blob: 9b70b0da1b8d4ce457b3bec55ccd7de1be119833 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Lama06 <andreasprues36@gmail.com>
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 ce6e913b7bec56d2c64d50fc2848be748f023de5..41e900329090706f2999ae2f67e763b03190acdf 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1072,6 +1072,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.
+     * <br>
+     * 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 <a href="https://minecraft.fandom.com/wiki/End_Poem#Technical_details">https://minecraft.fandom.com/wiki/End_Poem#Technical_details</a>
+     */
+    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 <a href="https://minecraft.fandom.com/wiki/End_Poem">https://minecraft.fandom.com/wiki/End_Poem</a>
+     */
+    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 <a href="https://minecraft.fandom.com/wiki/End_Poem">https://minecraft.fandom.com/wiki/End_Poem</a>
+     */
+    public void setHasSeenWinScreen(boolean hasSeenWinScreen);
+    // Paper end
+
     // Paper start
     /**
      * Permanently Bans the Profile and IP address currently used by the player.