Maison > interface Web > js tutoriel > Pourquoi mes événements de membre de la guilde Discord.js ne se déclenchent-ils pas et comment puis-je y remédier ?

Pourquoi mes événements de membre de la guilde Discord.js ne se déclenchent-ils pas et comment puis-je y remédier ?

Susan Sarandon
Libérer: 2024-12-29 15:55:16
original
791 Les gens l'ont consulté

Why Aren't My Discord.js Guild Member Events Firing, and How Can I Fix It?

Aucun de mes événements de membre de guilde Discord.js n'est émis, mes caches utilisateur sont pratiquement vides et mes fonctions expirent

Avez-vous déjà rencontré l'un de ces problèmes :

  • Votre guildMemberAdd, guildMemberRemove et les événements guildMemberUpdate cessent soudainement de fonctionner
  • Le cache de votre GuildMemberManager est vide ou proche de celui-ci
  • Vos méthodes GuildMemberManager.fetch() et UserManager.fetch() expirent
  • Votre client.login() expire si vous spécifiez l'option fetchAllMembers
  • Votre Les membres de la guilde semblent être hors ligne

Si vous rencontrez l'un de ces problèmes, malheureusement, vous ne pouvez pas faire grand-chose de votre côté. Récemment, Discord a appliqué des intentions privilégiées, ce qui peut provoquer les problèmes répertoriés ci-dessus.

Que sont les intentions privilégiées ?

Intentions privilégiées sont des données sensibles qui nécessitent une activation manuelle. Depuis le 27 octobre 2020, ces intentions sont désactivées par défaut.

Les intentions privilégiées incluent :

  • GUILD_PRESENCES : cette intention permet à votre bot d'accéder à la présence data.
  • GUILD_MEMBERS : Cette intention permet à votre bot d'accéder aux données des membres.

Comment activer les intentions privilégiées

  1. Accéder au développeur Discord Portail : [https://discord.com/developers/applications](https://discord.com/developers/applications)
  2. Sélectionnez votre application
  3. Cliquez sur l'onglet "Bot"
  4. Faites défiler jusqu'à Section "Intentes de passerelle privilégiée"
  5. Activez les intentions "Membres du serveur" et/ou "Présence du serveur"
  6. Cliquez sur "Enregistrer les modifications"

Si votre bot n'est pas vérifié, vous devrez soumettre un ticket d'assistance à Discord afin de demander l'accès aux intentions privilégiées.

Implémentation de Discord.js

Une fois que vous avez activé les intentions privilégiées dans le portail des développeurs Discord, vous devrez activez-les dans votre bot Discord.js.

Pour ce faire, ajoutez le code suivant au nom de votre bot constructeur :

const client = new Discord.Client({
  intents: [
    Discord.Intents.FLAGS.GUILD_MEMBERS,
    Discord.Intents.FLAGS.GUILD_PRESENCES
  ]
});
Copier après la connexion

Cela activera les intentions GUILD_MEMBERS et GUILD_PRESENCES pour votre bot.

Vous pouvez également activer les intentions privilégiées à l'aide de l'option ws :

const client = new Discord.Client({
  ws: {
    intents: [
      Discord.Intents.FLAGS.GUILD_MEMBERS,
      Discord.Intents.FLAGS.GUILD_PRESENCES
    ]
  }
});
Copier après la connexion

Si vous rencontrez toujours des problèmes après avoir activé les intentions privilégiées, veuillez vous référer aux ressources suivantes :

  • [Portail des développeurs Discord - Intents de passerelle](https://discord.com/developers/docs/topics/gateway#gateway-intents)
  • [Guide officiel Discord.js - Intents de passerelle ](https://discordjs.guide/gateway/intents.html)
  • [Mise à jour de la passerelle FAQ](https://discord.com/developers/docs/topics/gateway#gateway-intents)
  • [API Discord Github - Numéro 1363 - Intents privilégiés](https://github.com/discord /discord-api-docs/issues/1363)
  • [Discord Blog - L'avenir des robots sur Discorde](https://blog.discord.com/the-future-of-bots-on-discord-3d25af28f58e)

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!

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