Keines meiner Discord.js GuildMember-Ereignisse wird ausgegeben, meine Benutzer-Caches sind grundsätzlich leer und meine Funktionen laufen ab.
Viele Discord.js-Benutzer sind kürzlich darauf gestoßen Ein Problem, bei dem bestimmte Ereignisse und Funktionen im Zusammenhang mit Gilden und Benutzern nicht mehr funktionieren oder verzögert werden. Dies liegt daran, dass Discord eine neue Funktion namens Privilegierte Absichten implementiert hat, die bestimmte Funktionen für Bots einschränkt, sofern sie nicht explizit aktiviert sind.
Was sind privilegierte Absichten?
Privilegierte Absichten Dabei handelt es sich um sensible Daten oder Funktionen, bei denen Discord von den Bots eine Erklärung verlangt, dass sie sie verwenden werden. Die beiden privilegierten Absichten sind:
-
GUILD_PRESENCES:Zugriff auf Anwesenheitsdaten von Gildenmitgliedern
-
GUILD_MEMBERS:Zugriff auf Gildenmitglieder und deren Daten
So aktivieren Sie Privileged Absichten
Um privilegierte Absichten zu aktivieren, müssen Sie sie manuell im Discord-Entwicklerportal überprüfen:
- Gehen Sie zum Discord-Entwicklerportal und melden Sie sich an.
- Klicken Sie auf „Anwendungen“ und wählen Sie Ihren Bot aus.
- Gehen Sie auf die Registerkarte „Bot“. Seitenleiste.
- Scrollen Sie nach unten zum Abschnitt „Privilegierte Gateway-Absichten“.
- Aktivieren Sie das Kontrollkästchen für die privilegierten Absichten, die Sie verwenden möchten.
Einmal Wenn Sie privilegierte Absichten aktiviert haben, müssen Sie diese auch in Ihrem Discord.js-Bot aktivieren Code:
const client = new Discord.Client({ ws: { intents: new Discord.Intents(Discord.Intents.ALL) } });
Nach dem Login kopieren
Wie sich privilegierte Absichten auf Ihren Bot auswirken
Wenn Sie privilegierte Absichten nicht aktivieren, können die folgenden Probleme auftreten:
- GuildMember-Ereignisse ( (z. B. guildMemberAdd) werden nicht ausgegeben.
- Mitglieder- und Benutzer-Caches werden ausgegeben leer sein oder nur sehr wenige Mitglieder enthalten.
- Funktionen wie GuildMemberManager.fetch() und UserManager.fetch() laufen ab.
- Anwesenheitsdaten sind nicht verfügbar.
Tipps zur Fehlerbehebung
Wenn nach der Aktivierung privilegierter Absichten immer noch Probleme auftreten, versuchen Sie es mit Folgendes:
- Stellen Sie sicher, dass Ihr Bot von Discord genehmigt wurde.
- Überprüfen Sie, ob Ihr Code die neueste Version von Discord.js (v12) verwendet.
- Überprüfen Sie noch einmal die Richtigkeit Ihrer Intent-Konfiguration.
- Starten Sie Ihren Bot neu, um seine Verbindung zu aktualisieren Discord.
Ressourcen
- [Discord.js Offizieller Leitfaden – Gateway Intents](https://discord.js.org/#/docs/main/v12/ Klasse/Intents)
- [Discord Developer Documentation – Gateway Absichten](https://discord.com/developers/docs/topics/gateway#gateway-intents)
- [Gateway-Update FAQ](https://support.discord.com/hc/en-us/articles/4405026734147-Discord-Gateway-Intent-Framework-Announcement-FAQ)
Das obige ist der detaillierte Inhalt vonWarum werden meine Discord.js GuildMember-Ereignisse nicht ausgelöst und wie behebe ich meine leeren Benutzer-Caches und Zeitüberschreitungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!