Keines meiner discord.js-Guildmember-Ereignisse wird ausgegeben, meine Benutzercaches sind grundsätzlich leer und meine Funktionen laufen ab
Haben Sie jemals eines dieser Probleme erlebt:
- Dein GildenmitgliedHinzufügen, guildMemberRemove- und guildMemberUpdate-Ereignisse funktionieren plötzlich nicht mehr
- Der Cache Ihres GuildMemberManagers ist leer oder fast leer
- Ihre GuildMemberManager.fetch()- und UserManager.fetch()-Methoden laufen wegen Zeitüberschreitung ab
- Ihr client.login() läuft ab, wenn Sie fetchAllMembers angeben Option
- Ihre Gildenmitglieder scheinen offline zu sein
Wenn bei Ihnen eines dieser Probleme auftritt, können Sie leider nicht viel dagegen tun. Vor Kurzem hat Discord privilegierte Absichten erzwungen, was die oben aufgeführten Probleme verursachen kann.
Was sind privilegierte Absichten?
Privilegierte Absichten Es handelt sich um sensible Daten, die eine manuelle Aktivierung erfordern. Ab dem 27. Oktober 2020 sind diese Absichten standardmäßig deaktiviert.
Zu den privilegierten Absichten gehören:
-
GUILD_PRESENCES: Diese Absicht Ermöglicht Ihrem Bot den Zugriff auf die Präsenz Daten.
-
GUILD_MEMBERS: Diese Absicht ermöglicht Ihrem Bot den Zugriff auf Mitgliedsdaten.
So aktivieren Sie privilegierte Absichten
-
Gehen Sie zum Discord-Entwickler Portal: [https://discord.com/developers/applications](https://discord.com/developers/applications)
- Wählen Sie Ihre Anwendung aus
- Klicken Sie auf die Registerkarte „Bot“
- Scrollen Sie nach unten zum Abschnitt „Privilegierte Gateway-Absichten“
- Aktivieren Sie die Absichten „Servermitglieder“ und/oder „Serverpräsenz“
- Klicken Sie auf „Änderungen speichern“
Wenn Ihr Bot nicht verifiziert ist, müssen Sie einen Support einreichen Ticket für Discord, um Zugriff auf privilegierte Absichten anzufordern.
Discord.js-Implementierung
Sobald Sie privilegierte Absichten im Discord-Entwicklerportal aktiviert haben, werden Sie dies tun Sie müssen sie in Ihrem Discord.js-Bot aktivieren.
Fügen Sie dazu den folgenden Code zu Ihrem hinzu Konstruktor des Bots:
const client = new Discord.Client({
intents: [
Discord.Intents.FLAGS.GUILD_MEMBERS,
Discord.Intents.FLAGS.GUILD_PRESENCES
]
});
Dadurch werden die Absichten GUILD_MEMBERS und GUILD_PRESENCES für Ihren Bot aktiviert.
Sie können privilegierte Absichten auch mit der ws-Option aktivieren:
const client = new Discord.Client({
ws: {
intents: [
Discord.Intents.FLAGS.GUILD_MEMBERS,
Discord.Intents.FLAGS.GUILD_PRESENCES
]
}
});
Wenn nach der Aktivierung privilegierter Absichten immer noch Probleme auftreten, lesen Sie bitte Folgendes Ressourcen:
- [Discord Developer Portal – Gateway Intents](https://discord.com/developers/docs/topics/gateway#gateway-intents)
- [Discord.js Offizieller Leitfaden – Gateway Intents ](https://discordjs.guide/gateway/intents.html)
- [Gateway-Update FAQ](https://discord.com/developers/docs/topics/gateway#gateway-intents)
- [Discord API Github – Issue 1363 – Privileged Intents](https://github.com/discord /discord-api-docs/issues/1363)
- [Discord-Blog – Die Zukunft der Bots auf Discord](https://blog.discord.com/the-future-of-bots-on-discord-3d25af28f58e)
Das obige ist der detaillierte Inhalt vonWarum werden meine Discord.js-Gildenmitglieder-Events nicht ausgelöst und wie kann ich das 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