ホームページ > ウェブフロントエンド > jsチュートリアル > Discord.js ボットの「message.content」が空なのはなぜですか?どうすれば修正できますか?

Discord.js ボットの「message.content」が空なのはなぜですか?どうすれば修正できますか?

Barbara Streisand
リリース: 2024-12-03 22:26:11
オリジナル
579 人が閲覧しました

Why is `message.content` empty in my Discord.js bot, and how do I fix it?

Discord.js: 「message.content には値がありません」問題の解決

Discord.js バージョン 12 以降では、メッセージ イベントを受信したとき、message.content プロパティには最初は空の文字列値が含まれます。これは、明示的に要求されない限りメッセージ コンテンツが提供されなくなった Discord の API 要件の変更により発生します。

解決策

メッセージ コンテンツを取得するには、メッセージを有効にしてください開発者ポータルのコンテンツ インテント:

  • Discord に移動します
  • [設定] を選択し、[ボット] タブを選択します。
  • [特権ゲートウェイ インテント] で、[メッセージ コンテンツ] をオンにします。

コードの変更

Discord.js バージョン内13 以降:

  • GatewayIntentBits.MessageContent をインテント配列に追加します:
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],
});
ログイン後にコピー

Discord.js バージョン 12 の場合:

  • Intents.FLAGS.MESSAGE_CONTENT をインテントに追加しますarray:
const { Client, Intents } = require('discord.js');
const client = new Client({
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.MESSAGE_CONTENT,
  ],
});
ログイン後にコピー

メッセージ処理には、message の代わりに messageCreate イベントを使用することを忘れないでください:

client.on('messageCreate', (message) => {
  // Your message handling logic goes here
});
ログイン後にコピー

Message Content インテントを有効にし、それに応じてコードを変更します。 、Discord.js イベント ハンドラー内でメッセージ コンテンツにアクセスできるようになりました。

以上がDiscord.js ボットの「message.content」が空なのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート