Discord.JS V13客户端上的messagecreate事件未触发

4
我刚刚升级了我的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
你能否也发布与此事件相关的代码? - node_modules
1
好的,我已经添加了我的事件? - Tony Patino
@NotTrixxie 它运行顺畅,只是没有任何输出或其他东西。 - Tony Patino
样例代码不足以重现问题。请阅读有关提问的帮助中心文档,特别是关于如何提出好问题的部分。 - outis
我有一个类似的问题。我注意到只有在机器人已经在该频道发送过消息并且没有重新启动后,它才会触发。 - Bbrk24
显示剩余6条评论
2个回答

5

确保在你的意图列表中包含 GUILDS。否则,机器人只能查看在它自己发送消息后发送的消息。

在我的情况下,我需要设置以下内容:

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

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

那不是我的问题的答案,但在解决问题后,这是必需的。 - Tony Patino
@TonyPatino 你是怎么解决你的问题的?我也遇到了同样的问题。 - Deric Lima
@DericLima 很抱歉,我不认为这会解决你的问题,但我重新安装了discord.js,因为我认为我已经篡改了某些东西,导致它无法正常工作,请确保你已经像上面那样设置了部分和意图。 - Tony Patino
@TonyPatino 没关系,无论如何感谢。我已经在我的端解决了这个问题。我误解了Discord中机器人的工作方式,所以我错误地使用了事件。现在一切都好了。 - Deric Lima
@DericLima 很高兴听到这个消息。 - Tony Patino

-1
你可以尝试将你的 messageCreate 替换为一个异步选项,可能不会解决你的问题,但你可以试一试。
client.on('messageCreate', async (message) => {
      console.log("DEBUG");
});

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

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

确保您已正确地包含了discord.js,这是一个示例:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接