From 225bf2d860443bf7dd11fe93c2c51b5db4140919 Mon Sep 17 00:00:00 2001 From: Gibson Pilconis Date: Fri, 7 Jun 2024 19:34:08 -0400 Subject: [PATCH] Fix respawn-at-anchor setting (#5824) --- .../spawn/EssentialsSpawnPlayerListener.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/EssentialsSpawn/src/main/java/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/main/java/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java index c4f21315e92..21138c95657 100644 --- a/EssentialsSpawn/src/main/java/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java +++ b/EssentialsSpawn/src/main/java/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java @@ -40,21 +40,23 @@ void onPlayerRespawn(final PlayerRespawnEvent event) { return; } - if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_16_1_R01) && event.isAnchorSpawn() && ess.getSettings().isRespawnAtAnchor()) { - return; - } - if (ess.getSettings().getRespawnAtHome()) { final Location home; - Location bed = null; - if (ess.getSettings().isRespawnAtBed()) { + Location respawnLocation = null; + if (ess.getSettings().isRespawnAtBed() && + (!VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_16_1_R01) || + (!event.isAnchorSpawn() || ess.getSettings().isRespawnAtAnchor()))) { // cannot nuke this sync load due to the event being sync so it would hand either way - bed = user.getBase().getBedSpawnLocation(); + if(VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_16_1_R01)) { + respawnLocation = user.getBase().getRespawnLocation(); + } else { // For versions prior to 1.16. + respawnLocation = user.getBase().getBedSpawnLocation(); + } } - if (bed != null) { - home = bed; + if (respawnLocation != null) { + home = respawnLocation; } else { home = user.getHome(user.getLocation()); }