Maison > interface Web > js tutoriel > Pourquoi mes événements de robot Discord échouent-ils et mon cache est-il vide ?

Pourquoi mes événements de robot Discord échouent-ils et mon cache est-il vide ?

Linda Hamilton
Libérer: 2024-12-24 09:49:12
original
438 Les gens l'ont consulté

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

Intentions de Discord Gateway : résolution des problèmes d'émission d'événements et de cache

Récemment, certains utilisateurs de Discord ont rencontré des difficultés avec les émissions d'événements et le cache gestion. Plus précisément, des événements tels que guildMemberAdd, guildMemberRemove et guildMemberUpdate ont cessé de se déclencher, ce qui a entraîné une fonctionnalité qui ne répond plus. De plus, il a été observé que les caches des utilisateurs sont vides ou extrêmement limités. De plus, les fonctions visant à récupérer les membres de la guilde ont rencontré des délais d'attente.

Ces problèmes peuvent être attribués à l'application récente par Discord des « intentions privilégiées ». Les intentions sont des mécanismes qui vous permettent de vous abonner à des flux de données spécifiques sur Discord. Deux de ces intentions, GUILD_MEMBERS et GUILD_PRESENCES, sont considérées comme privilégiées en raison de leur nature sensible et ont été désactivées par défaut depuis le 27 octobre 2020.

Impact des intentions privilégiées

La désactivation des intentions privilégiées peut entraîner diverses problèmes :

  • Les caches des membres et des utilisateurs sont vides ou considérablement épuisés au démarrage
  • Guild.memberCount renvoie des valeurs obsolètes
  • Les événements liés à la présence ne parviennent pas à se déclencher
  • Données de présence renvoyant nulles ou non définies
  • Membres de la guilde apparaissant hors ligne
  • Délais d'attente survenant lors de la connexion si fetchAllMembers est activé
  • Délai d'attente des méthodes GuildMemberManager.fetch() et UserManager.fetch()
  • Échec des événements impliquant des membres de la guilde, tels que guildMemberAdd, guildMemberRemove, guildMemberUpdate, guildMemberSpeaking et guildMembersChunk

Resolution

Pour résoudre ce problème, vous devez activer manuellement les intentions privilégiées via le portail des développeurs Discord :

  1. Accédez au portail des développeurs Discord.
  2. Sélectionnez votre application.
  3. Accédez à l'onglet « Bot » dans la barre latérale.
  4. Faites défiler jusqu'à la section « Intentes de passerelle privilégiée ».
  5. Cochez les cases GUILD_MEMBERS et/ou GUILD_PRESENCES.
  6. Si votre bot possède plus de 75 guildes, Discord devra le vérifier d'abord. Suivez les instructions pour demander l'accès à la liste blanche.

Une fois activé, vous devrez spécifier les intentions souhaitées dans la configuration de votre module discord.js. Si vous n'avez pas besoin de toutes les intentions, vous pouvez en activer de manière sélective des intentions spécifiques.

Resources

  • Guide officiel Discord.js - Intents de passerelle
  • Documentation du développeur Discord - Intentions de passerelle
  • Mise à jour de la passerelle FAQ
  • API Discord Github - Numéro 1363 - Intentions privilégiées
  • Blog Discord - L'avenir des robots sur Discord

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal