- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Pour créer des commandes plus facilement, on peut utiliser à la place du client qu'on a utilisé jusque là, un bot.J'ai les deux versions en face de moi pour que vous voyez bien les similitudes et les différences entre les deux façons de faire.
00:00:18 :Donc à la place d'importer directement Discord ici, on va importer depuis discord.ext les commands.Donc commands ici et on va créer une instance d'un bot.
00:00:27 :Donc commands.bot et on met ça dans une variable que j'ai appelée bot.Cette instance, on va devoir lui donner un command prefix.Donc ça, c'est ce qu'on va devoir utiliser pour préfixer les commandes qu'on va utiliser pour notre bot.
00:00:39 :Donc ici, on peut mettre n'importe quoi.Donc moi, j'ai décidé de remettre un point d'exclamation.On va avoir la possibilité de gérer les événements comme avec le client.
00:00:47 :Là, ça ressemble très fortement à ce qu'on avait auparavant.Avant, on avait client.event et là, on a tout simplement bot.event.Et tout le reste, c'est pareil.
00:00:56 :On a le nom de notre événement ici, donc un ready et un print à l'intérieur de cet événement.Jusque là, tout est pareil à part le nom du décorateur qui change puisque j'ai changé le nom de ma variable ici.
00:01:06 :Je pourrais mettre client aussi et là, j'aurai client.Donc bien faire attention d'avoir le même nom pour le décorateur et pour votre variable ici.Mais c'est pour l'instant le seul changement ainsi que la façon dont on crée notre bot alors que là, on utilisait client.
00:01:19 :On va avoir par contre ensuite une différence sur la commande.Ici, on crée une commande d'une façon un peu détournée en utilisant l'événement onMessage.Là, à la place, on va utiliser le décorateur command et on va donner un nom à cette commande.
00:01:33 :Donc le nom, ça va être del.Alors, il faut bien faire attention.Le nom ici, c'est ce qu'on va utiliser à l'intérieur du serveur pour appeler la commande.
00:01:39 :Après, le nom de la fonction ici que j'ai appelé delete dans ce cas-ci, ça peut être n'importe quoi.Vous pouvez l'appeler autrement et c'est vraiment ce nom-là ici qu'on met dans name qui va être utilisé pour exécuter cette commande.
00:01:50 :On a encore async ici au début avant ma fonction et je vais avoir quelque chose d'un peu différent ici.C'est ce qu'on appelle le contexte qui est généralement appelé ctx.
00:01:59 :Là encore, c'est le nom d'un paramètre et donc vous pouvez l'appeler n'importe comment.Mais par convention, on l'appelle ctx.Ce paramètre ctx, il représente tout simplement le contexte dans lequel a été appelée la commande.
00:02:11 :Donc à partir de ce contexte, on va pouvoir, comme on le faisait dans onMessage,récupérer des informations comme le salon dans lequel a été postée la commande.
00:02:19 :On va ensuite avoir un paramètre et c'est là que ça devient très intéressant.C'est un paramètre que j'ai appelé numberOfMessages et on va spécifier un type à ce paramètre.
00:02:28 :Donc avec les types int, je mets deux points après le nom du paramètreet je vais spécifier que ce paramètre doit être de type int, donc de type nombre entier.
00:02:37 :Ça, ça va me permettre de convertir automatiquement le paramètre qui va être envoyé après la commande.Donc par exemple, quand je vais taper !del et qu'après ça, je vais mettre 5,
00:02:48 :le 5 ici, il va être envoyé automatiquement à numberOfMessageset cette fois-ci, puisque j'ai spécifié int ici, il va être converti automatiquement en nombre entier.
00:02:57 :Donc on n'aura pas besoin de faire comme on l'a fait précédemment,c'est-à-dire de convertir avec int le contenu du message et de faire également un splitpour récupérer les paramètres de cette commande.
00:03:06 :On va pouvoir les récupérer directement dans la fonction ici.Donc ensuite, qu'est-ce que je fais ?Et bien tout simplement la même chose que ce que je faisais ici,c'est-à-dire que je récupère tous les messages avec le paramètre numberOfMessages iciet ensuite je les supprime.
00:03:20 :Pour finir, je lance mon bot de la même façon, sauf que là encore,puisque j'ai changé le nom de ma variable, j'utilise bot.run au lieu de client.run.
00:03:28 :Donc si je lance mon script, donc ce script mainBot.py,vous allez voir qu'on a exactement la même chose au niveau du comportement de notre botdu côté utilisateur.
00:03:37 :Donc je lance mon script, on a bien le bot est prêt qui s'afficheet si je retourne sur mon serveur, je peux utiliser la commande del,donc en la préfixant du point d'exclamation, je fais del, je rentre un nombre,par exemple 3 ici, et ça me permet de supprimer les trois derniers messages.
00:03:52 :Donc voilà une autre façon de faire en passant directement par un botet non plus par le client, ça se ressemble assez l'un et l'autre,comme vous le voyez, on peut créer des événements avec le bot,également avec le client et l'avantage d'utiliser le bot,c'est qu'on peut avoir cette vérification des paramètres sur les commandes
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.