Heim >Web-Frontend >js-Tutorial >Warum ist „message.content' in meinem Discord.js-Bot leer und wie kann ich das Problem beheben?

Warum ist „message.content' in meinem Discord.js-Bot leer und wie kann ich das Problem beheben?

Barbara Streisand
Barbara StreisandOriginal
2024-12-03 22:26:11583Durchsuche

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

Discord.js: Behebung des Problems „message.content hat keinen Wert“

In Discord.js-Versionen 12 und höher: Die Eigenschaft message.content weist beim Empfang eines Nachrichtenereignisses zunächst einen leeren Zeichenfolgenwert auf. Dies geschieht aufgrund einer Änderung der API-Anforderungen von Discord, bei der Nachrichteninhalte nicht mehr bereitgestellt werden, es sei denn, dies wird ausdrücklich angefordert.

Lösung

Um den Nachrichteninhalt abzurufen, aktivieren Sie die Nachricht Inhaltsabsicht auf Ihrem Entwicklerportal:

  • Navigieren Sie zu Ihrer Discord-Anwendung.
  • Auswählen „Einstellungen“ und dann die Registerkarte „Bot“.
  • Unter „Privileged Gateway Intents“ aktivieren Sie „Nachrichteninhalt“.

Codeänderungen

In den Discord.js-Versionen 13 und später:

  • GatewayIntentBits.MessageContent zu Ihrem Intents-Array hinzufügen:
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],
});

In Discord.js Version 12:

  • Intents hinzufügen .FLAGS.MESSAGE_CONTENT für Ihre Absichten Array:
const { Client, Intents } = require('discord.js');
const client = new Client({
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.MESSAGE_CONTENT,
  ],
});

Vergessen Sie nicht, das messageCreate-Ereignis anstelle von message für die Nachrichtenverarbeitung zu verwenden:

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

Indem Sie die Absicht „Message Content“ aktivieren und Ihren Code entsprechend ändern , können Sie jetzt in Ihren Discord.js-Ereignishandlern auf den Nachrichteninhalt zugreifen.

Das obige ist der detaillierte Inhalt vonWarum ist „message.content' in meinem Discord.js-Bot leer und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn