Passer au contenu principal
ranking() déclare un classement, depuis n’importe quel fichier de src/, et le nom de son export est le nom du classement. Il prend un objet, RankingConfig, ou rien.
src/levels/best.ts
Comment utiliser un classement, et où sont ses scores, est dans le guide. Cette page liste ce qui existe.

ranking()

Déclare un classement : un score par membre, gardé dans l’ordre d’un redémarrage à l’autre. Exportez le résultat depuis n’importe quel fichier de src/ : le nom de l’export est le nom du classement. Par serveur sauf si scope: 'global' est donné, le score le plus haut en premier sauf si order: 'lowest' l’est.

RankingConfig

Ce qu’un fichier donne à ranking().
StoreScope
'guild' (le défaut) : un classement par serveur, et une fonction qui tourne dans un serveur lit et écrit le classement de ce serveur, sans rien dire. 'global' : un seul classement pour tout le bot.
StoreStorage
Où les scores sont gardés : 'file' (le défaut), un fichier dans le dossier data/ du projet, ou 'redis', le Redis de REDIS_URL dans .env, où un classement est un sorted set.
RankingOrder
Quel bout vient en premier : 'highest' (le défaut), le score le plus haut en premier, ou 'lowest', le plus bas en premier (un temps, un nombre d’essais).

RankingOrder

Quel bout d’un classement vient en premier. StoreScope et StoreStorage sont ceux de store().

Ranking

Ce que renvoie ranking() : une déclaration que le framework trouve dans les exports d’un fichier. C’est un ScopedRanking pour le serveur où le code tourne, plus :

in()

Le même classement, pour un serveur : ce qu’une tâche, ou une fonction qui tourne hors d’un serveur, utilise pour lire et écrire le classement de ce serveur.

ScopedRanking

Un classement, pour un serveur ou pour tout le bot.

add()

Ajoute points (négatifs pour retirer) au score de id, en partant de 0, d’un trait : rien de ce qui est ajouté entre-temps n’est perdu, même par un autre processus. Renvoie le nouveau score.

set()

Fixe le score de id, quel qu’il soit.

score()

Le score de id, ou undefined quand il n’en a pas.

rankOf()

La place de id, à partir de 1, ou undefined quand il n’a pas de score.

top()

Les count premiers membres (10 par défaut), après en avoir sauté skip (0 par défaut) : top(10, 10) est la deuxième page.

remove()

Oublie le score de id. true quand il en avait un.

size()

Combien de membres ont un score.

clear()

Oublie chaque score. Renvoie combien il y en avait.

RankingEntry

Un membre d’un classement, comme top() les liste.
string
requis
L’id donné à add() ou à set() : un membre, ou autre chose.
number
requis
Le score.
number
requis
Sa place, à partir de 1. Les scores égaux sont rangés par id.

Où vivent les scores

Avec storage: 'file', une entrée par membre dans data/<nom>.json, écrite comme les entrées d’un store ([[id du serveur, id du membre], score, null]). top(), rankOf() et size() remettent chaque score du serveur dans l’ordre à chaque appel ; add() est une mise à jour de l’entrée, d’un trait. Avec storage: 'redis', un sorted set par serveur : <nom>:<id du serveur>, <nom> pour un classement global, dev: devant dans chapterjs dev. add() est ZINCRBY, set() ZADD, score() ZSCORE, rankOf() ZREVRANK (ZRANK pour order: 'lowest'), top() ZREVRANGE … WITHSCORES (ZRANGE), remove() ZREM, size() ZCARD, clear() DEL. Les scores égaux sont rangés par les octets de leur id, comme le fait Redis : à l’envers pour le plus haut en premier. Les deux stockages donnent le même ordre.

Erreurs