Skip to content

Commit 4f33fc0

Browse files
committed
fix: save test mode scores before broadcasting GameResult
Prevents race conditions creating errors in the TestClient and failing our CI.
1 parent f168a29 commit 4f33fc0

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

server/src/sc/server/gaming/GameRoom.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ public synchronized void onGameOver(Map<Player, PlayerScore> results) throws Inv
8989
try {
9090
result = generateGameResult(results);
9191
logger.info("{} is over (regular={})", game, result.isRegular());
92+
// save playerScore if test mode enabled
93+
if (Boolean.parseBoolean(Configuration.get(Configuration.TEST_MODE))) {
94+
List<Player> players = game.getPlayers();
95+
gameRoomManager.addResultToScore(this.getResult(), players.get(0).getDisplayName(), players.get(1).getDisplayName());
96+
}
9297
broadcast(result);
9398
} catch(Throwable t) {
9499
logger.error("Failed to generate GameResult from " + results, t);
@@ -98,12 +103,6 @@ public synchronized void onGameOver(Map<Player, PlayerScore> results) throws Inv
98103
saveReplay();
99104
}
100105

101-
// save playerScore if test mode enabled
102-
if (Boolean.parseBoolean(Configuration.get(Configuration.TEST_MODE))) {
103-
List<Player> players = game.getPlayers();
104-
gameRoomManager.addResultToScore(this.getResult(), players.get(0).getDisplayName(), players.get(1).getDisplayName());
105-
}
106-
107106
kickAllClients();
108107
cancel();
109108
}

0 commit comments

Comments
 (0)