Intents de gateway
Les intents forment un champ de bits envoyé dans op:2 Identify qui indique au gateway quelles catégories d’événements transmettre à votre bot. Bits et sémantique identiques à Discord. Votre configuration d’intents actuelle fonctionne sans modification.
Bits d’intent
Tous les bits d’intent Discord non obsolètes sont pris en charge sur GameVox. Lorsqu’une fonctionnalité n’existe pas encore sur GameVox (salons de conférence, événements programmés…), le bit est accepté mais aucun événement n’est émis. Votre bibliothèque ne renverra pas d’erreur.
| Intent | Bit | Privilégié | Événements |
|---|---|---|---|
| GUILDS | 1 << 0 | GUILD_CREATE, GUILD_UPDATE, GUILD_DELETE, CHANNEL_CREATE/UPDATE/DELETE, CHANNEL_PINS_UPDATE, GUILD_ROLE_CREATE/UPDATE/DELETE | |
| GUILD_MEMBERS | 1 << 1 | ✓ | GUILD_MEMBER_ADD, GUILD_MEMBER_UPDATE, GUILD_MEMBER_REMOVE, chunking des membres |
| GUILD_MODERATION | 1 << 2 | GUILD_BAN_ADD, GUILD_BAN_REMOVE. GUILD_AUDIT_LOG_ENTRY_CREATE accepté, pas encore d’événements | |
| GUILD_EMOJIS_AND_STICKERS | 1 << 3 | Accepté, pas encore d’événements (interrogez REST si vous avez besoin de l’état courant) | |
| GUILD_INTEGRATIONS | 1 << 4 | Accepté, pas encore d’événements | |
| GUILD_WEBHOOKS | 1 << 5 | Accepté, pas encore d’événements | |
| GUILD_INVITES | 1 << 6 | Accepté, pas encore d’événements | |
| GUILD_VOICE_STATES | 1 << 7 | VOICE_STATE_UPDATE, VOICE_SERVER_UPDATE | |
| GUILD_PRESENCES | 1 << 8 | ✓ | PRESENCE_UPDATE |
| GUILD_MESSAGES | 1 << 9 | MESSAGE_CREATE/UPDATE/DELETE/DELETE_BULK dans les guilds | |
| GUILD_MESSAGE_REACTIONS | 1 << 10 | MESSAGE_REACTION_ADD, MESSAGE_REACTION_REMOVE. REMOVE_ALL / REMOVE_EMOJI acceptés, pas encore d’événements (REST fonctionne) | |
| GUILD_MESSAGE_TYPING | 1 << 11 | TYPING_START dans les guilds | |
| DIRECT_MESSAGES | 1 << 12 | MESSAGE_* dans les MP | |
| DIRECT_MESSAGE_REACTIONS | 1 << 13 | MESSAGE_REACTION_* dans les MP | |
| DIRECT_MESSAGE_TYPING | 1 << 14 | TYPING_START dans les MP | |
| MESSAGE_CONTENT | 1 << 15 | ✓ | Ajoute content, embeds, attachments, components aux MESSAGE_* |
| GUILD_SCHEDULED_EVENTS | 1 << 16 | Accepté, pas encore d’événements | |
| AUTO_MODERATION_CONFIGURATION | 1 << 20 | Accepté, pas encore d’événements | |
| AUTO_MODERATION_EXECUTION | 1 << 21 | Accepté, pas encore d’événements |
Intents privilégiés
Trois intents sont privilégiés sur Discord et exigent une approbation manuelle au-delà de 100 serveurs : GUILD_MEMBERS, GUILD_PRESENCES et MESSAGE_CONTENT.
Sur GameVox, les trois sont approuvés automatiquement dès qu’ils sont activés dans l’onglet Bot de l’application. L’interrupteur existe pour que les bibliothèques qui vérifient l’approbation côté portail ne ferment pas la connexion avec 4014 Disallowed intents. Il n’y a pas de procédure de vérification à 100 serveurs. Activez l’interrupteur, mettez le bit, c’est fait.
Exceptions de MESSAGE_CONTENT
Identique à Discord. Même sans MESSAGE_CONTENT, les champs content / embeds / attachments / components du message sont inclus lorsque :
- le message provient de votre propre bot (les messages du bot contiennent toujours leur contenu).
- le message mentionne votre bot (par ID).
- le message est dans un MP avec votre bot.
- le message est une réponse d’interaction dont votre bot est destinataire.
Événements pas encore émis (intents acceptés)
Activer les intents suivants ne pose aucun problème (le canal les accepte et votre bibliothèque ne renverra pas d’erreur), mais aucun événement n’est publié aujourd’hui. Si la logique de votre bot en dépend, interrogez REST pour le moment :
USER_UPDATEGUILD_EMOJIS_UPDATE,GUILD_STICKERS_UPDATEWEBHOOKS_UPDATE,INTEGRATION_CREATE/UPDATE/DELETE,INVITE_CREATE/DELETEGUILD_AUDIT_LOG_ENTRY_CREATEMESSAGE_REACTION_REMOVE_ALL,MESSAGE_REACTION_REMOVE_EMOJI(les endpoints REST fonctionnent)THREAD_*,STAGE_INSTANCE_*,GUILD_SCHEDULED_EVENT_*,AUTO_MODERATION_*,MESSAGE_POLL_*
Les serveurs auto-hébergés émettent un sous-ensemble encore plus restreint. La liste exacte figure sur cette page.
Codes de fermeture possibles
4013 Invalid intent(s): bit au-delà du masque valide (revérifiez le calcul de bits de votre bibliothèque).4014 Disallowed intents: bit d’intent privilégié positionné sans l’interrupteur correspondant dans le portail.
Exemple : définir les intents
discord.js
const { GatewayIntentBits } = require('discord.js');
const intents =
GatewayIntentBits.Guilds
| GatewayIntentBits.GuildMessages
| GatewayIntentBits.MessageContent; // privilégié, activez-le d’abord dans le portail
const client = new Client({ intents }); discord.py
intents = discord.Intents.default()
intents.members = True # privilégié
intents.message_content = True # privilégié
client = discord.Client(intents=intents)