首页 > 解决方案 > 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 等等,结果很好,只是我不知道为什么它不打印它应该打印的内容。

标签: javadiscordbotsdiscord-jda

解决方案


您没有覆盖 ListenerAdapter 中的方法。引用故障排除指南

4. 你没有重写正确的方法?
使用@Override并查看是否失败。您的方法必须使用 ListenerAdapter 中定义的正确名称和参数列表。阅读更多。

因此,正确的方法名称记录在ListenerAdapter javadoc中,即onGuildMessageReceived.


推荐阅读