From 86579763ae18e58542e9ffb411e5a80905863512 Mon Sep 17 00:00:00 2001 From: nearfe Date: Wed, 19 Jun 2024 22:07:33 -0300 Subject: [PATCH] LB MT FODA --- .../runnable/LeaderboardUpdateRunnable.java | 99 ++++++++++++------- 1 file changed, 66 insertions(+), 33 deletions(-) diff --git a/src/main/java/land/battle/practice/runnable/LeaderboardUpdateRunnable.java b/src/main/java/land/battle/practice/runnable/LeaderboardUpdateRunnable.java index 4439a85..a7a44ec 100644 --- a/src/main/java/land/battle/practice/runnable/LeaderboardUpdateRunnable.java +++ b/src/main/java/land/battle/practice/runnable/LeaderboardUpdateRunnable.java @@ -93,14 +93,29 @@ public class LeaderboardUpdateRunnable implements Runnable { break; } - lore.add(color + "✫" + rank + " " + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(allEloMap.getOrDefault(uuid, 1000))); + lore.add(color + "✫" + rank + " " + CC.GREEN + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(allEloMap.getOrDefault(uuid, 1000))); } } else if (integer.get() >= 3 && integer.get() < 10) { + final Document playerDocument = CorePlugin.getInstance().getCoreDatabase().getPlayerCollection().find(Filters.eq("uuid", uuid.toString())).first(); if (playerDocument != null) { int rank = integer.incrementAndGet(); - lore.add(String.valueOf(CC.YELLOW) + "#" + rank + " " + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(allEloMap.getOrDefault(uuid, 1000))); + String color = String.valueOf(CC.YELLOW); + + switch (rank) { + case 1: + color = String.valueOf(CC.GOLD); + break; + case 2: + color = String.valueOf(CC.GRAY); + break; + case 3: + color = String.valueOf(CC.DARK_GRAY); + break; + } + + lore.add(color + "#" + rank + " " + CC.GREEN + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(allEloMap.getOrDefault(uuid, 1000))); } } }); @@ -126,19 +141,49 @@ public class LeaderboardUpdateRunnable implements Runnable { final Document playerDocument = CorePlugin.getInstance().getCoreDatabase().getPlayerCollection().find(Filters.eq("uuid", uuid.toString())).first(); if (playerDocument != null) { - loreForKillStreaks.add(CC.GOLD + "✫" + integerForKillStreaks.incrementAndGet() + " " + CC.WHITE + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(allKillStreaksMap.get(uuid))); // Adicione decimalFormat aqui + int rank = integerForKillStreaks.incrementAndGet(); + String color = String.valueOf(CC.YELLOW); + + switch (rank) { + case 1: + color = String.valueOf(CC.GOLD); + break; + case 2: + color = String.valueOf(CC.GRAY); + break; + case 3: + color = String.valueOf(CC.DARK_GRAY); + break; + } + + loreForKillStreaks.add(color + "✫" + rank + " " + CC.GREEN + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(allKillStreaksMap.get(uuid))); } } else if (integerForKillStreaks.get() >= 3 && integerForKillStreaks.get() < 10) { // quarto até o décimo lugar final Document playerDocument = CorePlugin.getInstance().getCoreDatabase().getPlayerCollection().find(Filters.eq("uuid", uuid.toString())).first(); if (playerDocument != null) { - loreForKillStreaks.add(CC.YELLOW + "#" + integerForKillStreaks.incrementAndGet() + " " + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(allKillStreaksMap.get(uuid))); // Adicione decimalFormat aqui + int rank = integerForKillStreaks.incrementAndGet(); + String color = String.valueOf(CC.YELLOW); + + switch (rank) { + case 1: + color = String.valueOf(CC.GOLD); + break; + case 2: + color = String.valueOf(CC.GRAY); + break; + case 3: + color = String.valueOf(CC.DARK_GRAY); + break; + } + + loreForKillStreaks.add(color + "#" + rank + " " + CC.GREEN + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(allKillStreaksMap.get(uuid))); } } }); if (loreForKillStreaks.size() >= 3) { - IntStream.range(0, 3).forEach(i -> loreForKillStreaksShort.add(" " + loreForKillStreaks.get(i).replace("✫", ""))); // Remove ✫ from loreForKillStreaksShort + IntStream.range(0, 3).forEach(i -> loreForKillStreaksShort.add(" " + loreForKillStreaks.get(i).replace("✫", "#"))); } LeaderboardUpdateRunnable.KIT_SPECIFIC_WIN_STREAK_LORE.put(kit, loreForKillStreaks); @@ -152,7 +197,7 @@ public class LeaderboardUpdateRunnable implements Runnable { final Map eloMap = CorePlugin.GSON.fromJson(document.getString("elo"), PracticeConstants.STRING_INTEGER_MAP_TYPE); if (eloMap != null) { - globalEloMap.put(UUID.fromString(document.getString("uuid")), document.getInteger("globalElo")); + globalEloMap.put(UUID.fromString(document.getString("uuid")), eloMap.values().stream().mapToInt(i -> i).sum() / eloMap.size()); } }); @@ -163,44 +208,32 @@ public class LeaderboardUpdateRunnable implements Runnable { final AtomicInteger integer = new AtomicInteger(); sortedUuids.forEach(uuid -> { - if (integer.get() < 3) { // primeiro, segundo e terceiro lugar - final Document playerDocument = CorePlugin.getInstance().getCoreDatabase().getPlayerCollection() - .find(Filters.eq("uuid", uuid.toString())).first(); + if (integer.get() < 10) { // top 10 players + final Document playerDocument = CorePlugin.getInstance().getCoreDatabase().getPlayerCollection().find(Filters.eq("uuid", uuid.toString())).first(); if (playerDocument != null) { - final int globalElo = globalEloMap.get(uuid); - final RankedDivision rankedDivision = RankedDivision.getByGlobalElo(globalElo); + int rank = integer.incrementAndGet(); + String color = String.valueOf(CC.YELLOW); - if (rankedDivision != null) { - int rank = integer.incrementAndGet(); - String color = String.valueOf(CC.YELLOW); - - lore.add(color + "✫" + rank + " " + playerDocument.getString("name") + CC.GRAY + " - " + - String.valueOf(CC.YELLOW) + decimalFormat.format(globalElo) + CC.GRAY + " - " + rankedDivision.getFancyName()); + switch (rank) { + case 1: + color = String.valueOf(CC.GOLD); + break; + case 2: + color = String.valueOf(CC.GRAY); + break; + case 3: + color = String.valueOf(CC.DARK_GRAY); + break; } - } - } else if (integer.get() >= 3 && integer.get() < 11) { // quarto até o décimo primeiro lugar - final Document playerDocument = CorePlugin.getInstance().getCoreDatabase().getPlayerCollection() - .find(Filters.eq("uuid", uuid.toString())).first(); - if (playerDocument != null) { - final int globalElo = globalEloMap.get(uuid); - final RankedDivision rankedDivision = RankedDivision.getByGlobalElo(globalElo); - - if (rankedDivision != null) { - int rank = integer.incrementAndGet(); - lore.add(String.valueOf(CC.YELLOW) + "#" + rank + " " + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(globalElo) + CC.GRAY + " - " + rankedDivision.getFancyName()); - } + lore.add(color + "#" + rank + " " + CC.GREEN + playerDocument.getString("name") + CC.GRAY + " - " + CC.YELLOW + decimalFormat.format(globalEloMap.getOrDefault(uuid, 1000))); } } }); LeaderboardUpdateRunnable.GLOBAL_ELO_LEADERBOARD_LORE.clear(); LeaderboardUpdateRunnable.GLOBAL_ELO_LEADERBOARD_LORE.addAll(lore); - }).whenComplete((unused, throwable) -> { - if (throwable != null) { - throwable.printStackTrace(); - } }); } }