我正在学习如何用Java创建一个discord机器人,但是无论我怎么做,机器人都不能从服务器接收消息,它知道消息已经发送,但是不能得到消息的内容。
我试过getContentRaw()、getcontentDisplayed()、getContentStripped()方法,但它们都只返回空字符串。
public static void main(String[] args) {
JDA jda = JDABuilder.createDefault(token)
.setActivity(Activity.playing("something"))
.enableIntents(GatewayIntent.GUILD_MESSAGES)
.enableIntents(GatewayIntent.DIRECT_MESSAGES)
.addEventListeners(new DiscordBot())
.build();
}
@Override
public void onMessageReceived(@NotNull MessageReceivedEvent event) {
System.out.println(event.getMessage().getContentRaw());
System.out.println(event.getAuthor().getName());
}
我可以在控制台中看到作者。
我也尝试了不同版本的依赖项,但我所尝试的返回相同的空字符串。我给了机器人管理员权限(我不想发布它,我只是为了好玩而创建它),但它仍然不工作。
我尝试在构建器中使用enableIntents(GatewayIntent.MESSAGE_CONTENT)方法,但程序立即停止,错误代码为0
2条答案
按热度按时间nhaq1z211#
您没有添加以下内容:
GatewayIntent.MESSAGE_CONTENT
[在此输入图像描述][1]不和谐,如果我没有错最近添加了,没有这个选项不会留下消息,所以,如果你尝试tageando的机器人将显示,昨天我花了同样的事情,但研究发现了解决方案(1)请确保在discord开发人员门户中激活相应的初始化[1]:https://i.stack.imgur.com/8VMRv.png
(2)将以下代码添加到您的代码[2]:
xj3cbfub2#
谢谢,这真的让我很困扰