The player to check
+ * @returnTrue if the player is connected through Geyser
+ */ + private boolean isGeyserPlayer(@NotNull Player player) { + try { + return GeyserApi.api().connectionByUuid(player.getUniqueId()) != null; + } catch (NoClassDefFoundError error) { + return false; + } + } + /** * This event handler detects if a player clicks a button or a sign * diff --git a/src/main/java/net/knarcraft/stargate/listener/PortalEventListener.java b/src/main/java/net/knarcraft/stargate/listener/PortalEventListener.java index 41d2d9b..8cf3086 100644 --- a/src/main/java/net/knarcraft/stargate/listener/PortalEventListener.java +++ b/src/main/java/net/knarcraft/stargate/listener/PortalEventListener.java @@ -103,6 +103,9 @@ public class PortalEventListener implements Listener { public void onRespawn(@NotNull PlayerRespawnEvent event) { Player respawningPlayer = event.getPlayer(); FromTheEndTeleportation teleportation = playersFromTheEnd.remove(respawningPlayer); + if (teleportation == null) { + return; + } Portal exitPortal = teleportation.exitPortal(); //Overwrite respawn location to respawn in front of the portal