Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用retrieveByTag(用户名,discrim)时返回null的JDA成员_Java_Discord - Fatal编程技术网

Java 使用retrieveByTag(用户名,discrim)时返回null的JDA成员

Java 使用retrieveByTag(用户名,discrim)时返回null的JDA成员,java,discord,Java,Discord,因此,我试图制作一个程序,使用我的minecraft服务器上的webhook将json数据发送到服务器。这一部分已经完成,解析所有内容也是如此。一切都返回正确的值 但是,当我试图通过用户名/discrim retrieveByTag检索一个成员并尝试更改昵称时,它只会说该成员为null 这是我的密码: String message = event.getMessage().getContentRaw(); Gson gson = new Gson();

因此,我试图制作一个程序,使用我的minecraft服务器上的webhook将json数据发送到服务器。这一部分已经完成,解析所有内容也是如此。一切都返回正确的值

但是,当我试图通过用户名/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拆分为两个字符串


有人能告诉我我做错了什么吗?非常感谢您的帮助。

您是否检查了成员是否在缓存中?