Discord JDA OnReady 不起作用

Discord JDA OnReady doesn't work

我正在使用 JDA (Java) 为 Discord 创建一个机器人。我在 java 控制台上尝试简单调试消息时遇到问题。 我想打印 "Bot running" 但不起作用。它不打印。

问题出在onReady(),请看代码。

public class MessageListener extends ListenerAdapter
{
   public static void main(String[] args)
        throws LoginException, RateLimitedException, InterruptedException
   {
     JDA jda = new  JDABuilder(AccountType.BOT).setToken("x").buildBlocking();
    jda.addEventListener(new MessageListener());
}

@Override
public void onMessageReceived(MessageReceivedEvent event)
{
    if (event.isFromType(ChannelType.PRIVATE))
    {
        System.out.printf("[PM] %s: %s\n", event.getAuthor().getName(),
                                event.getMessage().getContent());
    }
}
@Override
public void onReady(ReadyEvent e){

            String server = "bot running\n";
            System.out.println(server);
    }   
}

编辑: 代码已更新 对不起,我弄乱了代码,但是 "OnReady" 不起作用。它应该在加载机器人时工作

因为您是在 Bot 启动后添加监听器。当您在 jda 上调用 buildBlocking 时,Bot 将启动并阻止此线程。所以听众永远不会被添加。

JDABuilder builder = new JDABuilder(AccountType.BOT);
builder.setToken("x");
builder.addEventListener(new MessageListener());
JDA jda = builder.buildBlocking();