Discord.JS中message.reply方法无法正常运行是什么原因?
Discord.JS 消息回复功能失效解决方案
- 事件监听名称错误
Discord.JS v13 及以上版本已废弃message事件,替换为messageCreate事件,你当前代码监听的事件名已失效。 - 缺少必要的网关意图
初始化 Client 时配置的 intents 为空数组,接收服务器消息至少需要开启3个核心意图:Guilds(服务器基础访问权限)、GuildMessages(服务器消息访问权限)、MessageContent(消息内容读取权限)。 - 未开启特权意图开关
MessageContent属于 Discord 规定的特权意图,除了代码中配置外,还需要登录 Discord 开发者后台,在对应机器人应用的「Bot」设置页,开启 Privileged Gateway Intents 分类下的Message Content Intent开关。
修改后可正常运行的完整代码如下:
require('dotenv').config() const { Client, IntentsBitField } = require('discord.js') const client = new Client({ intents: [ IntentsBitField.Flags.Guilds, IntentsBitField.Flags.GuildMessages, IntentsBitField.Flags.MessageContent ] }); client.login(process.env.TOKEN); client.on('ready', () => { console.log(`${client.user.tag} has logged in`); }); client.on('messageCreate', function(message){ // 过滤机器人自身消息,避免触发死循环 if(message.author.bot) return; if(message.content === 'hello') { message.reply('hello buddy') } });
内容的提问来源于stack exchange,提问作者Alex is funny
相关产品推荐
相关产品推荐

