|
6 | 6 | import net.discordjug.javabot.api.routes.CaffeineCache; |
7 | 7 | import net.discordjug.javabot.api.routes.leaderboard.help_experience.model.ExperienceUserData; |
8 | 8 | import net.discordjug.javabot.systems.help.HelpExperienceService; |
| 9 | +import net.discordjug.javabot.systems.help.model.HelpAccount; |
9 | 10 | import net.discordjug.javabot.util.Pair; |
10 | 11 | import net.dv8tion.jda.api.JDA; |
11 | 12 | import net.dv8tion.jda.api.entities.Guild; |
|
18 | 19 | import org.springframework.web.bind.annotation.RequestParam; |
19 | 20 | import org.springframework.web.bind.annotation.RestController; |
20 | 21 |
|
| 22 | +import java.util.ArrayList; |
21 | 23 | import java.util.List; |
22 | 24 | import java.util.concurrent.TimeUnit; |
23 | 25 |
|
|
26 | 28 | */ |
27 | 29 | @RestController |
28 | 30 | public class HelpExperienceLeaderboardController extends CaffeineCache<Pair<Long, Integer>, List<ExperienceUserData>> { |
29 | | - private static final int PAGE_AMOUNT = 8; |
| 31 | + private static final int PAGE_AMOUNT = 10; |
30 | 32 | private final JDA jda; |
31 | 33 | private final HelpExperienceService helpExperienceService; |
32 | 34 |
|
@@ -65,9 +67,13 @@ public ResponseEntity<List<ExperienceUserData>> getHelpExperienceLeaderboard( |
65 | 67 | } |
66 | 68 | List<ExperienceUserData> members = getCache().getIfPresent(new Pair<>(guild.getIdLong(), page)); |
67 | 69 | if (members == null || members.isEmpty()) { |
68 | | - members = helpExperienceService.getTopAccounts(PAGE_AMOUNT, page).stream() |
69 | | - .map(p -> ExperienceUserData.of(p, jda.retrieveUserById(p.getUserId()).complete())) |
70 | | - .toList(); |
| 70 | + List<HelpAccount> topAccounts = helpExperienceService.getTopAccounts(PAGE_AMOUNT, page); |
| 71 | + members = new ArrayList<>(topAccounts.size()); |
| 72 | + for (int i = 0; i < topAccounts.size(); i++) { |
| 73 | + HelpAccount acc = topAccounts.get(i); |
| 74 | + int rank = (page - 1) * PAGE_AMOUNT + 1 + i; |
| 75 | + members.add(ExperienceUserData.of(acc, jda.retrieveUserById(acc.getUserId()).complete(), rank)); |
| 76 | + } |
71 | 77 | getCache().put(new Pair<>(guild.getIdLong(), page), members); |
72 | 78 | } |
73 | 79 | return new ResponseEntity<>(members, HttpStatus.OK); |
|
0 commit comments