Advertisement
raffel080108

Untitled

Mar 29th, 2023
509
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.67 KB | None | 0 0
  1.         TreeMap<Integer, List<UUID>> leaderboardData = pluginData.getLeaderboardData();
  2.         Component leaderboard = messagesData.getMessage(Message.LEADERBOARD_HEADER);
  3.         Component pageDoesntExistMessage = messagesData.getMessage(Message.PAGE_DOESNT_EXIST,
  4.                 Placeholder.unparsed("page-number", String.valueOf(pageNumber)));
  5.         if (leaderboardData.size() == 0) {
  6.             if (pageNumber > 1) {
  7.                 sender.reply(pageDoesntExistMessage);
  8.                 return;
  9.             }
  10.             leaderboard = leaderboard.append(messagesData.getMessage(Message.LEADERBOARD_NO_ENTRIES));
  11.         }
  12.         else {
  13.             int maxPageEntries = configData.getLeaderboardMaxPageEntries();
  14.             int a = pluginData.getLeaderboardDataPlayersAmount();
  15.             if (Math.ceil((double) a / maxPageEntries) < pageNumber) {
  16.                 sender.reply(pageDoesntExistMessage);
  17.                 return;
  18.             }
  19.  
  20.             int pageAmountTracker = (pageNumber - 1) * maxPageEntries;
  21.             int posTracker = pageAmountTracker + 1;
  22.             loop:
  23.             for (int i = leaderboardData.size() - 1; i >= 0; i--) {
  24.                 int killAmount = (int) leaderboardData.keySet().toArray()[i];
  25.                 List<UUID> uuids = leaderboardData.get(killAmount);
  26.  
  27.                 if (pageAmountTracker >= uuids.size()) {
  28.                     pageAmountTracker -= uuids.size();
  29.                     posTracker += uuids.size();
  30.                     continue;
  31.                 }
  32.  
  33.                 for (UUID uuid : uuids) {
  34.                     pageAmountTracker--;
  35.  
  36.                     if (pageAmountTracker < 0) {
  37.                         leaderboard = leaderboard.append(messagesData.getMessage(Message.LEADERBOARD_ENTRY,
  38.                                 Placeholder.unparsed("rank", String.valueOf(posTracker)),
  39.                                 Placeholder.unparsed("player",
  40.                                         Objects.requireNonNullElse(Bukkit.getOfflinePlayer(uuid).getName(), "null")),
  41.                                 Placeholder.unparsed("kills", String.valueOf(killAmount))));
  42.                         posTracker++;
  43.                     }
  44.  
  45.                     if (pageAmountTracker == -maxPageEntries)
  46.                         break loop;
  47.                 }
  48.             }
  49.         }
  50.  
  51.         if (pageNumber > 1)
  52.             leaderboard = leaderboard.append(messagesData.getMessage(Message.LEADERBOARD_FOOTER_NORMAL));
  53.         else
  54.             leaderboard = leaderboard.append(messagesData.getMessage(Message.LEADERBOARD_FOOTER_NO_PREVIOUS_PAGE));
  55.  
  56.         sender.reply(leaderboard);
  57.         currentPageMap.put(senderName, pageNumber);
  58.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement