Discord.js中if语句异常:message.content为空的问题排查
解决Discord机器人无法读取消息内容的问题
问题根源
Discord自v14版本起,访问消息内容需要单独声明MESSAGE_CONTENT特权意图。你的代码中未添加该意图,导致机器人无法获取message.content的值,自然无法触发预设的判断逻辑。
修复步骤
开启平台端特权意图
登录Discord开发者平台,进入你的机器人应用页面,在「Privileged Gateway Intents」板块中,开启「Message Content Intent」开关。修改代码添加意图
在客户端初始化的intents数组中加入"MESSAGE_CONTENT",修改后的代码如下:
const Discord = require("discord.js") const client = new Discord.Client( { intents: ["GUILDS", "GUILD_MEMBERS", "GUILD_MESSAGES", "MESSAGE_CONTENT"] } ) client.login("你的机器人Token") client.on("ready", () => { console.log("Bot ONLINE"); }) client.on("messageCreate", (message) => { console.log(message.content) // 现在可正常打印消息内容 if (message.content.includes("the condition")) { // 用includes匹配包含特定字符串的场景更灵活 message.channel.send("the message"); } })
- 权限检查
确保你的机器人在目标频道拥有「查看频道」和「发送消息」的权限,避免因权限不足导致功能异常。
内容的提问来源于stack exchange,提问作者SAMUELE BERNARDI
相关产品推荐
相关产品推荐

