Skip to content

YannZeRookie/lsd-bot

Repository files navigation

LSD-Bot : le Bot des Scorpions du Désert

Outils requis:

  • Node.js version 16.6.0 ou supérieure
  • NPM version 8 ou supérieure

Libraries

Database

Il faut installer en local la base de données et le site PHP de gestion de comptes des LSD : https://github.com/YannZeRookie/lsd-account

Cependant, il est possible de faire tourner le Bot sans aucune base de données, mais dans ce cas certaines fonctions seront désactivées (comme obtenir une url de connexion par exemple). Pour désactiver la connexion à une base de données, laisser le champ host à "" dans le fichier db.json.

Installation

Après avoir cloné la repo et être entré dans le directory lsd-bot, l'installation des packages NPM se fait de façon standard :

$ npm install

Renommer les fichiers *.sample.config en enlevant le .sample et y remplir les valeurs. Il faudra vous créer un Bot de test dans le serveur Discord des LSD - c'est mieux que d'utiliser celui de production.

Le fichier config.json contient votre url locale du site de gestion de compte. Par exemple http://localhost:8080/login Ce n'est utile que si vous faites aussi tourner le mini-site et que vous voukez utiliser le système de connexion.

Lancement

$ ./start.sh

Le robot devrait apparaître connecté. Tapez !connexion dans Discord pour tester.

Développement

MS Visual Studio Code est pratique pour débugger l'app.

IL est conseillé d'avoir un Bot différent de celui en production. Afin d'éviter que les deux Bots répondent en même temps aux commandes, mettre un préfixe différent dans le fichier config.json du Bot en développement.

Production

Le server est lancé via PM2 Plus. Cela permet un redémarrage automatique dès qu'il détecte qu'un fichier JS a changé.

$ ./server.sh

Installation d'une version qui a des nouveaux packages, cold restart :

  • Stopper le bot :
    # pm2 stop LSD-bot
  • Se connecter avec l'utilisateur deploy puis aller dans le directory :
    # su deploy
    $ cd /var/www/lsd/bot
  • Mettre à jour :
    $ git checkout package-lock.json
    $ git pull
    $ npm install
    $ exit
  • Lancer le bot :
    # pm2 start LSD-bot
    # pm2 ps

Notes

Si lors de l'exécution d'un Promise en utilisant await le code sort brusquement de la fonction, c'est signe qu'il y a une erreur d'exécution dans le traitement de l'appel await. Mettre un try/catch pour enquêter :

try {
  const bla = away monPromise(toto, titi);
}
catch(e) {
  console.error(e);
}

En effet il est possible que l'exception ne soit pas correctement interceptée par l'appelant et vous la ratiez.

La méthode invite() est un bon cocktail d'appels async à DiscordJS et à SQL.

About

Le Bot des Scorpions du Désert

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •