← TOUTES LES FORMATIONS

FORMATION · DÉBUTANT

Créer un bot Discord

Programme ton propre bot Discord avec discord.js, de la première commande jusqu'au bot qui tourne jour et nuit.

MODULE 1 GRATUIT6 MODULESMODULE 1 : 40 MINPRIX ANNONCÉ À LA SORTIE

MODULE 1 · GRATUIT

Ton premier bot qui répond à /ping

À la fin de ce module, ton bot est sur ton serveur et répond « Pong ! » quand tu tapes /ping. C'est exactement le point de départ de Z-Bot, le bot du serveur Zodka.

1. Créer le bot sur Discord

  1. Va sur le portail développeur de Discord (discord.com/developers/applications) et clique sur New Application. Donne-lui un nom.
  2. Dans General Information, copie l'Application ID : c'est ton clientId.
  3. Dans l'onglet Bot, clique sur Reset Token et copie le jeton. C'est le mot de passe du bot.
ATTENTION

Ne montre jamais ton jeton : pas dans une capture, pas sur GitHub, pas dans un message. Avec lui, n'importe qui contrôle ton bot. S'il fuit, clique tout de suite sur Reset Token pour l'annuler.

2. Inviter le bot sur ton serveur

  1. Onglet OAuth2, puis URL Generator.
  2. Coche les deux cases bot et applications.commands.
  3. Ouvre le lien généré en bas de la page et choisis ton serveur.
  4. Dans Discord, active le mode développeur (Paramètres, Avancés), puis fais un clic droit sur ton serveur et Copier l'identifiant : c'est ton guildId.

3. Préparer ton ordinateur

Installe la version LTS de Node.js depuis nodejs.org, puis crée un dossier pour le bot et ouvre un terminal dedans :

TERMINAL
npm init -y
npm install discord.js

4. Les trois fichiers du bot

Le fichier de configuration garde tes trois identifiants :

config.json
{
  "token": "COLLE-TON-JETON-ICI",
  "clientId": "ID-DE-L-APPLICATION",
  "guildId": "ID-DE-TON-SERVEUR"
}

Ce fichier déclare la commande /ping auprès de Discord. Tu le lances une seule fois, et à nouveau chaque fois que tu ajoutes une commande :

deploy-commands.js
const { REST, Routes, SlashCommandBuilder } = require('discord.js');
const { token, clientId, guildId } = require('./config.json');

const commandes = [
  new SlashCommandBuilder().setName('ping').setDescription('Répond Pong !'),
].map(c => c.toJSON());

new REST().setToken(token)
  .put(Routes.applicationGuildCommands(clientId, guildId), { body: commandes })
  .then(() => console.log('Commande /ping enregistrée'))
  .catch(console.error);

Et voici le bot lui-même :

index.js
const { Client, Events, GatewayIntentBits } = require('discord.js');
const { token } = require('./config.json');

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once(Events.ClientReady, c => console.log(`Connecté en tant que ${c.user.tag}`));

client.on(Events.InteractionCreate, async interaction => {
  if (!interaction.isChatInputCommand()) return;
  if (interaction.commandName === 'ping') {
    await interaction.reply('Pong !');
  }
});

client.login(token);

5. Lancer

TERMINAL
node deploy-commands.js
node index.js

Quand le terminal affiche « Connecté en tant que… », tape /ping sur ton serveur. Le bot répond. Il reste en ligne tant que le terminal est ouvert : le module 5 explique comment le garder allumé tout le temps.

ASTUCE

Si tu ranges ton projet sur GitHub, crée un fichier .gitignore qui contient la ligne config.json. Ton jeton restera sur ton ordinateur.

Avant de passer au module 2

LA SUITE

Les modules 2 à 6 arrivent bientôt

Tu veux être prévenu de leur sortie ? Écris-moi en indiquant le nom de la formation :