diff --git a/src/de/steamwar/bungeecore/sql/UserElo.java b/src/de/steamwar/bungeecore/sql/UserElo.java index 657661a0..42632c87 100644 --- a/src/de/steamwar/bungeecore/sql/UserElo.java +++ b/src/de/steamwar/bungeecore/sql/UserElo.java @@ -107,6 +107,8 @@ public class UserElo { return emblemCache.get(user.getId()); } + int maxEmblemProgression = 0; + int maxEloOfGameMode = 0; int maxEloOfPlayer = 0; ArenaMode arenaMode = null; for (ArenaMode mode : ArenaMode.getAllModes()) { @@ -114,9 +116,15 @@ public class UserElo { if (UserElo.getFightsOfSeason(user.getId(), mode.getSchemType()) < 10) continue; Optional currentElo = UserElo.getElo(user.getId(), mode.getSchemType()); - if (currentElo.isPresent() && currentElo.get() > maxEloOfPlayer) { - maxEloOfPlayer = currentElo.get(); - arenaMode = mode; + if (currentElo.isPresent()) { + int currentMaxEloOfGameMode = UserElo.getMaxElo(mode.getSchemType()); + int progression = getProgression(currentElo.get(), currentMaxEloOfGameMode); + if (progression > maxEmblemProgression) { + maxEmblemProgression = progression; + maxEloOfGameMode = currentMaxEloOfGameMode; + maxEloOfPlayer = currentElo.get(); + arenaMode = mode; + } } } @@ -124,7 +132,6 @@ public class UserElo { emblemCache.put(user.getId(), ""); return ""; } - int maxEloOfGameMode = UserElo.getMaxElo(arenaMode.getSchemType()); String emblem = getEmblem(maxEloOfPlayer, maxEloOfGameMode); emblemCache.put(user.getId(), emblem); return emblem;