Leveraged Hacker

Newsletter 💌

Comment créer un Bot Discord en 2020 ?

06 Juin 2020

Comment créer un Bot Discord ?

Vous voulez créer votre bot discord par vous-même ? MEE6 et les autres bots ne font pas exactement ce que vous voulez ou ils sont payants ? Vous voulez comprendre comment un bot Discord fonctionne sous le capot ?

Avoir un serveur discord automatisé qui fonctionne comme vous voulez est essentiel pour s’assurer que ses membres soient engagés et qu’ils reviennent régulièrement.

Les Bots Discord sont des programmes qui vous permettent d’automatiser des tâches sur un salon Discord sur lequel vous avez les permissions. Entièrement personnalisables, ils permettent, par exemple, de créer un bot de musique, un système de niveaux ou de s’assurer que les membres lisent le règlement avec un bot de bienvenue.

L’objectif de cet article est de vous permettre de comprendre, configurer et lancer un bot Discord par vous-même en explorant les fonctionnalités et moyens actuels pour vous accompagner dans le succès de votre guilde discord.

Au programme :

  • Quels sont les prérequis pour créer son bot discord ?
  • Comment programmer son bot discord ?
  • Comment configurer un bot discord ?
  • Comment mettre en ligne gratuitement un bot discord ?

Lançons nous ensemble dans la maîtrise d’un bot Discord grâce au JavaScript.

Prérequis pour coder un bot discord

Apprendre a coder Avant de pouvoir vous lancer dans la création de votre bot, vous devez vous assurer d’être en capacité de le coder.

Si vous êtes un habitué de ce blog c’est que le code vous intéresse et ça ne devrait pas poser de problèmes pour vous. Si vous tombez sur ce tutoriel sur Google et que vous n’avez aucune expérience en code, la tâche pourrait s’avérer plus compliquée, mais ne prenez pas peur, je vous donne toutes les informations nécessaires pour commencer.

Connaissance de base en programmation

Faire une application Discord n’est pas très compliqué. Dans ce tutoriel nous utiliserons le JavaScript et les exemples de bases de bots disponnibles sur le site officiel de Discord pour développeurs.

Comme je vous fournis la base du code, il ne vous reste plus qu’à y ajouter de la complexité à l’aide de conditions et autres structures de contrôle. Armé(e) de ces connaissances fondamentales en code, vous devriez être capable de faire à peu près tout ce que vous voulez avec votre bot discord.

Si vous n’avez pas compris le paragraphe du dessus car vous n’avez pas les connaissances de base en code, je vous invite à apprendre la base du JavaScript sur FreeCodeCamp ou le tutoriel Apprendre à Coder avec Javascript sur OpenClassroom si vous ne parlez pas anglais.

Pourquoi créer son bot discord avec JavaScript ?

Il est possible de créer des bots discord dans plusieurs langages de programmation. Que ce soit en Rust, Swift, Python, Ruby, PHP, Java ou autre, les développeurs de discord recommandent un certain nombre de librairies pour intéragir avec leur API et une simple recherche Google ou sur Github vous permettra de trouver des APIs moins reconnues par l’équipe Discord dans votre langage de programmation préféré.

Pour ce tuto, c’est JavaScript que j’ai choisi pour sa simplicité et son universalité. Le JS prend le dessus sur beaucoup de fronts en programmation depuis ces dernières années. L’application de chat Discord elle même est codée en JavaScript avec React, Electron et React-Native, toutes des librairies JS.

Mon blog mettant principalement l’accent sur le fait de “leverage” le code pour arriver à ses fins avec ces mêmes technologies, c’est donc tout naturellement que nous utiliserons la librairie discord.js v12 pour ce premier tuto sur l’utilisation des applications Discord.

Comment installer NodeJS ?

Utiliser Node JS avec discord.js Node permet d’exécuter du javascript comme un programme, sur un ordinateur, un téléphone ou un serveur. Il s’installe comme un programme classique sur votre ordinateur ou par ligne de commande.

Installer node js sur Windows

Rendez vous la page de téléchargement pour Windows de NodeJS et choisissez la version LTS pour Windows. Suivez le processus d’installation et vous devriez avoir tout ce qu’il faut pour commencer à programmer votre bot.

NodeJS pour Mac et Linux

Pour Mac et Linux, vous pouvez soit télécharger le GUI pour installer Node comme pour windows en allant sur la page de téléchargement pour Mac OSX ou Linux de NodeJS.

Si vous préférez passer par la console ou que vous êtes sur Linux, vous pouvez passer par votre gestionnaire de paquets préféré comme brew, apt, yum, dpkg, rpm, pacman ou un autre.

