Discord bot 无法使用 JDA 在 java 中发送消息

Posted

技术标签:

【中文标题】Discord bot 无法使用 JDA 在 java 中发送消息【英文标题】:Discord bot unable to send messages in java using JDA 【发布时间】:2021-06-17 23:06:35 【问题描述】:

我的 discord bot 做了所有 neccaserry 的事情,所以在纸上它应该可以工作,但它没有

运行控制台/终端时打印如下:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J:
See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
details. SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
SLF4J: Defaulting to no-operation MDCAdapter implementation. SLF4J:
See http://www.slf4j.org/codes.html#no_static_mdc_binder for further
details. [main] INFO JDA - Login Successful! [JDA MainWS-WriteThread]
INFO WebSocketClient - Connected to WebSocket [JDA MainWS-ReadThread]
INFO JDA - Finished Loading!

下面的类 Main.java:

import net.dv8tion.jda.api.JDABuilder;

public class Main 
    public static void main(String[] args) throws Exception
        try 
            net.dv8tion.jda.api.JDA api = JDABuilder.createDefault("********************").build();
            api.addEventListener(new MyEventListener());
         catch (Exception exc) 
            exc.printStackTrace();
        
    

下面的类 MyEventListener.java:

import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class MyEventListener extends ListenerAdapter 
    public void onMessageReceived(MessageReceivedEvent event) 
        if (event.getAuthor().isBot()) return;
        
        Message message = event.getMessage();
        String content = message.getContentRaw();
        MessageChannel channel = event.getChannel();
        
        if (content.startsWith("?test")) 
            channel.sendMessage(":thinking:");
        
    


当我输入createDefault("********************").build(); 时 *********** 是机器人令牌,它是正确的

【问题讨论】:

你didn't call queue(). 控制台警告与您的问题无关。 【参考方案1】:

您没有在channel.sendMessage(":thinking:"); 上调用queue(),它返回MessageActionRestAction<Message> 的实现。有关更多信息,请参阅下面的链接。

更多细节:

Nothing happens when using x

RestAction in JDA

【讨论】:

以上是关于Discord bot 无法使用 JDA 在 java 中发送消息的主要内容,如果未能解决你的问题,请参考以下文章

Java Discord Bot (JDA) 检查是不是固定

如何修复此 JDA discord bot 错误?

Discord JDA Bot 在调用扩展类时抛出 NullPointerException

如何获取 Bot 消息 ID 并编辑消息 - Discord JDA Java

Discord Bot 不会删除消息(带有 JDA API 的 Eclipse IDE Java)

builder.build().getShardManager() 返回 null (JDA Discord Bot) |我如何调用 shardmanager?