diff --git a/src/main/java/net/discordjug/javabot/systems/user_commands/leaderboard/ThanksLeaderboardSubcommand.java b/src/main/java/net/discordjug/javabot/systems/user_commands/leaderboard/ThanksLeaderboardSubcommand.java index 1c283c4be..969f5e046 100644 --- a/src/main/java/net/discordjug/javabot/systems/user_commands/leaderboard/ThanksLeaderboardSubcommand.java +++ b/src/main/java/net/discordjug/javabot/systems/user_commands/leaderboard/ThanksLeaderboardSubcommand.java @@ -7,7 +7,7 @@ import net.discordjug.javabot.util.Responses; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.UserSnowflake; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.interactions.commands.build.SubcommandData; @@ -50,7 +50,7 @@ SELECT COUNT(id), helper_id FROM help_channel_thanks GROUP BY helper_id""", event.getGuild()).stream() .limit(3) - .map(p -> String.format(format, p.getSecond(), p.getFirst().getUser().getAsMention())) + .map(p -> String.format(format, p.getSecond(), p.getFirst().getAsMention())) .collect(collector); String helpersThisWeek = getCounts(""" SELECT COUNT(id), helper_id @@ -58,14 +58,14 @@ SELECT COUNT(id), helper_id WHERE thanked_at > DATEADD('week', -1, CURRENT_TIMESTAMP(0)) GROUP BY helper_id""", event.getGuild()).stream() .limit(3) - .map(p -> String.format(format, p.getSecond(), p.getFirst().getUser().getAsMention())) + .map(p -> String.format(format, p.getSecond(), p.getFirst().getAsMention())) .collect(collector); String totalHelped = getCounts(""" SELECT COUNT(id) AS count, user_id FROM help_channel_thanks GROUP BY user_id""", event.getGuild()).stream() .limit(3) - .map(p -> String.format(format, p.getSecond(), p.getFirst().getUser().getAsMention())) + .map(p -> String.format(format, p.getSecond(), p.getFirst().getAsMention())) .collect(collector); String helpedThisWeek = getCounts(""" SELECT COUNT(id) AS count, user_id @@ -73,7 +73,7 @@ SELECT COUNT(id) AS count, user_id WHERE thanked_at > DATEADD('week', -1, CURRENT_TIMESTAMP(0)) GROUP BY user_id""", event.getGuild()).stream() .limit(3) - .map(p -> String.format(format, p.getSecond(), p.getFirst().getUser().getAsMention())) + .map(p -> String.format(format, p.getSecond(), p.getFirst().getAsMention())) .collect(collector); EmbedBuilder embed = new EmbedBuilder() .setTitle("Thanks Leaderboard") @@ -86,20 +86,18 @@ WHERE thanked_at > DATEADD('week', -1, CURRENT_TIMESTAMP(0)) }); } - private List> getCounts(String query, Guild guild) { + private List> getCounts(String query, Guild guild) { try { return dbActions.mapQuery( query, s -> { }, rs -> { - List> memberData = new ArrayList<>(); + List> memberData = new ArrayList<>(); while (rs.next()) { long count = rs.getLong(1); long userId = rs.getLong(2); - Member member = guild.retrieveMemberById(userId).complete(); - if (member == null) continue; - memberData.add(new Pair<>(member, count)); + memberData.add(new Pair<>(UserSnowflake.fromId(userId), count)); } // Sort with high counts first. memberData.sort((o1, o2) -> Long.compare(o2.getSecond(), o1.getSecond()));