Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Top Vote

Bot Discord lance par cron pour publier une fois par mois le top 10 des votes d'un serveur Minecraft.

Installation

npm install
cp .env.example .env

Renseigne ensuite .env avec le token Discord, l'ID du channel et les acces SQL.

Configuration Discord

Le bot doit avoir acces au serveur et au channel cible, avec la permission d'envoyer des messages.

Variables obligatoires :

  • DISCORD_TOKEN : token du bot Discord
  • DISCORD_CHANNEL_ID : ID du channel ou envoyer le message
  • DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME : connexion MySQL/MariaDB
  • VOTE_MONTH_PATTERN : periode optionnelle au format 2024-04-%; par defaut, le mois calendaire precedent

La requete top retourne :

  • User : nom du joueur
  • Server : serveur majoritaire hors Vanilla, ou NoOtherServer
  • Count : total des votes du joueur tous serveurs confondus

Par defaut, les requetes dans src/queries.js utilisent votes.created_at LIKE ?. La requete top regroupe les votes par joueur tous serveurs confondus, exclut [Vanilla] uniquement pour choisir le serveur affiche, utilise NoOtherServer si le joueur n'a vote que sur Vanilla, puis limite le resultat aux 10 meilleurs joueurs. La requete total compte tous les votes du mois selectionne.

Recompenses

Les recompenses sont configurees dans config/rewards.json.

Le fichier contient les commandes en dur par serveur et par rang. La seule variable remplacee au moment de l'envoi est {player}.

Serveurs reconnus :

  • [Survie]
  • [Créatif]
  • [Skyblock]

Le message Discord contient une seconde section avec les commandes Minecraft a executer pour les joueurs eligibles, regroupees par serveur. Chaque commande est affichee avec la place et le nom du joueur, puis la commande sur la ligne suivante. Les joueurs avec NoOtherServer sont listes dans un avertissement Joueurs ayant voté uniqument en Vanilla.

La premiere section affiche le total mensuel et le classement general au format :

:trophy: **Top votes du mois de Juillet**
Merci à tous pour vos votes qui s'élèvent à un total de 1531 pour ce mois de juillet !

1er : Joueur avec 532 votes
2ème : Joueur avec 314 votes

Lancement manuel

npm start

Le script se connecte a la base, envoie le message Discord, ferme le client Discord puis termine le process.

Preview du message

Pour afficher un message complet avec un retour BDD simule, sans connexion Discord ni SQL :

npm run preview:message

Pour generer le vrai message depuis la BDD, sans envoi Discord :

npm run dryrun

Exemple cron

Tous les premiers jours du mois a 10h :

0 10 1 * * cd /chemin/vers/top-vote && /usr/bin/npm start >> cron.log 2>&1

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages