public void gameFinished(GameResults results, Game game) {
GameEvent event = new GameEvent(GameEventType.GAME_FINISHED);
List<PlayerResult> playerResults = new ArrayList<PlayerResult>();
for (int i = 0; i < results.getRanking().size(); i ++) {
PlayerResult result = new PlayerResult();
result.setRank(i + 1);
// the scores map is a name-to-score mapping. We get the name for the player, currently iterated on via the list of players of the game
String name = game.getPlayers().get(results.getRanking().get(i)).getName();
result.setScore(results.getScores().get(name));
result.setName(name);
playerResults.add(result);
}
PlayerResult currentPlayerResult = new PlayerResult();
int rank = results.getRanking().indexOf(session.getId()) + 1;
int score = results.getScores().get(name);
currentPlayerResult.setRank(rank);
currentPlayerResult.setScore(score);
event.setPlayerResults(playerResults);
event.setCurrentPlayerResult(currentPlayerResult);
GameHandler.sendMessage(event, session);
}