Chapitre 2 - Création de la structure du bot
Nous venons de créer notre application, notre bot et celui est présent sur notre serveur. L'étape suivante est de créer la structure permettant de gérer les fichiers de notre bot.
Initialisation de notre projet
Quel que soit l'IDE que vous utilisez, vous devez dans un premier temps créer un répertoire dans lequel se trouvera le code de votre bot. Dans ce répertoire, nous allons créer un fichier app.js
à la racine de votre projet, mais nous ne mettrons rien dedans pour le moment. Une fois que le fichier est créé, ouvrez une invite de commande (shell, cmd, etc.) et tapez la commande :
npm init
Cette commande va nous permettre d'initialiser notre projet js, une fois la commande saisie, remplissez les informations avec vos données. Pendant la saisie des données, dans le champ entry point, entrez le nom du fichier principal de notre bot (ici : app.js
). Une fois que vous aurez rempli les informations, un fichier package.json va se créer :
{
"name": "formation-bot",
"version": "1.0.0",
"description": "Formation développement bot Discord",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Aros - Team Xelyos",
"license": "ISC"
}
Les informations présentes dans ce fichier peuvent varier en fonction de vos saisies.
Le fichier packages.json est un fichier contenant toutes les informations du projet et ses dépendances. Grâce à ce fichier, vous pourrez transférer votre projet à une autre personne et celle-ci pourra facilement installer les dépendances.
Installation des dépendances
Nous allons installer tous les modules nécessaires au fonctionnement de notre bot. Un module est un ensemble d'instruction qui nous permet de réaliser certaines actions. Si vous souhaitez en savoir plus, nous vous invitons à lire ce lien : MDN - Les modules JavaScript.
Voici la commande à utiliser pour les installer :
npm i discord.js discord-api-types @discordjs/rest dotenv log-timestamp
Packages | Utilité |
---|---|
discord.js | Utiliser les fonctionnalités de Discord |
discord.js | Permet de gérer les différents fonctionnalités de Discord |
@discordjs/rest | Diffuser les commandes de notre bot sur les serveurs (utilisation principale ici) |
dotenv | Lire les informations présentes dans notre fichier .env |
log-timestamp | Afficher l'heure au moment de la génération d'un log |
Une fois la commande utilisée, votre fichier package.json
devrait avoir une nouvelle clé dependencies ressemblant à ça :
{
"name": "formation-bot",
"version": "1.0.0",
"description": "Formation développement bot Discord",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Aros - Team Xelyos",
"license": "ISC",
"dependencies": {
"discord-api-types": "^0.37.0",
"@discordjs/rest": "^1.0.1",
"discord.js": "^14.1.2",
"dotenv": "^16.0.1",
"log-timestamp": "^0.3.0"
}
}
Un second fichier
package-lock.json
va également se créer. Ce fichier va stocker la structure exacte de votre arborescence de dépendances à chaque installation. Il est important de ne pas supprimer ce fichier si vous êtes plusieurs à travailler sur le bot.
Fichiers de configuration
Toujours à la racine du projet, créez les fichiers suivants :
- .env : c'est dans ce fichier que nous mettrons les informations d'identification (le token, base de données si vous en utilisez une, etc..)
- config.json : c'est dans ce fichier que nous mettrons les informations de configuration de notre bot
- config-dev.json : nous utilisons ce fichier afin de séparer notre bot de développement et le bot présent sur le serveur. Il permet de facilement séparer les informations (comme, l'id des rôles, etc...)
Dans le fichier .env
, nous allons mettre le token de notre bot récupéré dans le chapitre 1 :
TOKEN=votre_token_prive
Création des répertoires
Avant de commencer à coder, nous allons créer les différents répertoires dont nous aurons besoin :
- Dans un premier temps, nous allons créer un répertoire
src
à la racine de votre projet. C'est dans ce répertoire que nous y mettrons nos fonctionnalités. Tous les autres répertoires que nous allons créer seront dans ce répertoiresrc
- Créer un répertoire
commands
, ce répertoire va contenir toutes les commandes disponibles pour notre bot - Créer un répertoire
events
, ce répertoire va contenir tous les évènements que nous allons écouter - Créer un répertoire
reactions
, ce répertoire va contenir toutes les réponses aux réactions (actions sur un bouton, sélection dans une liste, etc..) de notre bot - Pour finir, créer un répertoire
tools
. Dans ce répertoire, nous mettrons tous les fichiers externes au fonctionnement de Discord. On pourra, par exemple, stocker les fonctions récurrentes que nous seront serons amenées à utiliser
L'arborescence de votre projet devrait ressembler à ça :