Discord JDA OnReady不起作用

时间:2017-07-17 23:40:41

标签: java discord

我正在使用JDA(Java)为Discord创建一个bot。我试图在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);
    }   
}

编辑: 代码已更新 Sry我搞砸了代码,但“OnReady”不起作用。它应该在加载机器人时起作用

1 个答案:

答案 0 :(得分:1)

因为您在Bot启动后添加了Listener。当您在jda上调用buildBlocking时,Bot启动并阻止此Thread。所以听众永远不会被添加。

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