You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JDA开发Discord机器人时getContentDisplay()返回空字符串问题

问题描述

我正在学习JDA框架开发Discord机器人,想实现控制台打印测试服务器中发送的消息的功能,但运行代码后,发送任意消息控制台都没有输出。尝试调用e.getMessage().getContentRaw()也得到空字符串,请问我的代码哪里有问题?

主类代码
package net.lib.first;

import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.entities.Activity;
import net.dv8tion.jda.api.entities.Message;
import net.lib.first.event.Listener;

import javax.security.auth.login.LoginException;

public class Main {
    public static void main(String[] args) throws LoginException {
        String token = (my bot token);
        JDABuilder builder = JDABuilder.createDefault(token);
        builder.addEventListeners(new Listener());
        builder.setActivity(Activity.playing("Type !ping"));
        builder.build();

        Message.suppressContentIntentWarning();
    }
}
监听器类代码
package net.lib.first.event;

import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.jetbrains.annotations.NotNull;

public class Listener extends ListenerAdapter {
    @Override
    public void onMessageReceived(@NotNull MessageReceivedEvent e) {
        System.out.println(e.getMessage().getContentDisplay());
    }
}
问题原因与解决方法

核心问题是未启用消息内容意图(Message Content Intent),这是Discord针对机器人权限的新限制,不开启的话JDA无法获取消息内容,自然输出空字符串或无有效内容。

修正步骤:

  1. 在Discord开发者平台开启意图

    • 登录Discord开发者门户,进入你的机器人应用页面
    • 切换到「Bot」标签页,找到「Privileged Gateway Intents」区域
    • 勾选「Message Content Intent」并保存设置
  2. 在代码中启用该意图
    当前调用Message.suppressContentIntentWarning()只是隐藏警告,并未实际启用意图。需要在构建JDA实例时明确添加:
    修改Main类代码,创建JDABuilder后加入:

    builder.enableIntents(GatewayIntent.MESSAGE_CONTENT);
    

    同时导入对应类:

    import net.dv8tion.jda.api.requests.GatewayIntent;
    

另外,Message.suppressContentIntentWarning()建议放在builder.build()之前调用,但最关键的还是完成上述两步意图启用操作。

内容的提问来源于stack exchange,提问作者Libration

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:03:38