Java不一致Bot事件,getMessage().getContentRaw()为空

iswrvxsc  于 2022-12-28  发布在  Java
关注(0)|答案(2)|浏览(161)

我正在学习如何用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

nhaq1z21

nhaq1z211#

您没有添加以下内容:GatewayIntent.MESSAGE_CONTENT [在此输入图像描述][1]不和谐,如果我没有错最近添加了,没有这个选项不会留下消息,所以,如果你尝试tageando的机器人将显示,昨天我花了同样的事情,但研究发现了解决方案
(1)请确保在discord开发人员门户中激活相应的初始化[1]:https://i.stack.imgur.com/8VMRv.png
(2)将以下代码添加到您的代码[2]:

JDA jda = JDABuilder.createDefault(token)
            .setActivity(Activity.playing("something"))
            .enableIntents(GatewayIntent.MESSAGE_CONTENT)
            .addEventListeners(new DiscordBot())
            .build();
xj3cbfub

xj3cbfub2#

谢谢,这真的让我很困扰

相关问题