java - Java Discord API 命令不打印任何内容
问题描述
所以我对这个 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!BRO”。每当用户聊天“-info”但实际上,什么都没有出现。是的,我确实邀请了不和谐机器人并做了 Oauth2 等等,结果很好,只是我不知道为什么它不打印它应该打印的内容。
解决方案
您没有覆盖 ListenerAdapter 中的方法。引用故障排除指南:
4. 你没有重写正确的方法?
使用@Override
并查看是否失败。您的方法必须使用 ListenerAdapter 中定义的正确名称和参数列表。阅读更多。
因此,正确的方法名称记录在ListenerAdapter javadoc中,即onGuildMessageReceived
.
推荐阅读
- google-cloud-platform - GCP 管理多个云功能流的最佳方式
- azure - 在 Durable Functions 中等待外部事件
- python - 无法从线性函数中获得正确的坐标
- python - 熊猫:绘图时忽略索引中的年份,但保留小时/日/月
- python - VS & Anaconda 启动器
- scala - Akka Stream, Tcp().bind, 客户端关闭套接字时的处理
- assembly - 在 MIPS 中加载和存储值的问题
- c# - ASP.NET C# JSON 反序列化嵌套数组:无法对空引用执行运行时绑定
- java - 使用 JAXB 的问题,我的 POJO 字段没有被映射
- c++ - 如何确定强类型的基类型是否为 std::array
仅使用标准库