ranking(), dans n’importe quel fichier de src/, et s’exporte. Il garde un score par membre, toujours dans l’ordre, d’un redémarrage à l’autre, et par serveur sauf si vous dites autrement.
src/levels/xp.ts
xp), et chaque message écrit dans un serveur donne 10 points à son auteur dans le classement de ce serveur. add() part de 0, et deux messages au même instant ne perdent jamais un point, même sur plusieurs processus.
Pour montrer qui est premier :
src/levels/top.ts
top(10) donne les dix premiers, top(10, 10) les dix suivants. Chaque entrée a son id, son score et son rank, à partir de 1.
Tout ce qu’un classement déclare et fait est dans la référence.
Ce que fait un classement
Un id est un texte :
member.id, ou tout ce que vous classez d’autre (une équipe, un salon). Un score est un nombre, avec des décimales si vous voulez.
Le plus bas d’abord
Pour un temps, un nombre d’essais, un score de golf :order: 'lowest' met le score le plus bas en premier.
src/race/fastest.ts
Par serveur, ou pour tout le bot
Un classement est par serveur par défaut, comme un store : dans une fonction qui tourne dans un serveur,xp.add() et xp.top() travaillent sur le classement de ce serveur. Hors d’un serveur (une tâche, un message privé), dites lequel avec xp.in(guild). Pour un seul classement sur tous les serveurs, déclarez-le avec scope: 'global'.
Où sont les scores
Comme un store, un classement garde ses scores dansdata/<nom>.json par défaut, une entrée par membre, et avec storage: 'redis' dans le Redis de REDIS_URL (voir Stockage), où c’est un sorted set : xp:<id du serveur>, dev:xp:<id du serveur> dans chapterjs dev.
Dans un fichier, top() et rankOf() remettent chaque score dans l’ordre à chaque appel : instantané pour des milliers de membres, plus lent pour des centaines de milliers. Redis garde lui-même les scores dans l’ordre, quel que soit leur nombre : pour un gros bot, utilisez storage: 'redis'.
Un classement et un store ne peuvent pas partager un nom : ils partageraient un fichier, ou une clé. Le second est signalé au chargement des fichiers, et mis de côté.
Référence de ranking()
Chaque champ d’un classement, et ce que chaque appel renvoie.
Stockage
Garder tout le reste, par serveur.