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
Freigeben: 2024-12-03 22:26:11
Original
579 Leute haben es durchsucht

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],
});
Nach dem Login kopieren

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,
  ],
});
Nach dem Login kopieren

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
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage