【发布时间】:2021-10-26 11:10:22
【问题描述】:
我的机器人有点问题。我想创建一个“!command”来显示嵌入消息中的所有可用命令。但是如果我尝试运行它,我会得到错误:java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
它还说,嵌入消息的 sendMessage-Method 已被弃用。
这是我的代码:
公共类命令扩展了 ListenerAdapter {
public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
String[] args = event.getMessage().getContentRaw().split("\\s+");
// der angegebene Member
Member member = event.getMessage().getMentionedMembers().get(0);
// der angegebene User
User user = event.getMessage().getMentionedUsers().get(0);
// der command für einen kick
if (args[0].equalsIgnoreCase(Main.prefix + "hauste")) {
event.getChannel().sendMessage("Hauste rein " + args[1]).queue();
sendMess(user, "Wurdest halt gekickt ");
member.kick("Bye").queue();
// der command für einen spam
} else if (args[0].equalsIgnoreCase(Main.prefix + "spam")) {
for (int i = 0; i < Integer.parseInt(args[2]); i++) {
sendMess(user, args[3]);
}
} else if (args[0].equalsIgnoreCase(Main.prefix + "commands")) {
EmbedBuilder commands = new EmbedBuilder();
commands.setTitle("Alle Commands", null);
commands.setDescription(
"1. Kick : !kick @user" + "2. Spam : !spam @user {Anzahl der Nachrichten} {Nachricht}");
commands.setColor(Color.red);
event.getChannel().sendMessage(commands.build()).queue();
}
}
/**
* Extra Methode um dem User eine Nachricht zu schicken
*
* @param user Der angegebene User
* @param text Der gewünschte Text
*/
public void sendMess(User user, String text) {
user.openPrivateChannel().queue((channel) -> {
channel.sendMessage(text).queue();
});
}
}
有人知道如何解决这个问题吗?
芬恩
【问题讨论】:
-
如果没有人提到你的
get(0)将会抛出。 -
@Minn 你将如何检查它?现在我这样做: if (!event.getMessage().getMentionedMembers().isEmpty() && !event.getMessage().getMentionedUsers().isEmpty())
-
@Minn 但是当我编码时,我经常会卡住。它来自那个 if 子句吗?
标签: java exception discord bots indexoutofboundsexception