Skip to content

Commit ae8208f

Browse files
authored
Merge pull request #503 from danthe1st/thanks-unknown-user
fix /leaderboard thanks for non-members
2 parents 578bf7a + d49194a commit ae8208f

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

src/main/java/net/discordjug/javabot/systems/user_commands/leaderboard/ThanksLeaderboardSubcommand.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import net.discordjug.javabot.util.Responses;
88
import net.dv8tion.jda.api.EmbedBuilder;
99
import net.dv8tion.jda.api.entities.Guild;
10-
import net.dv8tion.jda.api.entities.Member;
10+
import net.dv8tion.jda.api.entities.UserSnowflake;
1111
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
1212
import net.dv8tion.jda.api.interactions.commands.build.SubcommandData;
1313

@@ -50,30 +50,30 @@ SELECT COUNT(id), helper_id
5050
FROM help_channel_thanks
5151
GROUP BY helper_id""", event.getGuild()).stream()
5252
.limit(3)
53-
.map(p -> String.format(format, p.getSecond(), p.getFirst().getUser().getAsMention()))
53+
.map(p -> String.format(format, p.getSecond(), p.getFirst().getAsMention()))
5454
.collect(collector);
5555
String helpersThisWeek = getCounts("""
5656
SELECT COUNT(id), helper_id
5757
FROM help_channel_thanks
5858
WHERE thanked_at > DATEADD('week', -1, CURRENT_TIMESTAMP(0))
5959
GROUP BY helper_id""", event.getGuild()).stream()
6060
.limit(3)
61-
.map(p -> String.format(format, p.getSecond(), p.getFirst().getUser().getAsMention()))
61+
.map(p -> String.format(format, p.getSecond(), p.getFirst().getAsMention()))
6262
.collect(collector);
6363
String totalHelped = getCounts("""
6464
SELECT COUNT(id) AS count, user_id
6565
FROM help_channel_thanks
6666
GROUP BY user_id""", event.getGuild()).stream()
6767
.limit(3)
68-
.map(p -> String.format(format, p.getSecond(), p.getFirst().getUser().getAsMention()))
68+
.map(p -> String.format(format, p.getSecond(), p.getFirst().getAsMention()))
6969
.collect(collector);
7070
String helpedThisWeek = getCounts("""
7171
SELECT COUNT(id) AS count, user_id
7272
FROM help_channel_thanks
7373
WHERE thanked_at > DATEADD('week', -1, CURRENT_TIMESTAMP(0))
7474
GROUP BY user_id""", event.getGuild()).stream()
7575
.limit(3)
76-
.map(p -> String.format(format, p.getSecond(), p.getFirst().getUser().getAsMention()))
76+
.map(p -> String.format(format, p.getSecond(), p.getFirst().getAsMention()))
7777
.collect(collector);
7878
EmbedBuilder embed = new EmbedBuilder()
7979
.setTitle("Thanks Leaderboard")
@@ -86,20 +86,18 @@ WHERE thanked_at > DATEADD('week', -1, CURRENT_TIMESTAMP(0))
8686
});
8787
}
8888

89-
private List<Pair<Member, Long>> getCounts(String query, Guild guild) {
89+
private List<Pair<UserSnowflake, Long>> getCounts(String query, Guild guild) {
9090
try {
9191
return dbActions.mapQuery(
9292
query,
9393
s -> {
9494
},
9595
rs -> {
96-
List<Pair<Member, Long>> memberData = new ArrayList<>();
96+
List<Pair<UserSnowflake, Long>> memberData = new ArrayList<>();
9797
while (rs.next()) {
9898
long count = rs.getLong(1);
9999
long userId = rs.getLong(2);
100-
Member member = guild.retrieveMemberById(userId).complete();
101-
if (member == null) continue;
102-
memberData.add(new Pair<>(member, count));
100+
memberData.add(new Pair<>(UserSnowflake.fromId(userId), count));
103101
}
104102
// Sort with high counts first.
105103
memberData.sort((o1, o2) -> Long.compare(o2.getSecond(), o1.getSecond()));

0 commit comments

Comments
 (0)