首页 >web前端 >js教程 >为什么 Discord.js v14 中 `message.content` 为空(以及如何修复它)?

为什么 Discord.js v14 中 `message.content` 为空(以及如何修复它)?

Barbara Streisand
Barbara Streisand原创
2024-12-20 04:03:13547浏览

Why is `message.content` Empty in Discord.js v14 (and how to fix it)?

如何解决Discord.js的“message.content没有任何值”错误

在最新版本(v14)中Discord.js 中,尽管收到了来自用户的消息,但 message.content 属性可能会返回空字符串。此问题是由于删除了默认的消息内容意图而出现的。

Discord.js v14 的解决方案

要解决此问题,您需要:

  1. 启用消息内容意图:访问 Discord 开发者门户并在“特权网关意图”部分中启用“消息内容意图”。
  2. 添加 GatewayIntentBits.MessageContent: 将此意图包含到 Discord.js 客户端初始化中的意图数组中:
const { Client, GatewayIntentBits, Partials } = require('discord.js');
const client = new Client({
  intents: [
    GatewayIntentBits.DirectMessages,
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildBans,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
  ],
  partials: [Partials.Channel]
});
  1. 使用 messageCreate event: 确保您使用 messageCreate 事件来处理传入消息而不是消息。引入此更改是为了符合 Discord 的更改:
client.on('messageCreate', (message) => {});

Discord.js v13 的解决方案

对于 Discord.js v13,解决方案类似:

  1. 启用消息内容意图: 在开发者门户中启用“消息内容意图”。
  2. 使用 Intents.FLAGS.MESSAGE_CONTENT: 将此标志添加到您的意图数组中:
const { Client, Intents } = require('discord.js');
const client = new Client({
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.MESSAGE_CONTENT,
  ],
});

以上是为什么 Discord.js v14 中 `message.content` 为空(以及如何修复它)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn