Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TreeMap<Integer, List<UUID>> leaderboardData = pluginData.getLeaderboardData();
- Component leaderboard = messagesData.getMessage(Message.LEADERBOARD_HEADER);
- Component pageDoesntExistMessage = messagesData.getMessage(Message.PAGE_DOESNT_EXIST,
- Placeholder.unparsed("page-number", String.valueOf(pageNumber)));
- if (leaderboardData.size() == 0) {
- if (pageNumber > 1) {
- sender.reply(pageDoesntExistMessage);
- return;
- }
- leaderboard = leaderboard.append(messagesData.getMessage(Message.LEADERBOARD_NO_ENTRIES));
- }
- else {
- int maxPageEntries = configData.getLeaderboardMaxPageEntries();
- if (Math.ceil((double) pluginData.getLeaderboardDataPlayersAmount() / maxPageEntries) < pageNumber) {
- sender.reply(pageDoesntExistMessage);
- return;
- }
- int pageAmountTracker = (pageNumber - 1) * maxPageEntries;
- int posTracker = pageAmountTracker + 1;
- loop:
- for (int i = leaderboardData.size() - 1; i >= 0; i--) {
- int killAmount = (int) leaderboardData.keySet().toArray()[i];
- List<UUID> uuids = leaderboardData.get(killAmount);
- if (pageAmountTracker >= uuids.size()) {
- pageAmountTracker -= uuids.size();
- posTracker += uuids.size();
- continue;
- }
- for (UUID uuid : uuids) {
- pageAmountTracker--;
- if (pageAmountTracker < 0) {
- leaderboard = leaderboard.append(messagesData.getMessage(Message.LEADERBOARD_ENTRY,
- Placeholder.unparsed("rank", String.valueOf(posTracker)),
- Placeholder.unparsed("player",
- Objects.requireNonNullElse(Bukkit.getOfflinePlayer(uuid).getName(), "null")),
- Placeholder.unparsed("kills", String.valueOf(killAmount))));
- posTracker++;
- }
- if (pageAmountTracker == -maxPageEntries)
- break loop;
- }
- }
- }
- if (pageNumber > 1)
- leaderboard = leaderboard.append(messagesData.getMessage(Message.LEADERBOARD_FOOTER_NORMAL));
- else
- leaderboard = leaderboard.append(messagesData.getMessage(Message.LEADERBOARD_FOOTER_NO_PREVIOUS_PAGE));
- sender.reply(leaderboard);
- currentPageMap.put(senderName, pageNumber);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement