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
762 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!

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