diff --git a/src/main/java/org/geysermc/globallinkserver/handler/TeleportToSpawnHandler.java b/src/main/java/org/geysermc/globallinkserver/handler/TeleportToSpawnHandler.java index e96d2ab..d522abd 100644 --- a/src/main/java/org/geysermc/globallinkserver/handler/TeleportToSpawnHandler.java +++ b/src/main/java/org/geysermc/globallinkserver/handler/TeleportToSpawnHandler.java @@ -11,6 +11,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.jspecify.annotations.NullMarked; @@ -33,10 +34,19 @@ public void onPlayerJoin(PlayerJoinEvent event) { public void onEntityDamage(EntityDamageEvent event) { if (event.getEntity() instanceof Player player) { event.setCancelled(true); - teleport(player); + + if (event.getCause() == EntityDamageEvent.DamageCause.VOID) { + teleport(player); + } } } + @EventHandler + public void onPlayerDeath(PlayerDeathEvent event) { + event.setCancelled(true); + teleport(event.getEntity()); + } + private void teleport(Player player) { player.teleport(spawn); player.setFallDistance(0);