From 1c1b81aada2b562a49694ead3b76400d819657dd Mon Sep 17 00:00:00 2001 From: jojo Date: Tue, 22 Dec 2020 14:16:25 +0100 Subject: [PATCH] Make RespawnSystem more constistent --- .../misslewars/listener/DeathListener.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/de/steamwar/misslewars/listener/DeathListener.java b/src/de/steamwar/misslewars/listener/DeathListener.java index c82f2f2..7edf126 100644 --- a/src/de/steamwar/misslewars/listener/DeathListener.java +++ b/src/de/steamwar/misslewars/listener/DeathListener.java @@ -27,14 +27,19 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.util.Vector; import java.util.EnumSet; +import java.util.HashSet; +import java.util.Set; public class DeathListener extends BasicListener { private static final Vector ZERO = new Vector(0, 0, 0); + private final Set respawnedPlayers = new HashSet<>(); public DeathListener() { super(EnumSet.allOf(FightState.class)); @@ -56,6 +61,21 @@ public class DeathListener extends BasicListener { e.setRespawnLocation(team.getSpawn()); e.getPlayer().setVelocity(ZERO); - new SpawnPlatformCreator(p); + respawnedPlayers.add(p); } + + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) { + if (respawnedPlayers.isEmpty()) return; + Player player = event.getPlayer(); + if (!respawnedPlayers.contains(player)) return; + respawnedPlayers.remove(player); + new SpawnPlatformCreator(player); + } + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) { + respawnedPlayers.remove(event.getPlayer()); + } + } -- 2.39.2