Bienvenue dans ce nouveau chapitre dans lequel nous allons parler des restrictions de commandes. Ce chapitre fait partie d'une série de tutoriels. Bien qu'il soit possible de la suivre sans avoir lu les chapitres précédents, il est conseillé de les lire avant de commencer ce chapitre.
Réception d'un événements
Nous avons déja utilisé de nombreux événements avec notre bot même si nous ne le savez pas, en effet pour nos commandes par exemple des événements sont émits. Un événement est envoyer sur notre bot par discord quand une "action" se produit. Il va donc nous falloir écouter ces événement puis appeler une action en fonction de cet événement.
Modification de notre client
Si ce n'est pas déjà fais nous devons modifier notre client pour ajouter le manager d'événements :
Cette syntaxe ne devrait pas vous surprendre, en effet, c'est exactement pareil que les commandes.
Création d'un événement
Comme pour les commandes, une fois dans le dossier events nous allons ajouter un fichier, il faudra créer un fichier par événement. Comme pour les commandes nous allons utiliser une structure en classe en faisant appel à des structures de Sheweny. Voici un exemple d'évenement qui écrit un message dans la console quand notre bot est connecté :
On notera la présence de once:true, cette option permet de spécifier que l'événement ne sera émit que une seule fois, ici notre bot ne va ce connecter qu'une seule fois à discord. Ensuite on voit emitter: client, cette option permet de spécifier que l'événement sera émit par le client, vous pouvez omettre cette ligne quand l'émitter est le client. A part ca la structure de l'événement est la même que pour les commandes.
Les gateway intents
Nous avons déja vu les gateway intents, ils sont la pour ne pas que notre bot recoive 150 événement si il en utilise 7. Vous trouverez la liste des intents sur le site de discord : discord.com/developers/docs/topics/gateway
Emettre nos propres événements
Nous allons maintenant voir qu'il est possible d'émettre nos propres événements.
On peut ce demander pourquoi, en effet discord émet déjà tous les événements alors pourquoi en ajouter ?
La raison est que ca nous permet de simplifier notre code. Par exemple, quand notre bot recoit une intéraction, que ce soit un bouton, un select-menu, un formulaire ou une slash-command, tout arrive sur intéractionCreate. On ce rend conte que on ne va pas du tout gérer cela de la meme manière si on a un select-menu ou une commande par exemple. Alors avec Sheweny par exemple des événements custom sont émits (interactionButtonCreate, interactionCommandCreate...).
Pour émettre nos propres événements, à n'importe quel endroit de notre application nous pouvons utiliser la méthode emit de notre client.
Ici les arguments sont semblables à des paramètres pour les fonctions. On peut ensuite écouter cet événement comme un événement discord classique :
Voyons maintenant un exemple concret, si vous souhaitez faire un traitement spécifique pour les messages de DM de votre BOT vous pouvez créer un événement qui sera émit quand un message de DM est reçu :
On peut donc maintenant créer un événement directMessage :
Conclusion
Dans ce chapitre nous avons appris à utiliser des événements avec Sheweny. Après ce chapitre vous êtes maintenant capables :
- D'écouter les événements de discord
- De choisir les intents adaptées à votre bot
- D'émettre et d'écouter nos propres événements
Rejoindre la communauté de développeurs
Rejoins notre communauté de développeurs pour progresser et t'améliorer
Passer au chapitre suivant :
Partager sur
Sommaire
Configuration initiale pour créer un bot Discord avec Sheweny
Structure du projet et modules pour un bot Discord avec Sheweny
Connecter son bot à l'API de Discord avec Sheweny
Créer sa première commande sur son bot Discord avec Sheweny
Créer sa première slash commande sur son bot Discord avec Sheweny
Protéger une commande sur son bot Discord avec Sheweny
Créer des événements sur son bot Discord avec Sheweny
Créer des boutons sur son bot Discord avec Sheweny
Créer des select-menus sur son bot Discord avec Sheweny
Documentation pour créer un bot Discord avec Sheweny
