【问题标题】:Discord.JS V13 client.on messagecreate not firingDiscord.JS V13 client.on messagecreate 未触发
【发布时间】: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)
}

【问题讨论】:

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

标签: javascript node.js discord.js


【解决方案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");

【讨论】:

    猜你喜欢
    • 2021-01-21
    • 2021-10-12
    • 2022-01-05
    • 2021-11-12
    • 2021-11-09
    • 1970-01-01
    • 2021-10-17
    • 2021-11-14
    • 2022-10-09
    相关资源
    最近更新 更多