From 3084c9a51cc257b8f005d4814e7a12e853e518a5 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 17 Aug 2023 22:09:04 +0200 Subject: [PATCH] Fix World Reset --- src/de/steamwar/towerrun/TowerRun.java | 2 +- src/de/steamwar/towerrun/countdowns/EndCountdown.java | 8 +++++--- src/de/steamwar/towerrun/listener/IngameListener.java | 6 ++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/de/steamwar/towerrun/TowerRun.java b/src/de/steamwar/towerrun/TowerRun.java index 3989649..28545d2 100644 --- a/src/de/steamwar/towerrun/TowerRun.java +++ b/src/de/steamwar/towerrun/TowerRun.java @@ -58,7 +58,7 @@ public class TowerRun extends JavaPlugin { new LobbyListener(); new NotLobbyListener(); final LobbyCountdown lobbyCountdown = new LobbyCountdown(); - new EndCountdown(); + new EndCountdown(lobbyCountdown); new StartCommand(lobbyCountdown); } } diff --git a/src/de/steamwar/towerrun/countdowns/EndCountdown.java b/src/de/steamwar/towerrun/countdowns/EndCountdown.java index 0578da2..b93b9d7 100644 --- a/src/de/steamwar/towerrun/countdowns/EndCountdown.java +++ b/src/de/steamwar/towerrun/countdowns/EndCountdown.java @@ -25,17 +25,18 @@ import de.steamwar.towerrun.state.GameStates; import org.bukkit.Bukkit; import org.bukkit.Sound; -import java.io.File; -import java.io.FilenameFilter; import java.util.EnumSet; import java.util.Objects; public class EndCountdown extends Countdown { + private final LobbyCountdown lobbyCountdown; + private static boolean RESETS = Objects.requireNonNull(Bukkit.getWorlds().get(0).getWorldFolder().list((dir, name) -> name.equals("backup"))).length > 0; - public EndCountdown() { + public EndCountdown(LobbyCountdown lobbyCountdown) { super(EnumSet.of(GameStates.ENDING)); + this.lobbyCountdown = lobbyCountdown; } @Override @@ -48,6 +49,7 @@ public class EndCountdown extends Countdown { Bukkit.getOnlinePlayers().forEach(player -> player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1, 1)); if (RESETS) { TowerRunGame.reset(); + lobbyCountdown.setTime(lobbyCountdown.defaultTime()); } else { Bukkit.shutdown(); } diff --git a/src/de/steamwar/towerrun/listener/IngameListener.java b/src/de/steamwar/towerrun/listener/IngameListener.java index 26690fd..62b1295 100644 --- a/src/de/steamwar/towerrun/listener/IngameListener.java +++ b/src/de/steamwar/towerrun/listener/IngameListener.java @@ -37,6 +37,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerRespawnEvent; import java.util.Arrays; import java.util.EnumSet; @@ -108,4 +109,9 @@ public class IngameListener extends GameStateBukkitListener { event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.BLOCK_ENDER_CHEST_OPEN, 1, 1); TowerRun.getMessage().broadcast("KEY_FOUND", event.getPlayer().getName()); } + + @EventHandler + public void onPlayerRespawn(PlayerRespawnEvent event) { + event.setRespawnLocation(WorldConfig.SPAWN); + } }