ホームページ >ウェブフロントエンド >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 にアクセスしてください開発者ポータルを開き、「Privileged Gateway Intents」セクション内の「Message Content Intent」を有効にします。
  2. Add 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 イベントを使用する: メッセージの代わりに 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。