From 9ca2772d4f0b92029844ee0a1bf69ba1d6e73366 Mon Sep 17 00:00:00 2001 From: Senmori Date: Mon, 27 Aug 2018 02:47:18 -0400 Subject: API to prevent PlayerBedLeaveEvent from changing a player's spawn location --- .../bukkit/event/player/PlayerBedLeaveEvent.java | 37 +++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java b/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java index 628ab0b0..0b57635f 100644 --- a/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java @@ -1,5 +1,6 @@ package org.bukkit.event.player; +import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; @@ -10,10 +11,12 @@ import org.bukkit.event.HandlerList; public class PlayerBedLeaveEvent extends PlayerEvent { private static final HandlerList handlers = new HandlerList(); private final Block bed; + private boolean setBedSpawn; - public PlayerBedLeaveEvent(final Player who, final Block bed) { + public PlayerBedLeaveEvent(final Player who, final Block bed, boolean setBedSpawn) { super(who); this.bed = bed; + this.setBedSpawn = setBedSpawn; } /** @@ -25,6 +28,38 @@ public class PlayerBedLeaveEvent extends PlayerEvent { return bed; } + /** + * Get if this event should set the new spawn location for the + * {@link Player}. + *
+ * This does not remove any existing spawn location, only prevent it from + * being changed (if true). + *
+ * To change a {@link Player}'s spawn location, use + * {@link Player#setBedSpawnLocation(Location)}. + * + * @return true if the spawn location will be changed + */ + public boolean shouldSetSpawnLocation() { + return setBedSpawn; + } + + /** + * Set if this event should set the new spawn location for the + * {@link Player}. + *
+ * This will not remove any existing spawn location, only prevent it from + * being changed (if true). + *
+ * To change a {@link Player}'s spawn location, use + * {@link Player#setBedSpawnLocation(Location)}. + * + * @param setBedSpawn true to change the new spawn location + */ + public void setSpawnLocation(boolean setBedSpawn) { + this.setBedSpawn = setBedSpawn; + } + @Override public HandlerList getHandlers() { return handlers; -- cgit v1.2.3