Advertisement
raffel080108

Untitled

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