- 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 :Dans cette vidéo, on va voir comment réagir à l'arrivée d'un nouveau membre sur le serveur.Pourquoi est-ce que je vous montre ça ?Et bien tout simplement parce qu'il y a eu certains changements récemment sur l'API de Discordqui nécessitent d'avoir certaines autorisations en plus de ce qu'on pouvait avoir avant.
00:00:17 :C'est ce qu'on appelle les intents qu'il va donc falloir rajouter dans notre script.Si vous vous souvenez bien, au début quand on a créé notre bot,on vous a fait activer ces deux intents, donc present intent et server member intent.
00:00:30 :Donc ces permissions ici, il faut les cocher au niveau du bot et ensuite rajouter certaines lignes dans notre code.Si vous allez sur la documentation de discord.py, vous allez retrouver des informations sur ces intents.
00:00:42 :Si vous descendez en bas, dans additional information ici, vous avez toute une partie sur les gateway intents ici.Donc vous avez tout ce que vous avez besoin de savoir et que je vais vous montrer dans cette vidéo, dans cette partie de la documentation.
00:00:55 :Vous voyez ici que vous devez activer ces deux intents si vous souhaitez avoir certains types d'activités qui doivent être monitorés.Par exemple avec le present intent, vous allez pouvoir monitorer tous les changements de statut ou d'activité sur les membres.
00:01:09 :Et avec member intent, vous allez pouvoir vérifier quand par exemple un membre joint ou part de votre serveur.Donc ça c'est ce qu'on va voir dans cette vidéo, on member join.
00:01:28 :Donc vous activez ces cases ici si vous souhaitez détecter ces informations ici.Et ensuite, si je reviens dans la référence, on va avoir cet événement on member join qui va nous permettre de détecter quand un utilisateur arrive sur notre serveur.
00:01:43 :On a donc cet événement avec un paramètre qui est passé qui est tout simplement le membre qui arrive sur le serveur.Donc maintenant on va voir dans le code tout ce qu'on a besoin de faire.
00:01:52 :Donc dans le code, il va également falloir créer des intents.Donc ces intents, on va les retrouver sur discord.On va créer un intent, donc c'est une classe, et on va pouvoir créer directement une instance avec cette méthode ici, default,qui va nous permettre de créer une instance avec toutes les permissions par défaut.
00:02:11 :Donc discord.intents, ne pas oublier la majuscule ici, donc on a une classe, donc la classe intents, et on va récupérer les défauts.Je vais mettre ça dans une variable que je vais appeler default intents, et on va activer en plus les intents qui sont relatifs aux membres.
00:02:27 :Donc sur cette variable ici, je vais faire .members, et je vais le passer à true.Donc ça c'est toutes les permissions par défaut, et après vous allez pouvoir activer ou désactiver certaines permissions en plus.
00:02:38 :Donc nous, vu qu'on est intéressé par les permissions qui sont relatives aux membres,donc par exemple ce qui va nous permettre de détecter l'événement on member join, et bien il faut que je l'active ici.
00:02:49 :Et ensuite, dans notre client, on va devoir lui passer ses intents.Donc ces intents, on va les passer au paramètre intents, et on va passer notre default intents que l'on vient de créer.
00:02:59 :Donc vous les créez à partir du défaut, ensuite vous modifiez ce que vous avez besoin de modifier,donc dans ce cas-ci on fait juste activer members, et on le passe lorsque l'on crée notre client dans le paramètre intents.
00:03:10 :Donc tout ça, ça nous permet juste d'activer la reconnaissance de l'événement on member join.Donc je vais refaire un événement ici, je vais faire at client.event, et on va l'appeler donc du nom de l'événement, donc on member join.
00:03:24 :Et si vous vous souvenez bien la documentation, on a un paramètre member ici qui va récupérer le membre qui rejoint notre serveur.Ensuite, à l'intérieur de cette fonction, tout ce qu'on va faire c'est très simplement récupérer le salon général,donc le salon principal de mon serveur de test, et dans ce salon on va afficher un message.
00:03:42 :Pour récupérer un salon, on peut utiliser client.getchannel, et on va passer l'identifiant de ce channel.Donc vous voyez ici, il s'agit d'un identifiant sous forme de nombre, donc int,et pour récupérer cet identifiant, on va pouvoir le faire directement depuis notre serveur.
00:03:57 :Avant de pouvoir copier l'identifiant d'un salon, ou même l'identifiant d'un membre,il va falloir activer le mode développeur sur Discord.Pour ce faire, il va falloir changer les préférences de votre compte d'utilisateur,donc non pas du serveur, mais directement de votre utilisateur.
00:04:11 :Pour ça, je vais aller tout en bas à gauche ici, cliquer sur paramètres utilisateurs,et on va aller dans l'onglet apparences, activer tout en bas le mode développeur.
00:04:20 :Donc vous cliquez ici, et une fois que c'est fait, vous pouvez appuyer sur échappe,ou cliquer sur la croix en haut pour revenir sur votre serveur.
00:04:26 :De retour sur mon serveur, je peux maintenant copier l'identifiant d'un salonen faisant un clic droit, et en cliquant sur copier l'identifiant.On pourrait également copier l'identifiant du bot, par exemple ici,en faisant un clic droit sur le nom du bot, et en cliquant sur copier l'identifiant.
00:04:39 :Dans ce cas-ci, moi je vais copier l'identifiant du salon,donc je fais un clic droit, et je clique sur copier l'identifiant.Je retourne dans mon script, et dans mon script je vais passer cet identifiant sous forme de nombre entier,et on va récupérer tout ça dans une variable qu'on va appeler general channel, tout simplement.
00:04:55 :Une fois qu'on a récupéré le salon général, on va pouvoir envoyer un message à l'intérieur,donc je vais faire general channel.send.En passant, si vous souhaitez avoir la compréhension automatique,pour par exemple voir toutes les méthodes qui sont disponibles sur cet objet,on va pouvoir utiliser les type hints.
00:05:12 :Le type hint, ça nous permet tout simplement de spécifier de quel type est un objet.Dans ce cas-ci, cette variable.Je vais mettre deux points, et après ça je vais spécifier que cet objet,donc cette variable general channel, est tout simplement un objet de type text channel.
00:05:27 :Donc les text channel, c'est un objet qu'on va retrouver dans le module Discord,et vous voyez, il apparaît tout en haut ici, donc je peux le taper text channel.
00:05:35 :Et donc si on fait une variable, deux points, et qu'on indique le type de la variable,eh bien PyCharm va être capable par la suite de reconnaître le type de notre objet,et de nous afficher ce qu'il est possible de faire avec.
00:05:46 :Donc je vais faire .send, et là vous voyez que juste en mettant le point,j'ai accès directement à tout ce que je peux faire avec cet objet de type text channel.
00:05:54 :Donc si on redescend ici, voilà, on retrouve le send,donc le send qui va me permettre d'envoyer un message.J'ai également le pop-up qui apparaît,qui me montre tous les paramètres qui sont acceptés ici par cette méthode.
00:06:06 :Donc je vais pouvoir envoyer du contenu,et le contenu que je vais mettre, eh bien c'est tout simplement un messagepour accueillir le nouvel utilisateur.
00:06:13 :Donc je vais dire bienvenue sur le serveur,et je vais tout simplement insérer à l'intérieur de cette chaîne de caractèrele nom d'affichage de l'utilisateur qui vient de rejoindre le serveur.
00:06:23 :Donc je vais utiliser mon paramètre member,et je vais utiliser sur ce paramètre display name,qui est le nom d'affichage de l'utilisateur.Donc maintenant que j'ai fait cette ligne de code,il ne me reste plus qu'à mettre un await.
00:06:34 :Vous voyez d'ailleurs que PyCharm me le suggère.Si on regarde tout en bas ici, on voit coroutine send is not awaited.Donc cette coroutine, il faut l'attendre,donc l'attendre avec le mot clé await.
00:06:44 :Et on a bien l'avertissement qui disparaît.Donc normalement tout est bon, on a bien nos intentsqui vont nous permettre de détecter l'arrivée d'un membre sur notre serveur.
00:06:53 :On a recréé un événement ici, donc l'événement on member join.On récupère le membre qui rejoint notre serveur.On récupère ensuite le salon général avec client.getchannel
00:07:04 :et l'identifiant du salon général,et on envoie ensuite un message à l'intérieur de ce salon.Donc je vais lancer mon script,et j'ai créé un compte de test pour tester cette intégration.
00:07:14 :Donc on attend que notre bot soit prêt.C'est bon maintenant, je retourne ici,et je vais pouvoir avec cet utilisateur tester mon intégration.Donc je clique sur le plus pour ajouter un serveur.
00:07:24 :Je vais utiliser le lien d'invitation de mon serveur de test.Je clique sur join server,et normalement je devrais avoir ici,bienvenue sur le serveur docbot testhuckard.
00:07:34 :Donc docbot testhuckard, c'est le nom de mon utilisateur de test.Et on voit bien ici l'application, donc mon bot,qui m'a souhaité la bienvenue.Et si je reviens ici, on n'a aucune erreur,donc tout fonctionne correctement.
00:07:46 :Donc voilà pour les intents.C'est quelque chose qui a été rajouté récemment,qui est absent de pas mal de tutoriels.Donc je trouvais bien important de le spécifier,parce que vous pouvez tourner en rond assez longuement,si vous ne savez pas ça,et que vous essayez d'utiliser des événements comme celui-ci,
00:08:00 :donc unmember join.Si vous avez besoin de voir tous les événementset les permissions qui sont associés aux intents,vous pouvez vous rapporter à la documentationcomme je vous ai montré au début de la vidéo,pour savoir plus précisément ce que vous avez besoin de faire,en fonction des différents événements qui vous intéressent.
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.