Comme vous l’avez surement remarqué, j’aime la série Kaamelott, et avec un ami nous avons lancé notre serveur discord pour pouvoir nous retrouver lors de nos sessions de jeux et je me suis dit pourquoi ne pas mettre en place quelque chose qui nous enverrait des répliques de la série directement de notre salon vocal.
La grande force de discord repose dans sa gratuité, mais aussi dans la possibilité de mettre en place des bots . Le but des bots est d’apporter une interactivité avec votre serveur, de modérer votre serveur bref les bots peuvent faire n’importe quoi du moment que vous l’avez programmer.
Je me suis donc mis à la recherche d’un bot (n’ayant aucune expérience en programmation pour en créer un par moi-même) et je suis tombé sur un projet GitHub fait par l’utilisateur LeoPenaguin.
Alors je ne vais pas rentrer dans le détail concernant la programmation, le dev l’explique très bien sur son site web : https://codebear.info/2019/07/25/un-bot-kaamelott-pour-discord-en-javascript/ je vais plus vous expliquez la mise en place d’un bot sur votre RPi.
Alors, comment installer un bot dans notre cas Kaamelott Bot sur notre Raspbbery
Nous allons d’abord créer un bot, rendez-vous sur le site dev de discord : https://discord.com/developers/applications connectez vous avec votre compte Discord.
Voici page sur laquelle vous arriver : Nous allons créer une nouvelle application en cliquant sur « New Application », une fenêtre vous demandera le nom de votre application donnez lui un nom puis « Create » !
Voici la page que vous obtenez Si vous souhaitez personnaliser un peu votre Bot comme l’image du bot vous pouvez uploader une image qui s’affichera comme photo de profil dans discord, vous pouvez également donner une description du bot.
Ce qui nous intéresse c’est le menu OAuth2 et Bot
Le menu Bot va nous permettre de récupérer notre Token, le token sert à associer votre programme à votre bot sans lui rien ne fonctionne.
Rendez-vous maintenant dans le Menu OAuth2, c’est depuis ce menu que vous allez pouvoir générer un lien qui vous permettra d’intégrer votre bot à votre serveur Discord. Mais quelques réglages avant de pouvoir le faire.
Il faut dire à Discord que notre application est un bot en cochant la case « bot »
Ensuite, définir les permissions du bot, pour ce bot voilà les droits que je lui ai mis,si vous avez un doute vous pouvez par défaut mettre Administrator , mais je vous le déconseille fortement, car vous donnez les pleins pouvoirs à votre Bot ….pas tip top
Maintenant, vous pouvez rajouter le bot à votre serveur discord pour ce faire copier coller le lien fourni dans un nouvel onglet de votre navigateur
Dans la nouvelle page sélectionner le serveur sur lequel vous voulez que le bot s’installe, valider les permissions que le bot demande puis cocher le captcha et voilà votre bot est maintenant sur votre serveur, mais hors ligne c’est normal !
Création et configuration de notre Bot sur notre RPi
- Connectez-vous-en ssh sur votre RPi (ou bureau à distance et lancer un terminal)
- Nous allons avoir besoin de NodeJS et Npm pour pouvoir faire fonctionner notre bot voici la commande d’installation
- Vérifions également que ffmepg est bien installé
- Maintenant nous allons installer Git pour pouvoir cloner facilement le repo contenant le bot
- Voilà nous avons toutes les bases pour pouvoir commencer la mise en place du bot.
- Créez un nouveau dossier puis rendez-vous dedans
- Nous allons cloner Github contenant le bot encore merci à LeoPenaguin pour ce bot
- Logiquement, vous vous retrouvez avec un nouveau dossier qui se nomme kaamelott-bot
- On rentre dans le dossier et faire un ls -a pour afficher le dossier cacher
Nous allons créer un nouveau fichier .env qui contiendra notre TOKEN discord (si si rappelez-vous je vous montre où l’obtenir plus haut dans le tuto
- Mettre ceci dedans, bien entendu remplacer VOTRE_TOKEN part votre Token
- Ctrl+X + O + Entrée pour sauvegarder
- Maintenant lancement de notre Bot avec NodeJS
- Puis lancement du bot avec
- Ne fermez surtout pas votre terminal pour le moment
Rendez-vous maintenant sur votre Discord votre bot est bien en ligne, il vous suffit de taper !kaamelott pour qu’il vienne dans votre salon vocal vous balancer une petite réplique !
Alors c’est bien beau tout fonctionne, mais vous êtes obligé de toujours laisser le terminal ouvert sinon votre Bot passe en hors ligne….. pas cool…. heureusement voilà la solution pour que votre Bot soit toujours en ligne, et surtout que même après un redémarrage de votre Rpi ou une coupure il se lance tout seul comme un grand ! Pour pouvoir réaliser ce petit miracle nous allons avoir besoin de PM2,
PM2 est un deamon pour les processus en node.js il permet de les maintenir en ligne 24/24 7/7 COOL
Nous allons donc l’installer sur notre Rpi on réouvre un terminal et on tape la commande suivante :
Attendre la fin d’installation puis rendez-vous dans le dossier contenant votre .js pour nous c’est index.js dans /home/pi/DiscordBot/kaameloot-bot/
L’utilisation de pm2 est très simple nous allons lui demander de lancer notre JS avec cette commande :
Voici ce que vous devez obtenir, j’ai bien le nom et le statut ici online, si vous retourner sur votre Discord votre bot est bien en ligne.
Voici la commande qui va permettre le lancement automatique en cas de coupure ou de reboot.
PM2 vous affiche ici une ligne que vous devez copier et coller pour ajouter le lancement automatique, voici le résultat obtenu Maintenant on sauvegarde les applications, pour qu’elle se lance aux démarrages dans notre cas il y a uniquement notre index.js nous allons demander à pm2 de sauvegarder notre liste pour qu’il puisse la relancer lors d’un reboot ou d’un arrêt
On reboot le Rpi pour voir si tout cela fonctionne bien
Une fois rebooter ouvrir un terminal et pour voir les instances de pm2 taper ceci
Et voilà ! C’est terminer ! Votre bot sera bien accessible 24/24 7/7 le tout automatiquement même en cas de coupure ou de reboot !
Amusez-vous bien !!!
Et comme d’habitude si vous avez le moindre souci ou la moindre question la parti commentaire est là !
Source : https://github.com/LeoPenaguin/kaamelott-bot https://codebear.info/2019/07/25/un-bot-kaamelott-pour-discord-en-javascript/ https://pm2.keymetrics.io/docs/usage/startup/ https://pm2.keymetrics.io/docs/usage/quick-start/