Passer au contenu principal
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 :
Nouveaux modèles
  • Modèles : minimal, présélectionné, est une présence et rien d’autre ; tickets, moderation, levels et giveaways sont des bots complets.
  • default, music, community et games disparaissent. Les projets déjà créés avec eux continuent de fonctionner.
  • Le tutoriel part de minimal.
Commandes de menu, attente, présence tournante
  • 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.
Corrections
  • chapterjs dev : un second default: true dans 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() sans await) n’arrête plus le bot : il est signalé avec sa ligne. chapterjs test ne s’arrête plus non plus.
  • Une réponse demandée sans await n’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 /ban ne 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, et join() dit que le vocal n’est pas simulé.
  • channelCreate, channelUpdate, channelDelete : guild n’est jamais null, et channel est 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 zero d’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, --processes au-delà des shards, le serveur de dev dans start.
Redis, classements, événements avec guild
À 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', avec REDIS_URL dans .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
  • chapterjs test : votre bot vérifié contre un Discord en mémoire, sans token.
  • Les scénarios : scenario() dans des fichiers *.test.ts, depuis chapterjs/test.
  • Chaque modèle a un script test et un scénario pour commencer.
Stockage et cinq modèles
  • Les stores : store() garde des données d’un redémarrage à l’autre, dans data/.
  • Cinq modèles : default, tickets, music, community, moderation.
  • Un nouveau projet a la version exacte de chapterjs de create chapterjs.
Un modèle par défaut plus léger
  • Le modèle par défaut n’a plus l’exemple de modération.
Avis de nouvelle version
  • chapterjs dev dit quand un chapterjs plus récent est sorti, avec la commande pour mettre à jour.
Vos fichiers, votre ordre
À 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 …File deviennent …Declaration (CommandFile → CommandDeclaration…).
Première version
  • Commandes, événements, composants, tâches, vocal, présence et messages traduits.
  • chapterjs dev, build et start, et create chapterjs.