Skip to main content

Chapitre 2 - Création de la structure du bot

Nous rejoindre sur Discord

Nous venons de créer notre bot et celui est présent sur notre serveur. L'étape suivante est de créer notre code pour faire fonctionner notre bot.

Initialisation de notre projet

Quelque soit l'IDE que vous utilisez, vous devez dans un premier temps créer un répertoire dans lequel se trouvera la 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éer, 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 champs 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 à quelqu'un d'autre et la personne pourra facilement installer les dépendances.

Installation des dépendances

Nous allons installer toutes 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 @discordjs/rest dotenv log-timestamp
Packages Utilité
discord.js Utiliser les fonctionnalités de Discord
@discordjs/rest Diffuser les commades de notre bot sur les serveurs (utilisation principale ici)
dotenv Lire les informatios 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 utiliser, votre fichier package.json devrai 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": {
    "@discordjs/rest": "^1.0.1",
    "discord.js": "^14.1.2",
    "dotenv": "^16.0.1",
    "log-timestamp": "^0.3.0"
  }
}

Une 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 besoins :

  1. Dans un premier temps, nous allons créer un répertoire src à la racine du 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 disponible 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écurentes que nous seront ammenées à utiliser

L'arborescence de votre projet devrait ressembler à ça :