首頁 >web前端 >js教程 >為什麼我的 Discord.js 機器人中的「message.content」為空,如何修復它?

為什麼我的 Discord.js 機器人中的「message.content」為空,如何修復它?

Barbara Streisand
Barbara Streisand原創
2024-12-03 22:26:11583瀏覽

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.MessageContentBits.MessageContentBits.加入您的意圖陣列:
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 中:

  • 新增意圖.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,
  ],
});

不要忘記使用messageCreate事件而不是 message 進行訊息處理:

client.on('messageCreate', (message) => {
  // Your message handling logic goes here
});

透過啟用訊息內容意圖並相應地修改您的程式碼,您現在可以在 Discord.js 事件處理程序中存取訊息內容。

以上是為什麼我的 Discord.js 機器人中的「message.content」為空,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn