Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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 昵称命令不';更改昵称时,不要将usernote替换为nothing_Java_Discord - Fatal编程技术网

Java 昵称命令不';更改昵称时,不要将usernote替换为nothing

Java 昵称命令不';更改昵称时,不要将usernote替换为nothing,java,discord,Java,Discord,我最近发现了这个错误:当一个用户在服务器中没有昵称,而你试图用我的命令重命名他们时,它会像S!昵称e=(用户名)e 尝试过两次重命名用户或两次替换提及内容,但都不起作用 以下是我为其重命名的行(应该是唯一重要的行): 哦,还有一个截图: 您可以使用String#split正确解析命令: String命令=“s!昵称新昵称”; String[]parts=command.split(“\\s+”,3); member.modify昵称(parts[2]).queue(); 您的问题是,您希望提及

我最近发现了这个错误:当一个用户在服务器中没有昵称,而你试图用我的命令重命名他们时,它会像
S!昵称e
=(用户名)
e

尝试过两次重命名用户或两次替换提及内容,但都不起作用

以下是我为其重命名的行(应该是唯一重要的行):

哦,还有一个截图:

您可以使用
String#split
正确解析命令:

String命令=“s!昵称新昵称”;
String[]parts=command.split(“\\s+”,3);
member.modify昵称(parts[2]).queue();
您的问题是,您希望提及字符串总是相同的。这是一个错误的假设,因为有两种不同的提及格式可以互换使用。如果提及格式不同,
replace
函数将无法正确替换内容,只返回相同的字符串


考虑到您知道要删除的部分始终位于字符串开头,后跟空格,因此使用replace是有问题的。使用
split
indexOf
substring
进行解析非常容易。我还建议开始使用变量以避免像这样的200个字符长的行。

欢迎使用Stackoverflow!另外请注意,您可以直接在您的文章中嵌入图像,不需要链接到第三方。请添加更多详细信息。同样,这种级联函数调用而不进行任何错误处理的方式也不安全。
event.getMessage().getMentionedMembers().get(0).modifyNickname(event.getMessage().getContentRaw().substring(11).replace(event.getMessage().getMentionedMembers().get(0).getAsMention(), "")).queue();