From 31c5727d135af8a520313b8104429f6c875639c2 Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Wed, 7 Aug 2019 20:47:15 -0700 Subject: [PATCH] + Added fix for leader-board attempting to display non-existing user --- src/commands/general/CommandLeaderboard.java | 8 ++++++-- src/core/ObjectBuilderFactory.java | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/commands/general/CommandLeaderboard.java b/src/commands/general/CommandLeaderboard.java index 3d5c54d..b461077 100644 --- a/src/commands/general/CommandLeaderboard.java +++ b/src/commands/general/CommandLeaderboard.java @@ -83,13 +83,17 @@ public class CommandLeaderboard extends Command embed.title = LocStrings.stub("LeaderboardTitle"); embed.descriptionText = ""; - for(int i = 0; i < listSize && i < users.size(); ++i) + int indexToDisplay = 1; + for(int i = 0; indexToDisplay <= listSize && i < users.size(); ++i) { // Only now that we've sorted do we do the full construction and caching of users Pair userPair = users.get(i); KittyUser cachedUser = ObjectBuilderFactory.getKittyUser(guildID, userPair.Second); - embed.descriptionText += "**" + (i + 1) + ":** " + userPair.First + " - " + cachedUser.name; + if(cachedUser == null) + continue; + + embed.descriptionText += "**" + (indexToDisplay++) + ":** " + userPair.First + " - " + cachedUser.name; embed.descriptionText += "\n"; } diff --git a/src/core/ObjectBuilderFactory.java b/src/core/ObjectBuilderFactory.java index db66cc3..e376c81 100644 --- a/src/core/ObjectBuilderFactory.java +++ b/src/core/ObjectBuilderFactory.java @@ -319,8 +319,13 @@ public class ObjectBuilderFactory if(user == null) { Guild jdaGuild = kitty.getGuildById(guildID); + if(jdaGuild == null) return null; + Member jdaMember = jdaGuild.getMemberById(userID); + if(jdaMember == null) return null; + User jdaUser = jdaMember.getUser(); + if(jdaUser == null) return null; user = extractUserByJDAUser(guildID, jdaMember.getNickname(), jdaUser.getId(), jdaUser.getAvatarUrl(), jdaUser.getId()); updateUser(user, jdaMember);