【发布时间】:2020-06-16 19:26:03
【问题描述】:
我使用的是 JDA 4.1.1_110,这是我的代码,我使用 ListenerAdapter 来监听事件,
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class Commander extends ListenerAdapter {
public void onMessageReceieved(MessageReceivedEvent event) {
String[] args = event.getMessage().getContentRaw().split("\\s+");
if(args[0].equalsIgnoreCase(EmbedBot.prefix+"info")) {
event.getChannel().sendTyping().queue();
event.getChannel().sendMessage("Hello").queue();
}
我也在我的机器人主类中注册了这个类,
import javax.security.auth.login.LoginException;
import net.dv8tion.jda.api.AccountType;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.OnlineStatus;
import net.dv8tion.jda.api.entities.Activity;
public class EmbedBot {
public static JDA jda;
public static String prefix = "$";
public static void main(String args[]) throws LoginException {
jda = new
JDABuilder(AccountType.BOT).setToken("the token i can't show").build();
jda.getPresence().setStatus(OnlineStatus.ONLINE);
jda.getPresence().setActivity(Activity.listening("Rohan"));
jda.addEventListener(new Commander());
}
}
现在在我的测试服务器的#general 频道上键入“$info”时,我没有收到机器人的任何响应,机器人显示了所有功能,如在线状态和“收听 Rohan”活动,但它不是t 发送任何消息。我已确保该机器人具有发送消息的所有权限,并且我还检查了#general 频道的角色权限。该机器人具有发送消息的所有权限,但是当我键入“$info”时它没有发送。
【问题讨论】:
-
您没有正确拼写您从 ListenerAdapter 覆盖的方法名称。它的“onMessageReceived”。
-
@Minn 不明白,我哪里拼错了?
-
天哪,真是个愚蠢的错误:P