Tutoriel : Créer un bot Discord (Partie 1)
Vous souhaitez expérimenter l'ajout de fonctionnalité sur Discord avec un bot ? C'est par ici !
Article publié le 10/11/2021, dernière mise à jour le 19/09/2023
Commençons par comprendre ce qu'est réellement un bot Discord, et comment il fonctionne pour pouvoir ensuite coder le notre.
À noter que nous utiliserons Javascript et NodeJS pour développer notre bot au long de ce tutoriel.
Le principe
Un bot discord va être composé de deux parties distinctes : Un utilisateur virtuel Discord et le code hébergé sur un serveur.
L'utilisateur virtuel va nous permettre de gérer le nom, l'avatar, les permissions, les identifiants, et d'autres paramètres, directement sur les pages d'administration de Discord.
Le code, lui, va s'abonner à cet utilisateur virtuel pour pouvoir lire à sa place et effectuer des actions sur le serveur où il aura été invité (un bot peut être invité sur autant de serveur que l'on veut).
Créer l'utilisateur virtuel
La première étape est de se rendre sur le portail développeurs de Discord, juste ici : https://discord.com/developers/applications
Ensuite, il faudra créer une nouvelle application en remplissant le nom et la description de votre bot.
Attention, ici vous êtes en train de créer une application, mais pas encore votre utilisateur virtuel (bot). C'est l'étape suivante.
Une fois cette étape terminée, mettez votre "application id" de côté, nous en aurons besoin à la fin pour inviter votre bot sur un serveur.
Ensuite, cliquez sur l'onglet "Bot" dans le menu de gauche puis sur "Add Bot" pour créer votre utilisateur virtuel.
C'est dans cette section que vous allez pouvoir choisir le nom final de votre bot, son avatar, et surtout récupérer le token de connexion !
Attention, le token ne doit être divulgué à personne, sinon n'importe qui pourrait prendre le contrôle de votre bot ! Mettez le de côté pour l'intégrer dans votre code.
Inviter le bot sur un serveur
Bravo, votre utilisateur virtuel (bot) est créé, et il ne reste plus qu'à lui donner vie avec du code, mais avant celà, la première étape est de l'inviter sur un serveur, car c'est seulement au sein d'un serveur que l'on pourra utiliser notre bot.
Pour celà, il suffit de cliquer sur le lien d'invitation du bot. Seul problème, il n'existe pas encore, et c'est à vous de le créer.
Un lien d'invitation de bot ressemble à ceci :
https://discord.com/api/oauth2/authorize?client_id=CLIENT_ID&permissions=PERMISSION_NUMBER&scope=bot%20applications.commands
Vous l'aurez compris, le CLIENT_ID doit être remplacé par celui récupéré au préalable sur la page de l'application, mais pour le PERMISSION_NUMBER, il va falloir le générer en fonction des permissions voulues !
En descendant tout en bas de l'onglet "Bot", vous trouverez un utilitaire grâce auquel vous pourrez sélectionner toutes les permissions souhaitées, et copier le nombre final pour l'insérer dans le lien d'invitation.
Il ne vous reste plus qu'à cliquer sur ce lien, pour être redirigé vers une page vous demandant de choisir le serveur sur lequel ajouter le bot, et le tour est joué !
Le fonctionnement du bot
Une fois l'utilisateur virtuel créé sur Discord, vous avez accès à un token de connexion, qui servira à votre code à s'identifier auprès de Discord comme étant cet utilisateur virtuel.
Ensuite, et tant que votre code sera en exécution, Discord enverra tous les évènements liés à l'utilisateur virtuel (ajout à un serveur, mentions, messages, commandes, etc...) directement sur votre client NodeJS (identifié avec le token).
Pour finir, il ne restera plus à votre bot qu'à répondre aux évènements de la manière dont vous le décidez (envoi de message, d'images, actions d'administration, etc...)
Les évènements envoyés par Discord et les réponses de votre bot seront toujours conditionnés par les permissions passées dans le lien d'invitation.
Le code minimal
Voici le code minimal (NodeJS) pour générer le client du bot et l'identifier auprès de Discord (avec le token) afin de recevoir les évènements liés à l'utilisateur virtuel :
//index.js
require('dotenv').config();
const { Client, Intents } = require('discord.js');
const token = process.env.DISCORD_TOKEN
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
// When the client is ready, the virtual user is shown as "Logged in" in the servers.
client.once("ready", function(){
console.log(`I am ready! Logged in as ${client.user.tag}!`);
});
// Login to Discord with your client's token
client.login(token);
/*
//Listen to messages, server invite, etc...
client.on("...", (...)=>{});
*/
Attention, le SDK discord.js nécessite une version minimale de NodeJS 16.6.0, je vous invite à utiliser NVM pour vous faciliter la vie !
Pour plus de facilité, vous pouvez retrouver ce code, et les fichiers d'environnement et de dépendances directement sur mon GitHub :
Il vous suffira de faire un "node index.js" pour voir votre bot prendre vie et se connecter à Discord !
La deuxième partie de ce tutoriel est disponible ici : https://blog.nicolas.brondin-bernard.com/tutoriel-creer-un-bot-discord-partie-2/
Aucun commentaire pour l'instant