因此,我试图制作一个程序,使用我的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分为两个字符串。
有人能告诉我我做错了什么吗?谢谢你的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!