More Win Screen API (#8805)
Adds methods to get and set whether a player has seen the win screen before.
Dieser Commit ist enthalten in:
Ursprung
de38a45c34
Commit
7e7e6b4bab
@ -5,10 +5,10 @@ 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
|
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||||
index 1604351236f748b5009eed29f6051e68092d6090..b0bd8194d263f6986e80b7d9848297a2bf27a112 100644
|
index 1604351236f748b5009eed29f6051e68092d6090..d7d94b954262da0cbe11850cbc3ebd45e32c8c76 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||||
@@ -861,6 +861,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
@@ -861,6 +861,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||||
*/
|
*/
|
||||||
public void sendMap(@NotNull MapView map);
|
public void sendMap(@NotNull MapView map);
|
||||||
|
|
||||||
@ -18,10 +18,39 @@ index 1604351236f748b5009eed29f6051e68092d6090..b0bd8194d263f6986e80b7d9848297a2
|
|||||||
+ * and exits the end for the first time.
|
+ * 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
|
+ * 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.
|
+ * 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>
|
+ * @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();
|
+ 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 end
|
||||||
+
|
+
|
||||||
// Paper start
|
// Paper start
|
||||||
|
@ -3,12 +3,14 @@ From: Lama06 <andreasprues36@gmail.com>
|
|||||||
Date: Sat, 21 Jan 2023 13:53:23 +0100
|
Date: Sat, 21 Jan 2023 13:53:23 +0100
|
||||||
Subject: [PATCH] Win Screen API
|
Subject: [PATCH] Win Screen API
|
||||||
|
|
||||||
|
== AT ==
|
||||||
|
public net.minecraft.server.level.ServerPlayer seenCredits
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index ded1f3034da67d89efaf4b31620ea2e43002f41d..616d0c3b72c7a5fcc67981c1919a4dece904d017 100644
|
index 5ec97491d6c2888e360de1d53f3edcc75ccac95a..03430916a8107c1b0f04d84e1dce494e2da06e7a 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -1179,6 +1179,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -1179,6 +1179,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
this.getHandle().connection.send(packet);
|
this.getHandle().connection.send(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -19,6 +21,16 @@ index ded1f3034da67d89efaf4b31620ea2e43002f41d..616d0c3b72c7a5fcc67981c1919a4dec
|
|||||||
+ var packet = new ClientboundGameEventPacket(ClientboundGameEventPacket.WIN_GAME, 1);
|
+ var packet = new ClientboundGameEventPacket(ClientboundGameEventPacket.WIN_GAME, 1);
|
||||||
+ getHandle().connection.send(packet);
|
+ getHandle().connection.send(packet);
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean hasSeenWinScreen() {
|
||||||
|
+ return getHandle().seenCredits;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void setHasSeenWinScreen(boolean hasSeenWinScreen) {
|
||||||
|
+ getHandle().seenCredits = hasSeenWinScreen;
|
||||||
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
+
|
+
|
||||||
@Override
|
@Override
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren