chapterjs, create-chapterjs et create-chapter partagent un même numéro de version, selon le versionnage sémantique : seule une version majeure vous demande de changer vos fichiers, et son entrée dit quoi.
Seul chapterjs vit dans votre projet ; chapterjs dev vous prévient quand un plus récent est sorti. Pour le mettre à jour :
- Commandes de menu :
command({ type: 'message' | 'user', ... }), utilisées avec un clic droit. - Attendre une réponse :
waitForMessage(),collectMessages(),waitForClick(),waitForReaction(). - Présence : plusieurs activités tour à tour, des textes qui sont des fonctions.
- Un sixième modèle,
games.
chapterjs dev: un seconddefault: truedans un nouveau fichier ne retire plus de commandes de Discord.chapterjs dev: un nouveau fichier ne peut plus prendre le nom d’un store, d’une commande ou d’un composant qui tourne déjà.- Les événements et commandes exportés ensemble dans une liste tournent tous : seul le dernier tournait.
- Un appel refusé par Discord sans
await(member.ban()sansawait) n’arrête plus le bot : il est signalé avec sa ligne.chapterjs testne s’arrête plus non plus. - Une réponse demandée sans
awaitn’est plus signalée comme « finished without answering ». chapterjs dev: un enregistrement recharge une seule fois, même quand l’éditeur écrit puis renomme le fichier, et sous Linux les enregistrements suivants ne sont plus ratés.- Un message de plus de 5 rangées de boutons et de menus est refusé avant Discord, avec un message clair.
chapterjs test: chaque cas tourne sur un serveur neuf (un/banne casse plus les cas suivants), une commande différée n’échoue plus au bout de 5 s, un run bloqué ne bloque plus la suite, etjoin()dit que le vocal n’est pas simulé.channelCreate,channelUpdate,channelDelete:guildn’est jamaisnull, etchannelest celui d’un serveur.- Un fichier de store dans
data/avec une entrée abîmée est refusé avec son nom, au lieu de perdre cette entrée à la prochaine écriture. - La forme
zerod’un pluriel sert pour 0 dans toutes les langues : l’anglais l’ignorait. reply.opensForm()accepte un formulaire qui porte des données.chapterjs test: le serveur refuse, comme Discord, d’expulser, bannir ou renommer le propriétaire ou quelqu’un au-dessus du bot.- Des messages plus clairs : les permissions en mots (« Ban Members »), ce que veulent dire les refus de Discord, les erreurs de syntaxe, Redis qui refuse au démarrage,
--processesau-delà des shards, le serveur de dev dansstart.
À changer dans vos fichiers : chaque événement donne maintenant ce dont il parle, plus
guild. Voir Ce que donne chaque événement ; un fichier écrit à l’ancienne est souligné dans votre éditeur.- Stores dans Redis :
storage: 'redis', avecREDIS_URLdans.env. - Stores :
increment(),getMany(),setMany(),deleteAll();update()ne perd plus un changement fait au même moment. - Classements :
ranking(), un score par membre, toujours dans l’ordre.
chapterjs test: votre bot vérifié contre un Discord en mémoire, sans token.- Les scénarios :
scenario()dans des fichiers*.test.ts, depuischapterjs/test. - Chaque modèle a un script
testet un scénario pour commencer.
chapterjs devdit quand unchapterjsplus récent est sorti, avec la commande pour mettre à jour.
À changer dans vos fichiers : les commandes et les événements prennent un
name, les langues un locale ; les composants et les tâches sont nommés par leur export. Les fichiers peuvent être n’importe où dans src/. Voir Structure du projet.- Les types
…Filedeviennent…Declaration(CommandFile→CommandDeclaration…).