diff --git a/src/main/java/dev/loki/phase/GameplayPhase.java b/src/main/java/dev/loki/phase/GameplayPhase.java index a4bcced..f46f335 100644 --- a/src/main/java/dev/loki/phase/GameplayPhase.java +++ b/src/main/java/dev/loki/phase/GameplayPhase.java @@ -26,6 +26,7 @@ import dev.loki.ui.ActionBar; import dev.loki.ui.TitleUI; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; +import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; @@ -120,9 +121,18 @@ public class GameplayPhase implements Phase { if (tickCounter % 20 == 0) { checkGeneratorProgress(session); winConditions.checkWinConditions(session); - if (winConditions.isShouldEnd() || timeExpired) shouldEnd = true; + if (winConditions.isShouldEnd() || timeExpired) { + shouldEnd = true; + } ui.updateSidebar(session, generatorManager); } + + if (timeExpired) { + showGameResults(session); + teleportAllToLobby(session); + session.stop(); + return; + } } @Override @@ -351,6 +361,21 @@ public class GameplayPhase implements Phase { } } + private void teleportAllToLobby(GameSession session) { + for (BasePlayer bp : session.getPlayers().values()) { + Player p = bp.getPlayer(); + if (p != null && p.isOnline()) { + p.setGameMode(org.bukkit.GameMode.ADVENTURE); + p.getInventory().clear(); + p.setWalkSpeed(0.2f); + p.setFlySpeed(0.1f); + p.setHealth(20.0); + p.setFoodLevel(20); + session.getPlugin().getLobbyManager().teleportToLobby(p); + } + } + } + private void clearListeners() { if (interaction != null) interaction.clear(); }