From acf0853e71af8712fca7e2ac9293c6ab6b83ae7d Mon Sep 17 00:00:00 2001 From: Tim203 Date: Sun, 19 Jan 2025 15:44:17 +0100 Subject: [PATCH] Only teleport when damage cause is void --- .../handler/TeleportToSpawnHandler.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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);