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

Discord.js-commando 节流不起作用

如何使用 JDA 在 Discord 中创建文本通道:Java Discord Api

使用 Discord 的 API 以用户身份发送消息