diff --git a/Plugins/Mineplex.Core/src/mineplex/core/elo/EloManager.java b/Plugins/Mineplex.Core/src/mineplex/core/elo/EloManager.java index 16da4197c..10bd385f9 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/elo/EloManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/elo/EloManager.java @@ -36,7 +36,7 @@ public class EloManager extends MiniDbClientPlugin public int getElo(Player player, int gameType) { if (!Get(player).Elos.containsKey(gameType)) - Get(player).Elos.put(gameType, 1000); + return 1000; return Get(player).Elos.get(gameType); } @@ -190,12 +190,24 @@ public class EloManager extends MiniDbClientPlugin // Use teams to calculate Elo for (EloPlayer eloPlayer : teamWinnerNew.getPlayers()) { - saveElo(eloPlayer.getPlayer(), eloPlayer.getAccountId(), gameId, teamWinner.getPlayer(eloPlayer.getPlayer().getUniqueId().toString()).getRating(), eloPlayer.getRating()); + int oldElo = teamWinner.getPlayer(eloPlayer.getPlayer().getUniqueId().toString()).getRating(); + + // If this is the first time. + if (!Get(eloPlayer.getPlayer()).Elos.containsKey(gameId)) + oldElo = eloPlayer.getRating(); + + saveElo(eloPlayer.getPlayer(), eloPlayer.getAccountId(), gameId, oldElo, eloPlayer.getRating()); } for (EloPlayer eloPlayer : teamLoserNew.getPlayers()) { - saveElo(eloPlayer.getPlayer(), eloPlayer.getAccountId(), gameId, teamLoser.getPlayer(eloPlayer.getPlayer().getUniqueId().toString()).getRating(), eloPlayer.getRating()); + int oldElo = teamLoser.getPlayer(eloPlayer.getPlayer().getUniqueId().toString()).getRating(); + + // If this is the first time. + if (!Get(eloPlayer.getPlayer()).Elos.containsKey(gameId)) + oldElo = eloPlayer.getRating(); + + saveElo(eloPlayer.getPlayer(), eloPlayer.getAccountId(), gameId, oldElo, eloPlayer.getRating()); } _eloTeams.clear();