Fix: additional controls over data structures
This commit is contained in:
@@ -704,10 +704,11 @@ public class Game implements Serializable {
|
||||
private synchronized void nextPlayerSetup() {
|
||||
|
||||
if (GameStages.SLOT_CHOICE == currentState.getGameStage()) {
|
||||
Player tempPlayer = orderLogicCard.pull();
|
||||
if(disconnectedPlayers.containsKey(tempPlayer) && disconnectedPlayers.get(tempPlayer)) {
|
||||
nextPlayerSetup();
|
||||
return;
|
||||
Player tempPlayer;
|
||||
while (true) {
|
||||
tempPlayer = orderLogicCard.pull();
|
||||
if (tempPlayer == null) break;
|
||||
if (!disconnectedPlayers.containsKey(tempPlayer) || !disconnectedPlayers.get(tempPlayer)) break;
|
||||
}
|
||||
if (tempPlayer != null) {
|
||||
currentState.PlayerUpdate(tempPlayer, null);
|
||||
@@ -1006,12 +1007,17 @@ public class Game implements Serializable {
|
||||
* ordered by prestige value and, in case of a tie, by food value.
|
||||
*/
|
||||
public synchronized void endGameForFeit() {
|
||||
Player winner=playersList.stream().filter(x->!disconnectedPlayers.containsKey(x)||!disconnectedPlayers.get(x)).toList().get(0);
|
||||
Player winner = playersList.stream()
|
||||
.filter(x -> !disconnectedPlayers.containsKey(x) || !disconnectedPlayers.get(x))
|
||||
.findFirst().orElse(null);
|
||||
if (winner == null) return;
|
||||
currentState.GameStageUpdate(GameStages.ENDED);
|
||||
playerStanding=new ArrayList<>(playersList);
|
||||
playerStanding = new ArrayList<>(playersList);
|
||||
playerStanding.remove(winner);
|
||||
playerStanding.sort((y,x)->x.getPrestigeValue()==y.getPrestigeValue()?Integer.compare(x.getFoodValue(),y.getFoodValue()):Integer.compare(x.getPrestigeValue(),y.getPrestigeValue()));
|
||||
playerStanding.add(0,winner);
|
||||
playerStanding.sort((y, x) -> x.getPrestigeValue() == y.getPrestigeValue()
|
||||
? Integer.compare(x.getFoodValue(), y.getFoodValue())
|
||||
: Integer.compare(x.getPrestigeValue(), y.getPrestigeValue()));
|
||||
playerStanding.add(0, winner);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -83,8 +83,8 @@ public class ClientHandler implements Runnable {
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
running = true;
|
||||
try {
|
||||
running = true;
|
||||
while (running) {
|
||||
NetworkEvent event = (NetworkEvent) in.readObject();
|
||||
if (!actionQueue.add(event)) {
|
||||
@@ -92,9 +92,11 @@ public class ClientHandler implements Runnable {
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.err.println("Error in incoming connection/disconnection");
|
||||
System.err.println("Error in incoming connection/disconnection: " + username);
|
||||
} catch (ClassNotFoundException e) {
|
||||
System.err.println("Class not found");
|
||||
System.err.println("Class not found: " + username);
|
||||
} finally {
|
||||
if (running) disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user