jda成员在使用retrievebytag(username,discrim)时返回null

tkclm6bt  于 2021-07-08  发布在  Java
关注(0)|答案(0)|浏览(182)

因此,我试图制作一个程序,使用我的minecraft服务器上的webhook将json数据发送到服务器。这一部分已经完成了,解析所有内容也是如此。一切都返回正确的值。
但是,当我试图通过username/discrim(retrievebytag)检索一个成员并尝试更改昵称时,它只会说该成员为null。
这是我的密码:

String message = event.getMessage().getContentRaw();

                Gson gson = new Gson();

                Reader inputString = new StringReader(message);

                try (final BufferedReader br = new BufferedReader(inputString)) {
                    DeserializeRanked dm = gson.fromJson(br, DeserializeRanked.class);

                    String[] winnerArray = dm.getWinnerDiscord().split("#");
                    String[] loserArray = dm.getLoserDiscord().split("#");

                    try {
                        Member winnerDiscord = event.getGuild().getMemberByTag(winnerArray[0], winnerArray[1]);
                        Member loserDiscord = event.getGuild().getMemberByTag(loserArray[0], loserArray[1]);

                        winnerDiscord.modifyNickname("[" + dm.getWinnerNewElo() + "] " + winnerDiscord.getNickname());
                        loserDiscord.modifyNickname("[" + dm.getLoserNewElo() + "] " + loserDiscord.getNickname());

                        channel.sendMessage("Nicknames updated.").queue();
                    }

                    catch (Exception e) {
                        channel.sendMessage("Something went wrong trying to retrieve/update nicknames").queue();
                        e.printStackTrace();
                    }

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

这是它抛出错误的行:

winnerDiscord.modifyNickname("[" + dm.getWinnerNewElo() + "] " + winnerDiscord.getNickname());

下面是确切的错误:

java.lang.NullPointerException: Cannot invoke "net.dv8tion.jda.api.entities.Member.getNickname()" because "winnerDiscord" is null

我不知道为什么它说它是空的。
这是getdiscordwinner和getdiscordloser返回的结果:

Joey#!7847
deagan#0313

你可以从其余部分看出,我将username和discrim分为两个字符串。
有人能告诉我我做错了什么吗?谢谢你的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题