Créer des événements sur son bot Discord avec Sheweny

Nous allons voir comment créer un bot discord avec Discord.js v13 et Sheweny

Niveau Intermédiaire
9 minutes de lecture
Créer un bot discord avec DiscordJS et Sheweny

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 :