From 452f8cf88b319f69414dc9a13025651711a7b01b Mon Sep 17 00:00:00 2001 From: MisterVector Date: Fri, 26 Oct 2018 21:33:13 -0700 Subject: [PATCH] Add PlayerPostRespawnEvent --- .../event/player/PlayerPostRespawnEvent.java | 54 +++++++++++++++++++ .../event/player/PlayerRespawnEvent.java | 3 ++ 2 files changed, 57 insertions(+) create mode 100644 paper-api/src/main/java/com/destroystokyo/paper/event/player/PlayerPostRespawnEvent.java diff --git a/paper-api/src/main/java/com/destroystokyo/paper/event/player/PlayerPostRespawnEvent.java b/paper-api/src/main/java/com/destroystokyo/paper/event/player/PlayerPostRespawnEvent.java new file mode 100644 index 0000000000..e82446ec3d --- /dev/null +++ b/paper-api/src/main/java/com/destroystokyo/paper/event/player/PlayerPostRespawnEvent.java @@ -0,0 +1,54 @@ +package com.destroystokyo.paper.event.player; + +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; + +/** + * Fired after a player has respawned + */ +@NullMarked +public class PlayerPostRespawnEvent extends PlayerEvent { + + private static final HandlerList HANDLER_LIST = new HandlerList(); + + private final Location respawnedLocation; + private final boolean isBedSpawn; + + @ApiStatus.Internal + public PlayerPostRespawnEvent(final Player respawnPlayer, final Location respawnedLocation, final boolean isBedSpawn) { + super(respawnPlayer); + this.respawnedLocation = respawnedLocation; + this.isBedSpawn = isBedSpawn; + } + + /** + * Returns the location of the respawned player + * + * @return location of the respawned player + */ + public Location getRespawnedLocation() { + return this.respawnedLocation.clone(); + } + + /** + * Checks if the player respawned to their bed + * + * @return whether the player respawned to their bed + */ + public boolean isBedSpawn() { + return this.isBedSpawn; + } + + @Override + public HandlerList getHandlers() { + return HANDLER_LIST; + } + + public static HandlerList getHandlerList() { + return HANDLER_LIST; + } +} 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 d6b4c81ef5..7e76588617 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 @@ -8,6 +8,9 @@ import org.jetbrains.annotations.NotNull; /** * Called when a player respawns. + *

+ * If changing player state, see {@link com.destroystokyo.paper.event.player.PlayerPostRespawnEvent} + * because the player is "reset" between this event and that event and some changes won't persist. */ public class PlayerRespawnEvent extends PlayerEvent { private static final HandlerList handlers = new HandlerList();