Discord.JS V13 client.on messagecreate 未触发

Posted

技术标签:

【中文标题】Discord.JS V13 client.on messagecreate 未触发【英文标题】:Discord.JS V13 client.on messagecreate not firing 【发布时间】:2021-12-03 04:04:42 【问题描述】:

我刚刚将我的 Discord.js 机器人升级到 v13,现在 client.on(messageCreate) 函数没有触发?我的代码都没有运行过,我真的很困惑为什么。

在任何人问之前,我已经确定了我的意图。

const client = new Discord.Client(
  intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.DIRECT_MESSAGES ],
  partials: ['MESSAGE', 'CHANNEL', 'REACTION'], 
);

我有两个函数,client.on 触发但消息没有

client.on('ready', () => 
  console.log(`Logged in as $client.user.tag!`);
);

client.on('messageCreate', msg => 
  console.log(anything)

【问题讨论】:

您能否也发布有关此事件的代码? 请提供足够的代码,以便其他人更好地理解或重现问题。 好的,我已经添加到我的活动中了吗? 有什么错误或者运行顺利吗? 运行流畅,就是没有输出什么的 【参考方案1】:

确保在您的意图列表中包含GUILDS。否则,bot 只能看到在 bot 本身发送消息之后发送的消息。

就我而言,我需要设置这些:

partials: ['MESSAGE', 'CHANNEL', 'REACTION']
intents: ['DIRECT_MESSAGES', 'DIRECT_MESSAGE_REACTIONS', 'GUILD_MESSAGES', 'GUILD_MESSAGE_REACTIONS', 'GUILDS']

但具体情况会因您的用例而异。

【讨论】:

这不是我的问题的答案,但在解决问题后这是需要的 @TonyPatino 您是如何解决问题的?我也面临同样的问题 @DericLima 不幸的是,我认为这不会解决您的问题,但我重新安装了 discord.js,因为我认为我篡改了一些使其无法正常工作的东西,但请确保您确实有部分内容和意图设置如上。 @TonyPatino 不用担心,谢谢。我最终解决了这个问题。我误解了机器人在 Discord 中的工作方式,所以我错误地使用了事件。现在一切都好 @DericLima 很高兴听到【参考方案2】:

您可以尝试用异步选项替换您的 messageCreate,可能无法解决您的问题,但您可以随时尝试

client.on('messageCreate', async (message) => 
      console.log("DEBUG");

查看您的控制台是否有任何错误,或者当您向机器人可以看到的频道发送消息时它是否发送“DEBUG”消息。

在我自己的机器人上,我没有设置部分,所以你可能也不需要它们。

确保您还正确地包含了您的 discord.js,这里是示例:

const  Client, Intents  = require("discord.js");

【讨论】:

以上是关于Discord.JS V13 client.on messagecreate 未触发的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 discord.js 调用 SubCommand 的选项? (v13)

Discord.js:错误:更新到 v13 后“找不到模块 'node:events'”

Discord.js V13:如何编辑交互的消息对象?

Ping 为负值(Discord.js v13)

Discord.js V13 欢迎消息

Discord Bot 不播放音频 discord.js v13