Fixed: disconnection during lobby creation--> currentStateProblem

This commit is contained in:
rubenpirreram
2026-05-14 14:04:22 +02:00
parent eb4eae4605
commit 6ff79f2e1d
3 changed files with 10 additions and 5 deletions
@@ -96,8 +96,9 @@ public class Game implements Serializable {
return false; return false;
} }
disconnetedPlayers.put(player,true); disconnetedPlayers.put(player,true);
if (currentState.equals(GameStages.WAITING)) { if (currentState.getGameStage().equals(GameStages.WAITING)) {
playersList.remove(player); playersList.remove(player);
totemChoiceQueue.remove(player);
return true; return true;
} }
if(currentState.getCurrentPlayer().equals(player)) { if(currentState.getCurrentPlayer().equals(player)) {
@@ -120,7 +120,7 @@ public class ServerLauncher {
Game game=gameController.getModel(); Game game=gameController.getModel();
if(!event.getIsError()) 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()); playerList.remove(event.getUsername());
}else { }else {
@@ -155,7 +155,6 @@ public class ServerLauncher {
else if(!this.gameSave() ){ else if(!this.gameSave() ){
System.out.println("\n!!! Save failed !!!\n"); System.out.println("\n!!! Save failed !!!\n");
} }
} }
if (event.getEventType().equals(EventType.DISCONNECTED_PLAYER) && playerList.values().stream().filter(x -> x).count() == 1) { if (event.getEventType().equals(EventType.DISCONNECTED_PLAYER) && playerList.values().stream().filter(x -> x).count() == 1) {
if (disconnectionTimer != null && !disconnectionTimer.isDone()) { if (disconnectionTimer != null && !disconnectionTimer.isDone()) {
@@ -266,8 +265,13 @@ public class ServerLauncher {
while (true) { while (true) {
try{ try{
this.doFirstEvent(); this.doFirstEvent();
try{
this.view.fullRender(); this.view.fullRender();
} }
catch (NullPointerException e){
}
}
catch(InterruptedException e){ catch(InterruptedException e){
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
break; break;
@@ -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"))); ImageView img = new ImageView(new Image(getClass().getResourceAsStream("/GUIImages/Totems/totem_"+ String.valueOf(totem).toLowerCase(Locale.ROOT) +".png")));
img.setFitHeight(240); img.setFitHeight(240);
img.setPreserveRatio(true); img.setPreserveRatio(true);
img.setOnMouseClicked(e -> controller.totemChoice(controller.myUsername)); //img.setOnMouseClicked(e -> controller.totemChoice(controller.myUsername));
mainHBox.getChildren().add(img); mainHBox.getChildren().add(img);
} }
} }