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

为何event.getMessage().getContentDisplay()无返回值?Discord Bot异常排查

JDA Bot无法响应!ping且消息内容为空的解决方案

问题分析

你的Bot无法响应!ping指令,且控制台输出消息内容为空,核心原因是未启用Discord的MESSAGE_CONTENT特权意图。从JDA 5版本开始,Discord限制了Bot读取消息内容的权限,必须手动开启该意图才能获取消息文本。

解决步骤

1. 在Discord开发者门户开启特权意图

  • 登录Discord开发者平台,打开你的Bot应用
  • 切换到「Bot」页面,找到「Privileged Gateway Intents」区域
  • 开启「Message Content Intent」选项

2. 修改代码添加必要的GatewayIntents

首先导入GatewayIntent类:

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

然后修改main方法中的JDABuilder配置,添加意图声明:

public static void main(String[] args) throws LoginException {
    JDA bot = JDABuilder.createDefault("TOKEN")
            .enableIntents(GatewayIntent.GUILD_MESSAGES, GatewayIntent.MESSAGE_CONTENT)
            .setActivity(Activity.playing("Working on this bot"))
            .addEventListeners(new DiscordBot())
            .build();
}

说明

  • GUILD_MESSAGES意图用于接收服务器内的消息事件
  • MESSAGE_CONTENT是特权意图,必须在开发者平台和代码中同时开启,才能正常获取消息的原始内容和展示内容
  • 替换addEventListener为addEventListeners是JDA推荐的写法,功能一致但更符合API规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:42:26