From e9c4b62f7efcf29a4edd76b6cd0db8971c8701c9 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Thu, 22 Apr 2021 17:17:54 -0700 Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent --- .../event/player/PlayerRespawnEvent.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerRespawnEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerRespawnEvent.java index 7e76588617..4d925774f7 100644 --- a/paper-api/src/main/java/org/bukkit/event/player/PlayerRespawnEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerRespawnEvent.java @@ -18,6 +18,7 @@ public class PlayerRespawnEvent extends PlayerEvent { private final boolean isBedSpawn; private final boolean isAnchorSpawn; private final RespawnReason respawnReason; + private final java.util.Set respawnFlags; // Paper @Deprecated(since = "1.16.1") public PlayerRespawnEvent(@NotNull final Player respawnPlayer, @NotNull final Location respawnLocation, final boolean isBedSpawn) { @@ -29,12 +30,24 @@ public class PlayerRespawnEvent extends PlayerEvent { this(respawnPlayer, respawnLocation, isBedSpawn, false, RespawnReason.PLUGIN); } + @Deprecated // Paper public PlayerRespawnEvent(@NotNull final Player respawnPlayer, @NotNull final Location respawnLocation, final boolean isBedSpawn, final boolean isAnchorSpawn, @NotNull final RespawnReason respawnReason) { + // Paper start + this(respawnPlayer, respawnLocation, isBedSpawn, isAnchorSpawn, respawnReason, com.google.common.collect.ImmutableSet.builder()); + } + + public PlayerRespawnEvent(@NotNull final Player respawnPlayer, @NotNull final Location respawnLocation, final boolean isBedSpawn, final boolean isAnchorSpawn, @NotNull final RespawnReason respawnReason, @NotNull final com.google.common.collect.ImmutableSet.Builder respawnFlags) { + // Paper end super(respawnPlayer); this.respawnLocation = respawnLocation; this.isBedSpawn = isBedSpawn; this.isAnchorSpawn = isAnchorSpawn; this.respawnReason = respawnReason; + // Paper start + if (this.isBedSpawn) { respawnFlags.add(RespawnFlag.BED_SPAWN); } + if (this.isAnchorSpawn) { respawnFlags.add(RespawnFlag.ANCHOR_SPAWN); } + this.respawnFlags = respawnFlags.build(); + // Paper end } /** @@ -116,4 +129,31 @@ public class PlayerRespawnEvent extends PlayerEvent { */ PLUGIN; } + + // Paper start + /** + * Get the set of flags that apply to this respawn. + * + * @return an immutable set of the flags that apply to this respawn + */ + @NotNull + public java.util.Set getRespawnFlags() { + return respawnFlags; + } + + public enum RespawnFlag { + /** + * Will use the bed spawn location + */ + BED_SPAWN, + /** + * Will use the respawn anchor location + */ + ANCHOR_SPAWN, + /** + * Is caused by going to the end portal in the end. + */ + END_PORTAL, + } + // Paper end }