From 55be88b7daa766c8b3c3a9f2db9d1059e24bde82 Mon Sep 17 00:00:00 2001 From: lars <larslukasneuhaus@gmx.de> Date: Mon, 4 Nov 2024 15:04:09 +0100 Subject: [PATCH] removed countdown when no player left --- build.gradle | 2 +- .../game/stateless/types/tetris/Tetris.java | 29 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 6607b2c..5d7a77d 100644 --- a/build.gradle +++ b/build.gradle @@ -89,5 +89,5 @@ tasks.register('copyJarToServer', Exec) { dependsOn shadowJar mustRunAfter shadowJar - commandLine 'scp', 'build/libs/Minigames-1.0-SNAPSHOT.jar', 'root@10.20.6.5:/root/minigames' + commandLine 'scp', 'build/libs/Minigames-1.0-SNAPSHOT.jar', '/home/lars/Documents/Minecraft Server/minigames' } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java index 7e8f310..3b5dfe1 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/tetris/Tetris.java @@ -69,6 +69,7 @@ class Tetris extends StatelessGame { @Override protected void onPlayerLeave(Player p) { this.tetrisGames.get(p).sidebar.removeViewer(p); + this.letPlayerLoose(p); } @Override @@ -124,17 +125,27 @@ class Tetris extends StatelessGame { } protected void onPlayerTick(PlayerTickEvent event) { - TetrisGame tetrisGame = this.tetrisGames.get(event.getPlayer()); + Player player = event.getPlayer(); + TetrisGame tetrisGame = this.tetrisGames.get(player); if(tetrisGame == null) return; - if(tetrisGame.lost && event.getPlayer().getGameMode() != GameMode.SPECTATOR) { - event.getPlayer().setGameMode(GameMode.SPECTATOR); - getScore().insertResult(event.getPlayer(), tetrisGame.getScore()); + if(tetrisGame.lost && player.getGameMode() != GameMode.SPECTATOR) { + letPlayerLoose(player); + } + } - if(!setTimeLimit) { - this.setTimeLimit(90); - setTimeLimit = true; - new ChatMessage(Icon.SCIENCE).appendStatic("Noch 90 Sekunden!").send(getPlayers()); - } + private void letPlayerLoose(Player player) { + TetrisGame tetrisGame = this.tetrisGames.get(player); + player.setGameMode(GameMode.SPECTATOR); + getScore().insertResult(player, tetrisGame.getScore()); + + boolean allGamesLost = this.tetrisGames.values().stream() + .filter(tetrisGame1 -> !tetrisGame1.lost) + .toList() + .isEmpty(); + if(!setTimeLimit && !allGamesLost) { + this.setTimeLimit(90); + setTimeLimit = true; + new ChatMessage(Icon.SCIENCE).appendStatic("Noch 90 Sekunden!").send(getPlayers()); } }