Java Discord API 命令不打印任何内容
Posted
技术标签:
【中文标题】Java Discord API 命令不打印任何内容【英文标题】:Java Discord API commands printing nothing 【发布时间】:2020-12-30 22:11:39 【问题描述】:所以我对这个 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 等等,结果很好,只是我不知道为什么它不打印它应该打印的内容。
【问题讨论】:
【参考方案1】:你没有为 if 命令编写 else 代码;
【讨论】:
【参考方案2】:您没有覆盖来自 ListenerAdapter 的方法。引用the troubleshooting guide:
4.您没有覆盖正确的方法? 使用
@Override
看看是否失败。您的方法必须使用 ListenerAdapter 中定义的正确名称和参数列表。 Read More.
所以正确的方法名称记录在ListenerAdapter javadoc 中,即onGuildMessageReceived
。
【讨论】:
以上是关于Java Discord API 命令不打印任何内容的主要内容,如果未能解决你的问题,请参考以下文章
Discord Bot 不会删除消息(带有 JDA API 的 Eclipse IDE Java)
将 CURL 与 discord.js 和 5sim API 一起使用
EventWaiter - Java Discord API