Programmer un bot discord v12 en javascript

Une fois Node installé, votre machine devrait avoir tout ce qu’il faut pour pouvoir installer la librairie discord.js et vous pourrez commencer à programmer le bot. Mais avant cela, il faut faire un petit tour sur le site de discord pour récupérer des identifiants, voyons tout cela ensemble.

Comment devenir développeur sur Discord ?

Discord dispose d’un portail pour interagir avec son API (Application Programming Interface, interface de programmation) en vous fournissant des droits d’accès qui vous permettront de communiquer avec votre serveur grâce à un “long mot de passe secret”, un token.

Pour obtenir ce token, rendez-vous sur sur le site discord puis dans l’onglet Développeurs, cliquez sur “Portail des Développeurs” ou directement via le portail developpeur discord.

Une fois connecté(e), créez une application en appuyant sur “New Application”.

Créer une application Discord sur le Portail Développeurs

Une fois l’application créée, allez dans l’onglet “Bot” du panel du gauche et créez le bot.

Il faut maintenant attribuer un scope de permission, choisissez “Bot” et rendez-vous sur le lien qui a été généré. Gèrer les permission de son bot Discord avec le Scope

Vous vous retrouvez sur l’application Discord sur laquelle il faut choisir un serveur sur lequel vous avez les droits d’administration.

Si besoin, retournez sur le portail développeurs Discord et ajustez les permissions du bot si besoin.

Comment initialiser un projet javascript et installer une librairie avec npm ?

Avec Visual Studio Code ou PowerShell sur Windows ou votre terminal préféré sur Mac et Linux, rendez vous dans le dossier dans lequel vous voulez créer votre bot discord. C’est un dossier dans lequel se trouveront les fichiers javascript et la configuration de votre bot. Vous pouvez le mettre n’importe où, du moment que ce soit un nouveau dossier vide pour rester organiser.

Une fois dans le dossier, initialisons le projet avec npm grâce à la commande :

npm init

Répondez oui à toutes les questions ou insérez les informations que vous voulez.

Si tout s’est bien passé, vous avez maintenant un dossier fermé dans lequel l’environnement de votre projet réside.

Installons maintenant discord.js v12 avec la commande :

npm install discord.js

Ou si vous préférez yarn :

yarn add discord.js

Voilà votre environnement de travail est prêt et vous avez tout ce qu’il faut pour commencer.

Où mettre le client id et le token de discord dans votre code ?

Retournez sur le portail de développeurs de Discord pour récupérer le token que l’on va mettre dans notre projet. Token Bot Discord sur le Portail du Développeur

Créez un fichier javascript, par exemple index.js et ce code pour commencer :

const Discord = require('discord.js');
const client = new Discord.Client();
const token =INSEREZ VOTRE TOKEN ICI’

client.once('ready', () => { 
   console.log(Félicitations, votre bot Discord a été correctement initialisé !');
});

client.login(token);

Veillez à bien insérez votre token à la ligne 3 entre les apostrophes.

Sauvez votre fichier et lancez la commande node index.js (remplacez index.js par le nom de votre fichier si vous avez choisi un autre nom).

Si vous voyez le message Félicitations, votre bot Discord a été correctement initialisé !, c’est que tout s’est passé comme prévu, votre bot est bien lié à votre serveur discord et nous pouvons commencez à ajouter de l’intelligence pour qu’il fasse des choses utiles.

Note : Si on vous vole le token du bot, on a accès à votre bot, n’hésitez pas à le régénérer sur le Portail de Développeur Discord. Vous devrez alors remplacez l’ancien token dans votre code par le nouveau, l’ancien étant maintenant inactif.

Comment configurer un bot discord ?

Vous avez maintenant un boilerplate qui fonctionne, le temps est venu de s’amuser en explorant l’API discord.js v12.

Il existe de nombreuses manières d’automatiser ses tâches et de créer des interactions avec ses membres. Je vous en montre 3 ici avec du texte, des images et de la voix.

Créer une réponse automatique quand un message est posté

client.on('message', message => {
  if (message.content === '!ping') {
    message.channel.send('Pong.');
  }
});

Créer une bannière personnalisée pour vos membres sur discord avec Canvas

Il faut installer une nouvelle librairie, Canvas, pour gèrer les images :

npm i canvas

Ensuite, ajoutez à votre script le code suivant :

client.on('guildMemberAdd', async member => {
  const channel = member.guild.channels.cache.find(ch => ch.name === 'member-log');
  if (!channel) return;

  const canvas = Canvas.createCanvas(700, 250);
  const ctx = canvas.getContext('2d');

  const background = await Canvas.loadImage('./wallpaper.jpg');
  ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

  ctx.strokeStyle = '#74037b';
  ctx.strokeRect(0, 0, canvas.width, canvas.height);

  // Texte générique d'introduction avant le nom d'utilisateur
  ctx.font = '28px sans-serif';
  ctx.fillStyle = '#ffffff';
  ctx.fillText('Bienvenue sur le serveur,', canvas.width / 2.5, canvas.height / 3.5);

  // Ajouter le nom d'utilisateur
  ctx.font = applyText(canvas, `${member.displayName}`);
  ctx.fillStyle = '#ffffff';
  ctx.fillText(`${member.displayName}!`, canvas.width / 2.5, canvas.height / 1.8);

  ctx.beginPath();
  ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
  ctx.closePath();
  ctx.clip();

  const avatar = await Canvas.loadImage(member.user.displayAvatarURL({ format: 'jpg' }));
  ctx.drawImage(avatar, 25, 25, 200, 200);

  const attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'bienvenue-image.png');

  channel.send(`Bienvenue sur le serveur, ${member}!`, attachment);
});

