From e49c8f2885a5e95a9e7a304a9ef5f22370fd775f Mon Sep 17 00:00:00 2001 From: Biquaternions Date: Fri, 21 Aug 2026 16:53:29 -0500 Subject: [PATCH] Use AsyncPlayerSpawnLocationEvent and let the server take care of chunk loading --- .../dev/lrxh/neptune/profile/listener/ProfileListener.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Plugin/src/main/java/dev/lrxh/neptune/profile/listener/ProfileListener.java b/Plugin/src/main/java/dev/lrxh/neptune/profile/listener/ProfileListener.java index f6321f57..bad831c6 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/profile/listener/ProfileListener.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/profile/listener/ProfileListener.java @@ -18,6 +18,7 @@ import dev.lrxh.neptune.utils.sign.SignInputMenu; import dev.lrxh.neptune.utils.tasks.NeptuneRunnable; import dev.lrxh.neptune.utils.tasks.TaskScheduler; +import io.papermc.paper.event.player.AsyncPlayerSpawnLocationEvent; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import org.bukkit.Bukkit; @@ -29,6 +30,11 @@ public class ProfileListener implements Listener { + @EventHandler + public void onPlayerSpawnLocation(AsyncPlayerSpawnLocationEvent event) { + event.setSpawnLocation(Neptune.get().getCache().getSpawn()); + } + @EventHandler public void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); @@ -44,7 +50,6 @@ public void onJoin(PlayerJoinEvent event) { .thenAccept(unused -> TaskScheduler.get().startTask(new NeptuneRunnable() { @Override public void run() { - PlayerUtil.teleportToSpawn(player.getUniqueId()); if (!MessagesLocale.JOIN_MESSAGE.getString().equals("NONE")) { ServerUtils.broadcast(MessagesLocale.JOIN_MESSAGE, Placeholder.unparsed("player", player.getName()));