From 6ff79f2e1d703afc4c57971cc0bb7ae3bcfb86cd Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Thu, 14 May 2026 14:04:22 +0200 Subject: [PATCH] Fixed: disconnection during lobby creation--> currentStateProblem --- src/main/java/it/polimi/ingsw/gc14/Model/Game.java | 3 ++- src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java | 10 +++++++--- .../ingsw/gc14/View/GUI/TotemFXMLController.java | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java index 65c8cf1..02a31ec 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/Game.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/Game.java @@ -96,8 +96,9 @@ public class Game implements Serializable { return false; } disconnetedPlayers.put(player,true); - if (currentState.equals(GameStages.WAITING)) { + if (currentState.getGameStage().equals(GameStages.WAITING)) { playersList.remove(player); + totemChoiceQueue.remove(player); return true; } if(currentState.getCurrentPlayer().equals(player)) { diff --git a/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java b/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java index e2bf223..ada11eb 100644 --- a/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java +++ b/src/main/java/it/polimi/ingsw/gc14/ServerLauncher.java @@ -120,7 +120,7 @@ public class ServerLauncher { Game game=gameController.getModel(); if(!event.getIsError()) { - if(event.getEventType().equals(EventType.DISCONNECTED_PLAYER)&& game.getCurrentState().equals(GameStages.WAITING)) + if(event.getEventType().equals(EventType.DISCONNECTED_PLAYER)&& game.getCurrentState().getGameStage().equals(GameStages.WAITING)) { playerList.remove(event.getUsername()); }else { @@ -155,7 +155,6 @@ public class ServerLauncher { else if(!this.gameSave() ){ System.out.println("\n!!! Save failed !!!\n"); } - } if (event.getEventType().equals(EventType.DISCONNECTED_PLAYER) && playerList.values().stream().filter(x -> x).count() == 1) { if (disconnectionTimer != null && !disconnectionTimer.isDone()) { @@ -266,7 +265,12 @@ public class ServerLauncher { while (true) { try{ this.doFirstEvent(); - this.view.fullRender(); + try{ + this.view.fullRender(); + } + catch (NullPointerException e){ + + } } catch(InterruptedException e){ Thread.currentThread().interrupt(); diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/TotemFXMLController.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/TotemFXMLController.java index c794026..1b2f6f8 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/TotemFXMLController.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/TotemFXMLController.java @@ -29,7 +29,7 @@ public class TotemFXMLController { ImageView img = new ImageView(new Image(getClass().getResourceAsStream("/GUIImages/Totems/totem_"+ String.valueOf(totem).toLowerCase(Locale.ROOT) +".png"))); img.setFitHeight(240); img.setPreserveRatio(true); - img.setOnMouseClicked(e -> controller.totemChoice(controller.myUsername)); + //img.setOnMouseClicked(e -> controller.totemChoice(controller.myUsername)); mainHBox.getChildren().add(img); } }