Un bot discord vous voyez ce que c’est ? Mais oui ! Un BOT DISCORD. Donc, un bot discord est un programme qui vous permet d’automatiser des tâches sur votre serveur Discord, comme faire l’appel sur un serveur vocal ou bien envoyer une image en fonction de la recherche ou bien…
Si vous êtes là c’est pour que je vous explique comment créer un bot par soi-même.
Sommaire
Sommaire
- Prérequis
- Création du Bot
- Ajout du bot sur un serveur discord
- Rendre votre bot en ligne
- Premier évènement (on_ready)
- Faire réagir le bot a un message
- Souhaité la bienvenue a l’arrivée d’un membre
- Conclusion
I- Prérequis
Pour pouvoir réaliser un Bot sur discord, nous avons besoin de :
- Un compte discord
- Le langage Python
- l’IDE PyCharm
- Un environnement virtuel
- La librairie Discord.py
Un compte discord rien de plus simple a faire rendez vous ici. Vous aurez une page qui ressemble a ceci:
Il faudra mettre en 1, votre adresse email. Ex : exemple@gmail.com
En 2, votre nom d’utilisateur public, d’autres personnes pourront avoir accès au nom entré.
En 3, votre mot de passe pour vous connecter. À ne pas partager.
Il faudra aussi rentrer la date de naissance et cocher la case « J’ai lu et accepté […] »
Ensuite, il faut vérifier votre adresse mail. Direction votre boîte mail, celle que vous avez mise dans la case Adresse Mail. Puis cliquez sur le mail de discord puis sur la case vérifier l’adresse Mail.
Super ! Vous venez créer votre premier compte discord. Passons à la suite.
Python. Il faudra une version récente de python: se rendre sur le site officiel de python ici. Puis choisir la version la plus récente , pour python 3.10.2 c’est ici.
Une fois lancer le .exe que vous avez installé cette fenêtre s’affichera.
Il suffit d’appuyer sur Install Now et l’installation se lance tout seul.
Génial ! Vous avez une version de python récente.
Pycharm. PyCharm est un IDE, Integrated development environment, ce qui permet de taper notre code et de le tester. Il existe deux versions de PyCharm une payante et une gratuit, nous allons installer la version gratuite il suffit de cliquer ici.
Une fois lancez le fichier téléchargé il faut appuyer 2 fois sur le bouton next ensuite.
Il faut cocher les casses 1 et 2 puis appuyer sur next.
Le téléchargement ce lance il suffit de patienter. Puis il faut appuyer sur finish.
Incroyable ! Pycharm est enfin téléchargé sur votre ordinateur
Un environnement virtuel. Ce n’est pas très compliqué à faire, il suffit de lancer PyCharm. En suite il faut appuyer sur file en haut a droite puis new Project. Une fenêtre s’ouvrira.
Sur cette fenêtre il faut juste modifier la localisation de votre environnement virtuel ou de modifier le nom de votre projet. Et d’appuyer sur « Create »
Fantastique ! vous avez votre environnement virtuel. On s’approche de la fin des prérequis.
La librairie Discord.py. Pour cela il faut vous rendre sur PyCharm. Se rendre en bas a gauche sur le terminal et d’entrer la commande : pip install -U discord. Puis appuyer sur Entrée.
Enfin ! Vous avez fini toutes les étapes. On va pouvoir commencer.
II- Création du bot
Pour créer votre bot il faut vous rendre sur le site discord développeur accessible sur ce lien. Et il faut vous connectez avec votre compte discord que vous avez créé si vous avez suivi les prérequis.
Une fois connectée, vous devrez appuyer sur « New Application » puis vous rentrer le nom de votre application, ici il sera appelé « PetitCubeBot » puis il faudra appuyer sur le bouton « Create ».
Vous pouvez ensuite personnaliser votre application, en lui mettant une photo de profil, une description ou encore des tags.
Pour créer votre bot il faut aller à gauche dans la barre et choisir Bot. Une fois que vous avez appuyé sur bot il faut appuyer sur le bouton « Add Bot »
Vous pouvez comme pour votre application, personnaliser votre bot, le renommer ou lui mettre une photo de profil.
Réglage des options de votre bot : activer le mode public ou non en fonction de votre choix, ici il ne sera pas en public. Puis il faudra activer les « Intents », qui permettent de recevoir un certain événement comme de savoir quand quelqu’un arrive sur votre serveur discord. Il ne faut pas oublier d’appuyer sur « Save Changes ».
Se rendre maintenant sur « OAuth 2 » puis dans « URL Generator ». Ensuite sur la page web affichée il faut cocher la case « Bot » ce qui génère une url (tout en bas de la page) qui permet d’inviter le bot sur votre serveur. En cochant la case « Bot » d’autre case se sont affichées il faut juste cocher la case « Administrator ».
La création du bot est finie on passe à l’ajout du bot sur un serveur.
III- Ajout du Bot sur un serveur discord
Pour ajouter le bot sur votre serveur discord il faut tout d’abord créer votre serveur discord. Direction ce lien connectez-vous si nécessaire puis cliquez sur le plus puis « créer le mien ». Donner le nom que vous voulez a votre serveur et enfin appuyer sur créer.
Ensuite rendez-vous sur le lien que vous avez généré a la dernière étape (tout en bas de cette page). Choisissez le serveur que vous avez créé puis appuyez sur continuer. Ensuite vérifier que « Administrator » soit coché puis appuyer sur « Autoriser ». Vérifier que vous n’êtes pas un robot puis une validation doit être affiché disant comme quoi le bot a rejoint le serveur.
Vous pouvez vous rendre sur votre serveur est voir un message d’accueil du bot exemple (« Tout le monde, accueillez comme il se doit PetitCubeBot ! » ou « PetitCubeBot a bondi dans le serveur. ») et dans la liste des membres le bot s’affiche. Attention le bot est Hors-Ligne.
IV- Rendre votre bot en ligne
Vous avez ajouté votre bot sur votre serveur. Mais il est hors-ligne alors qu’on voudrait qu’il s’affiche en étant en ligne. Pour passer notre bot en ligne il faut se rendre sur Pycharm et sur le projet qui contient l’environnement virtuel que vous avez créé lors des prérequis. Puis créer un nouveau document python qu’on appellera main pour créer un nouveau document il faut faire un click gauche sur votre fichier contenant l’environnement virtuel puis sur « New » et sur « Python file ».
Avant de commencer de coder il sera nécessaire de connaître le Token de votre bot. Si vous ne savez pas ou trouver le Token de votre bot il faut vous rendre ici. Ouvrer l’application qui comporte votre bot puis se rendre sur « Bot » est cliqué sur « Click to Reveal Token ». Attention un Token doit être gardé secret si vous ne voulez pas que d’autre personne utilise votre bot.
Une fois votre fichier créer on va maintenant écrire quelque ligne de code on commence par importer le module discord donc ligne 1 on écrit : import discord. Ensuite on va créer un client que l’on met dans une variable donc : Client = discord.Client(). Et pour finir il reste plus qu’à lancer votre client en écrivant Client.run(« Le token de votre bot »).
Donc le script ressemble à ça :
import discord client = discord.Client() client.run("Le token de votre bot")
Ensuite il suffit d’exécuter votre script pour rendre en ligne votre bot et d’arrêter le script pour rendre hors-ligne votre bot. Vous pouvez vérifier en allant voir votre serveur où le bot est présent
Ok, Maintenant le bot est en ligne on passe a la suite
V- Premier Evènement (on_ready)
Il existe une multitude d’évènements on peut tous les retrouver sur la documentation du module discord ici. Ce premier Évènement est réalisé lorsque le bot a fini de recevoir les données de discord et qu’il est maintenant connecté. Ce qui nous permettra de savoir quand le bot est opérationnel avec un message envoyer dans le terminal.
Pour réaliser cet évènement il faut tout d’abord définir une fonction qui s’appellera on_ready. Cette fonction doit être placée juste après la variable client. Dans cette fonction on demande d’afficher que le bot est prêt dans le terminal donc : print(« Le bot est prêt »). Ce qui donne :
import discord client = discord.Client() def on_ready(): print("Le bot est prêt") client.run("OTIyNTE2MzkwNDU4NTg1MTA4.YcCmVw.nKuVkLzB6-Wi1zYKN6323RPKPa4")
Ce n’est pas fini, il faut préciser que cette fonction est une coroutine pour cela il faut juste rajouter devant la fonction async. Et il faut aussi rajouter juste avant la fonction un décorateur, ce qui permet de modifier le fonctionnement de la fonction event ou est présent notre fonction on_ready présent dans la variable client. Le décorateur est le suivant : @client.on_ready.
import discord client = discord.Client() @client.event async def on_ready(): print("Le bot est prêt") client.run("OTIyNTE2MzkwNDU4NTg1MTA4.YcCmVw.nKuVkLzB6-Wi1zYKN6323RPKPa4")
VI- Faire réagir le bot a un message
Pour faire réagir notre bot à un message, soit en répondant au message ou soit en supprimant le message, il faudra qu’on utilise un évènement, appelé on_message.
Il faut faire pareil que pour l’événement on_ready. Il faut définir une fonction appelée on_message avec comme paramètre (ce qui se trouve dans les parenthèses) : « message », lui rajouter async et juste devant le décorateur @client.event.
import discord client = discord.Client() @client.event async def on_ready(): print("Le bot est prêt") @client.event async def on_message(message): client.run("OTIyNTE2MzkwNDU4NTg1MTA4.YcCmVw.nKuVkLzB6-Wi1zYKN6323RPKPa4")
Pour voir tous que l’on peut faire avec le paramètre message on peut voir la documentation ici. Pour l’instant nous allons afficher le message dans le terminal de python donc pour cela on va rajouter à la fonction on_message, print(mesage.content). Donc on demande d’afficher le contenu du message que le bot a récupéré.
La fonction on_message doit ressemble a ça :
@client.event async def on_message(message): print(message.content)
On peut voir que lorsque l’on exécute le script et que l’on va écrire un message sur le serveur. Le même message est alors affiché sur le terminal de l’IDE.
Donc la s’est bien beau on arrive à récupérer le message mais nous, on veut que notre bot réponde a un message. Pour cela il faut une boucle conditionnelle : si ce que contient le message est « quoi » alors… Ce qui fait : if message.content.lower() == « quoi ». On rajoute lower pour mettre le mot en sa plus petit forme pour que le bot puisse répondre même s’il y a des majuscules. On peut rajouter une instruction demandée d’afficher feur pour voir si sa marche
@client.event async def on_message(message): if message.content.lower() == "quoi": print("feur")
On peut donc essayer et on voit que lorsque l’on écrit quoi, feur est écrit dans le terminal mais si on écrit autre chose comme na rien ne s’affiche
Ok super mais on voudrait maintenant que l’affichage de feur se passe sur discord. Pour commencer on remplace print par await, une coroutine qui permet d’attendre qu’une tache soit effectuer pour passer a la suivante. Puis il faut récupérer le chanel dans le quelle a été écrit le message et ensuite envoyer un message pour ça il faut juste une ligne : message.channel.send(« feur »)
@client.event async def on_message(message): if message.content.lower() == "quoi": await message.channel.send("feur")
Quand on essayer on obtient sa
On peut répondre a un message mais si le message est offensant ou insultant il faut le supprimer on vas voir comment faire. Donc dans notre fonction on_message on rajoute une condition si le message est égale à méchant alors se qui fait : if message.content.lower() == « méchant »: pour supprimer un message il faut la coroutine await et mesage.delete()
@client.event async def on_message(message): if message.content.lower() == "quoi": await message.channel.send("Feur") if message.content.lower()== "méchant": await message.delete()
Donc si le message est méchant alors il est supprimer
VII- Souhaité la bienvenue a l’arrivé d’un membre
Pour faire réagir votre bot a l’arrivé d’un membre il faut activer les intents se que vous avait fait normalement lors de la création du bot. Il faut aussi activer ces intents dans votre script en les mettant dans une variable. Ici je l’appellerai default_intents et elle aura comme valeur discord.Intents.default(). Puis il faut activer l’intent members en fessant default_intents.members = True. Les intents sont bientôt activer il reste plus qu’à les activer dans notre client en insérant dans les parenthésé de discord.Client(), intents=default_intents
Un exemple du script a quoi il doit ressemble:
import discord default_intents = discord.Intents.default() default_intents.members = True client = discord.Client(intents = default_intents) @client.event async def on_ready(): print("Le bot est prêt") @client.event async def on_message(message): if message.content.lower() == "quoi": await message.channel.send("Feur") if message.content.lower()== "méchant": await message.delete() client.run("OTIyNTE2MzkwNDU4NTg1MTA4.YcCmVw.nKuVkLzB6-Wi1zYKN6323RPKPa4")
Maintenant il faut créer la fonction qui vas souhaiter la bienvenue. Ne pas oublier qu’il faut mettre la décoration @client.event et le async devant la fonction. On va appeler cette fonction on_member_join et on vas lui mettre comme paramètre member
@client.event async def on_member_join(member):
On vas ensuite récupérer l’id du salon où on veut afficher le message de bienvenue pour sa on se rend dans les paramètre de discord puis dans avancé et on active le mode développeurs.
Et ensuite on retourne sur le serveur on fait click gauche sur le salon en question puis click gauche et on choisie copier l’identifiant.
Maintenant on a l’identifiant du salon, il faut que l’on le rajoute au code grâce a une ligne de code qui permet de récupère le salon : client.get_channel(). On copie colle l’identifiant et on le met dans une variable, general_channel. A cette variable il faut dire que c’est un objet de type TextChannel en lui rajoutant juste devant : discord.Textchannel
Comme ce ci :
@client.event async def on_member_join(member): general_channel: discord.TextChannel = client.get_channel(#l'identifiant du serveur)
Maintenant il reste plus qu’à dire au bot d’envoyer un message avec general_channel.send(). Entre les paramètre il faut rajouter le contenue, content=. Puis f »votre message {member.dysplay_name} ». Un exemple en dessous
@client.event async def on_member_join(member): general_channel: discord.TextChannel = client.get_channel(#l'identifiant du serveur) general_channel.send(content=f"Bienvenue sur le serveur {member.display_name} !")
On peut tester lorsque quelqu’un rejoint le salon le message s’affiche
VIII- Conclusion
Super ! Maintenant votre bot est fini. Si vous avez suivi le tuto il ne reste plus qu’à exécuter le script pour que le bot fonction correctement. Vous pouvez toujours faire des recherche sur internet pour ajouter des options à votre bot. Vous pouvez aussi le rendre public pour que tout le monde puisse y accéder.
Étudiant en spécialité NSI en classe de 1ère en 2021-22.