Aller plus loin en intégrant la voix sur votre serveur

client.on('message', async message => {
  // On rejoint le même salon que la personne qui a envoyé le message
  if (message.member.voice.channel) {
    const connection = await message.member.voice.channel.join();

    // Créer un dispatcher
    const dispatcher = connection.play('audio.mp3');

    dispatcher.on('start', () => {
      console.log('audio.mp3 a commencé !');
    });

    dispatcher.on('finish', () => {
      console.log("audio.mp3 s'est terminé !");
    });

    // Gestion d'erreurs !
    dispatcher.on('error', console.error);

    dispatcher.destroy();

  }
});

Toujours plus loin

Vous pouvez suivre le repo git associé à cet article sur github. Si vous comprenez l’anglais, voici la documentation officiele de discord.js et un guide complet qui reprend beaucoup d’exemples et de bonnes pratiques.

Comment mettre son bot discord en ligne ?

A ce stade, votre devriez être satisfait(e) de votre bot qui devrait bien interagir avec votre serveur.

Il tourne bien sur votre ordinateur mais vous avez remarqué que quand votre script javascript ne tourne plus, le bot ne répond plus au serveur.

Dans l’idéal nous voudrions que notre bot tourne en continu, sans interruptions et de manière stable, c’est là qu’un hébergeur est utile.

On sait pourquoi il faut héberger son bot discord, regardons maintenant comment y arriver.

Comment héberger son bot discord sur Heroku ?

Mettre un bot discord en ligne avec heroku Avant de pouvoir host sur heroku, il faut que vous compreniez Git. Si ce n’est pas le cas, il existe de nombreux tutos pour vous expliquer comment créer un compte github et y mettre votre code.

Sinon, commitez votre code avec git et inscrivez vous sur Heroku. Un fois inscrit(e) et votre compte validé, lancez dans la console la commande heroku login.

Pour que Heroku sache quoi faire de votre projet, créez un fichier nommé Procfile avec comme contenu :

worker: npm start

Et ajoutez dans le fichier package.json, la commande associée :

"start": "node index.js"

Ensuite tapez dans la console :

heroku create LE_NOM_DE_VOTRE_BOT_DISCORD
git remote add heroku https://git.heroku.com/LE_NOM_DE_VOTRE_BOT_DISCORD.git
git push heroku master

Comment héberger son bot discord sur AWS ?

Si vous êtes familier(e) avec les Amazon Web Services, il est aussi possible d’host son bot dessus. Utiliser EC2 est l’approche la plus simple mais vous expliquer comment faire pourrait être un article de blog à lui tout seul ! Google est votre ami si c’est le chemin que vous voulez emprunter pour héberger votre bot.

Soyez créatifs et innovez avec votre bot discord !

Vous possédez maintenant toutes les clés pour vous aider dans la réussite de votre serveur discord. Grâce aux différentes possibilités qu’un bot discord vous offre.

Félicitations, vous avez tout ce qu’il faut pour créer un bot original qui correspond exactement à vos attentes !

Je vous souhaite un serveur discord populaire grâce à son automatisation et que l’API discord.js vous mène vers d’autres créations par le code.



Je vous aide à prendre le contrôle de vos finances, de votre temps, de votre vie en devenant irremplaçable grâce au code.

Apprenez les softs skills nécessaires pour améliorer votre vie de développeur, devenez un Leveraged Hacker !

Chargement ...