所以我对这个JDA库非常陌生,但我精通Java。我似乎不明白为什么下面的代码不起作用。我有一个Init类和一个命令类。
初始化类:
package corp.vjz.bots.discord.testbot;
import javax.security.auth.login.LoginException;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.OnlineStatus;
public class Initialize {
public static void main(String[] args) throws LoginException {
//starts the discord robot
JDA jda = JDABuilder.createDefault("NzIyMTMyNjczOTkyMzI3MzEw.Xueodg.EpeszQDFxc1IM21_CZmKMUv7Wys").build();
//sets the status of the discord robot
jda.getPresence().setStatus(OnlineStatus.ONLINE);
//add a new event listener
jda.addEventListener(new Commands());
}
}
这是我的命令类:
package corp.vjz.bots.discord.testbot;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class Commands extends ListenerAdapter {
private static String PREFIX = "-";
public void onGuildMsgReceived(GuildMessageReceivedEvent event) {
//parse through message
String[] args = event.getMessage().getContentRaw().split("\s+");
if (args[0].equalsIgnoreCase(Commands.PREFIX + "info")) {
event.getChannel().sendTyping().queue();
event.getChannel().sendMessage("Wassup! BRO.").queue();
}
}
}
这应该说";Wassup!兄弟"每当用户"聊天"时-信息";但在现实中,什么都没有出现。是的,我确实邀请了discord机器人,做了Oauth2等等,结果很好,只是我不知道它为什么不打印它应该打印的内容。
您没有覆盖ListenerAdapter中的方法。引用故障排除指南:
4.您没有覆盖正确的方法
使用@Override
并查看它是否失败。您的方法必须使用ListenerAdapter中定义的正确名称和参数列表。阅读更多。
因此,正确的方法名称记录在ListenerAdapter javadoc中,即onGuildMessageReceived
。
您没有为if命令编写else代码;