add RespawnFlags to PlayerRespawnEvent

This commit is contained in:
Jake Potrebic 2021-04-22 17:17:54 -07:00
parent 28c7aca637
commit e9c4b62f7e

View file

@ -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<RespawnFlag> 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<org.bukkit.event.player.PlayerRespawnEvent.RespawnFlag> 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<RespawnFlag> 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
}