Heim > Web-Frontend > js-Tutorial > Warum schlagen meine Discord-Bot-Events fehl und mein Cache ist leer?

Warum schlagen meine Discord-Bot-Events fehl und mein Cache ist leer?

Linda Hamilton
Freigeben: 2024-12-24 09:49:12
Original
438 Leute haben es durchsucht

Why Are My Discord Bot Events Failing and My Cache Empty?

Absichten des Discord-Gateways: Beheben von Fehlern bei der Ereignisemission und Cache-Problemen

Vor Kurzem hatten einige Discord-Benutzer Schwierigkeiten mit der Ereignisemission und dem Cache Management. Insbesondere Ereignisse wie guildMemberAdd, guildMemberRemove und guildMemberUpdate werden nicht mehr ausgelöst, was dazu führt, dass die Funktionalität nicht mehr reagiert. Darüber hinaus wurde beobachtet, dass Benutzercaches leer oder extrem begrenzt waren. Darüber hinaus kam es bei Funktionen, die darauf abzielen, Gildenmitglieder abzurufen, zu Zeitüberschreitungen.

Diese Probleme können auf Discords jüngste Durchsetzung von „Privilegierten Absichten“ zurückgeführt werden. Absichten sind Mechanismen, die es Ihnen ermöglichen, bestimmte Datenströme auf Discord zu abonnieren. Zwei dieser Absichten, GUILD_MEMBERS und GUILD_PRESENCES, gelten aufgrund ihrer Sensibilität als privilegiert und sind seit dem 27. Oktober 2020 standardmäßig deaktiviert.

Auswirkungen privilegierter Absichten

Das Deaktivieren privilegierter Absichten kann zu verschiedenen Folgen führen Probleme:

  • Mitglieder- und Benutzercaches sind beim Start leer oder deutlich erschöpft
  • Guild.memberCount gibt veraltete Werte zurück
  • Anwesenheitsbezogene Ereignisse werden nicht ausgelöst
  • Anwesenheitsdaten geben Null oder undefiniert zurück
  • Gildenmitglieder werden angezeigt offline
  • Zeitüberschreitungen während der Anmeldung, wenn fetchAllMembers aktiviert ist
  • Zeitüberschreitungen bei den Methoden GuildMemberManager.fetch() und UserManager.fetch()
  • Fehler bei Ereignissen, an denen Gildenmitglieder beteiligt sind, wie z guildMemberAdd, guildMemberRemove, guildMemberUpdate, guildMemberSpeaking und guildMembersChunk

Resolution

Um dieses Problem zu beheben, müssen Sie privilegierte Absichten manuell über das Discord Developer Portal aktivieren:

  1. Navigieren Sie zum Discord-Entwicklerportal.
  2. Wählen Sie Ihr aus Anwendung.
  3. Gehen Sie zur Registerkarte „Bot“ in der Seitenleiste.
  4. Scrollen Sie nach unten zum Abschnitt „Privileged Gateway Intents“.
  5. Aktivieren Sie die Kontrollkästchen für GUILD_MEMBERS und/oder GUILD_PRESENCES.
  6. Wenn Ihr Bot mehr als 75 Gilden hat, muss Discord dies überprüfen es zuerst. Befolgen Sie die Anweisungen, um den Zugriff auf die Whitelist anzufordern.

Nach der Aktivierung müssen Sie die gewünschten Absichten in Ihrer discord.js-Modulkonfiguration angeben. Wenn Sie nicht alle Intents benötigen, können Sie bestimmte Intents selektiv aktivieren.

Resources

  • Discord.js Offizieller Leitfaden – Gateway Intents
  • Discord-Entwicklerdokumentation – Gateway Intents
  • Gateway-Update FAQ
  • Discord API Github – Issue 1363 – Privileged Intents
  • Discord Blog – Die Zukunft der Bots auf Discord

Das obige ist der detaillierte Inhalt vonWarum schlagen meine Discord-Bot-Events fehl und mein Cache ist leer?. 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