message.author.content 不工作 discord.js

message.author.content not working discord.js

我尝试为 DM 频道发出 ping 命令,所以如果作者在 DM 频道中说 ping 机器人可以回复 pong 但它不起作用,控制台没有给出任何错误,机器人是不提供任何输出。

client.on('messageCreate', (message) => {
  if(message.author.bot) return

  //command
  if (message.author.content === `ping`) {
    message.author.send(`pong`);
  }
});

编辑:message.content 在 DM 中不起作用

client.on('messageCreate', (message) => {
  if(message.author.bot) return

  //command
  if (message.content.toLowerCase() === `ping`) {
    message.author.send(`pong`);
  }
});

前往 discord 开发者网站并确保您的消息内容意图已开启,并且 DM 消息将正常工作

虽然其他答案是需要做的事情,但它可能不是您遇到的问题的完整答案。您需要确保在机器人代码中启用的其他东西是您的 intents。在您的代码中的某处,您有这样一行开头:(可能不完全是这样)

const client = new Client({})

确保你在那里启用了你的意图

示例 1 启用最小意图

const client = new Client({
    intents: ['GUILDS', 'GUILD_MEMBERS', 'GUILD_MESSAGES', 'DIRECT_MESSAGES'],
})

示例 2 启用所有意图

const client = new Client({
    intents: 131071,
})

示例 3 使用 partials

启用所有意图
const client = new Client({
    intents: 131071,
    partials: ['CHANNEL', 'GUILD_MEMBER', 'GUILD_SCHEDULED_EVENT', 'MESSAGE', 'REACTION', 'USER']
})

更新意图:32767 不再包括所有意图,所有意图现在是 131071

message.author 没有任何 content 属性。如果要检查邮件内容,请按照文档中的说明使用 MessageComponent#content

还要确保您启用了正确的意图并要求验证您的机器人是否超过 100 个公会。

您缺少一个意图

Intents.FLAGS.DIRECT_MESSAGES,
Intents.FLAGS.DIRECT_MESSAGE_REACTIONS,
Intents.FLAGS.DIRECT_MESSAGE_TYPING,

const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_MEMBERS","DIRECT_MESSAGES","DIRECT_MESSAGE_REACTIONS","DIRECT_MESSAGE_TYPING"] });