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

Discord Bot出现Unavailable Guilds错误导致messageCreate不生效排查

问题定位与解决方案

1. 核心原因:网关意图配置完全错误

你代码中定义的const botIntents = 8对应的是Discord网关意图中的「服务器封禁事件」权限,完全不包含接收消息所需的权限位。
要触发messageCreate事件,你需要配置以下必要意图:

  • GUILDS(值:1):服务器基础交互必要权限
  • GUILD_MESSAGES(值:512):接收服务器消息事件必要权限
  • MESSAGE_CONTENT(值:32768):读取消息内容的特权权限,Discord v9 网关之后要求必须开启才能获取消息文本内容

正确的意图配置代码(两种写法任选其一)

写法1:使用discord.js提供的枚举值(更易维护)

const botIntents = [
  Intents.FLAGS.GUILDS,
  Intents.FLAGS.GUILD_MESSAGES,
  Intents.FLAGS.MESSAGE_CONTENT
];

写法2:直接计算权限值

三个权限的数值总和为 1 + 512 + 32768 = 33281,直接赋值即可:

const botIntents = 33281;

2. 额外必要配置:开启特权意图开关

上述MESSAGE_CONTENT属于Discord的特权网关意图,你需要手动在开发者后台开启:

  1. 打开Discord开发者平台,进入你的Bot对应应用页
  2. 切换到「Bot」标签页,下拉找到「Privileged Gateway Intents」区域
  3. 打开「Message Content Intent」的开关,保存设置

3. 日志异常说明

你观察到的Shard will not receive any more guild packets、Unavailable guild count: 1警告均由错误的意图配置导致:由于你没有配置GUILDS权限,网关不会向你推送任何服务器相关数据包,自然也无法识别你Bot加入的服务器。

修改完上述配置后重新运行代码即可正常触发messageCreate事件,控制台会输出对应消息内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:39:04