我正在使用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”不起作用。它应该在加载机器人时起作用
答案 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();