From defb52707315a0f29e7f107165d21aff90ed65d4 Mon Sep 17 00:00:00 2001 From: Mathieu Strypsteen Date: Sat, 14 Sep 2024 22:58:20 +0200 Subject: [PATCH] Fail on death/disconnect --- .../java/gent/zeus/mc13dtl/events/Event.java | 17 +++++++++++++++++ .../mc13dtl/gamestate/GameStateHandler.java | 6 +++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/gent/zeus/mc13dtl/events/Event.java b/src/main/java/gent/zeus/mc13dtl/events/Event.java index cad5872..f52374e 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/Event.java +++ b/src/main/java/gent/zeus/mc13dtl/events/Event.java @@ -5,8 +5,11 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scoreboard.Team; import gent.zeus.mc13dtl.MC13DTL; @@ -41,6 +44,20 @@ public abstract class Event implements Listener { eventFinished(); } + @EventHandler + public void onPlayerDeath(PlayerDeathEvent event) { + if (getPlayers().contains(event.getPlayer())) { + eventFailed(); + } + } + + @EventHandler + public void onPlayerDeath(PlayerQuitEvent event) { + if (getPlayers().contains(event.getPlayer())) { + eventFailed(); + } + } + protected List getPlayers() { List players = new ArrayList<>(); for (String entry : team.getEntries()) { diff --git a/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateHandler.java b/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateHandler.java index 90c14cb..bfd1ffa 100644 --- a/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateHandler.java +++ b/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateHandler.java @@ -14,12 +14,12 @@ import gent.zeus.mc13dtl.MC13DTL; public class GameStateHandler implements Listener { @EventHandler - void onPlayerJoin(PlayerJoinEvent event) { + public void onPlayerJoin(PlayerJoinEvent event) { GameStateUtil.loadPlayer(event.getPlayer()); } @EventHandler - void onWorldLoad(WorldLoadEvent event) { + public void onWorldLoad(WorldLoadEvent event) { World world = event.getWorld(); if (!world.getName().equals("world")) { return; @@ -28,7 +28,7 @@ public class GameStateHandler implements Listener { } @EventHandler - void onPlayerInteract(PlayerInteractEvent event) { + public void onPlayerInteract(PlayerInteractEvent event) { NamespacedKey key = new NamespacedKey(MC13DTL.instance, "game-state"); String gameState = Bukkit.getWorld("world").getPersistentDataContainer().get(key, PersistentDataType.STRING); if (gameState.equals("lobby")) {