Skip to main content

Chapitre 2 - Création de la structure du bot

Nous rejoindre sur Discord

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.jsPermet 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 :

  1. 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épertoire src
  2. Créer un répertoire commands, ce répertoire va contenir toutes les commandes disponibles pour notre bot
  3. Créer un répertoire events, ce répertoire va contenir tous les évènements que nous allons écouter
  4. 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
  5. 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 :