我使用的是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“活动,但它没有发送任何消息。我已经确保机器人拥有发送消息的所有权限,我还检查了#general通道的角色权限。机器人拥有发送消息的所有权限,但当我键入"$info“时,它不会发送消息。
发布于 2020-03-24 15:13:48
我认为您必须编写有关onMessageReceieved事件@Override的内容。我不确定..。
否则,也许可以查看机器人是否有权限
发布于 2020-12-19 15:04:39
您正在使用已弃用的类。
使用以下语法初始化:
JDA jda=JDABuilder.createDefault("ur token").addEventListeners(new Commander()).build();并在指挥官中使用onGuildMessageReceived。
https://stackoverflow.com/questions/60523756
复制相似问题