>웹 프론트엔드 >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로 이동하세요.
  • "설정"을 선택한 다음 "Bot" 탭을 선택합니다.
  • "권한 있는 게이트웨이 인텐트"에서 "메시지 콘텐츠"를 켭니다.

코드 수정

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에서:

  • 인텐트 추가 .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,
  ],
});

메시지 처리를 위해 message 대신 messageCreate 이벤트를 사용하는 것을 잊지 마세요.

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

Message Content 인텐트를 활성화하고 이에 따라 코드를 수정합니다. , 이제 Discord.js 이벤트 핸들러 내에서 메시지 콘텐츠에 액세스할 수 있습니다.

위 내용은 Discord.js 봇에 'message.content'가 비어 있는 이유는 무엇이며, 어떻게 수정하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.