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()); } }