Aller au contenu principal

Notifications des notes de version Nightbreak

MagmaCore intègre une boîte de réception partagée pour les notes de version. Tout plugin qui utilise son système de mise à jour Nightbreak en dispose et s'en sert pour signaler en jeu aux administrateurs du serveur que le plugin, ou l'un de ses paquets de contenu installés, possède des notes de version qu'ils n'ont pas encore lues.

Comme cette boîte de réception vit dans MagmaCore, elle se comporte partout de la même façon. Seuls le nom de la commande et le plugin concerné changent.

La commande​

Chaque plugin enregistre sa propre commande de changelog, construite à partir de sa commande racine suivie de changelog — et non à partir de son nom d'affichage : le libellé suit donc la commande racine utilisée par ce plugin :

PluginCommande
EliteMobs/emchangelog
BetterStructures/bschangelog
EternalTD/etdchangelog
WorldCannon/wcchangelog
FreeMinecraftModels/freeminecraftmodelschangelog
ResurrectionChest/resurrectionchestchangelog
BetterFood/betterfoodchangelog
ResourcePackManager/resourcepackmanagerchangelog
Extractioncraft/extractioncraftchangelog
MegaBlock Survivors/mbschangelog

Si ce libellé est déjà pris sur le serveur, le plugin enregistre à la place une alternative avec espace de noms, et journalise un avertissement si aucun libellé libre de conflit n'était disponible.

UtilisationCe que cela fait
/<root>changelogOuvre les notes de version non lues.
/<root>changelog dismissMarque comme lues les notes qui viennent de vous être présentées.
/<root>changelog disableArrête définitivement le rappel automatique pour vous. La commande elle-même continue de fonctionner.

La commande est réservée au jeu et aux administrateurs. Vous êtes considéré comme administrateur si vous êtes opérateur, ou si vous détenez la permission joker du plugin, sa permission admin, sa permission setup ou sa permission initialize.

L'avis à la connexion​

Lorsqu'un administrateur se connecte, le plugin patiente quelques secondes puis envoie un court avis dans le chat avec un bouton cliquable VIEW CHANGELOG s'il existe des notes non lues. Les administrateurs déjà en ligne sont eux aussi prévenus une fois lorsqu'une récupération en arrière-plan se termine et révèle du nouveau.

Le même avis n'est pas répété tant que l'ensemble des versions non lues n'a pas changé : une session normale reçoit donc un seul rappel plutôt qu'un flot continu. Les administrateurs ayant exécuté disable ne sont jamais prévenus.

Affichage des notes​

Sur Minecraft 1.21.6 et versions ultérieures, les notes s'ouvrent dans une fenêtre de dialogue avec les boutons Dismiss These Updates et Never Show Changelogs. Sur les serveurs plus anciens, le même contenu est affiché dans le chat avec les instructions de commande équivalentes.

Un affichage présente au maximum 20 versions, de la plus récente à la plus ancienne, en mélangeant les notes du plugin lui-même et de chaque paquet de contenu suivi. Un compteur indique le nombre de versions omises. Marquer une page complète comme lue laisse les notes plus anciennes en attente, et le message suivant propose un bouton VIEW NEXT.

Ce qui est suivi​

  • Les versions du plugin lui-même, tirées de son changelog public Nightbreak.
  • Chaque paquet de contenu installé possédant un slug Nightbreak, tiré du changelog public de ce paquet.

Lors de la première utilisation, le plugin enregistre sa version actuelle comme point de départ du suivi et n'affiche que cette version. Ensuite, il affiche les versions comprises entre ce point et la version installée. Si l'historique renvoyé par Nightbreak ne contient plus la version de départ, le suivi de ce composant se limite aux 20 dernières versions jusqu'à celle qui est installée.

Les notes proviennent de Nightbreak et sont affichées comme du texte littéral ; le dialogue colore les balises standard de changement. Le corps de chaque note est limité à 6 000 caractères. Si le service est injoignable, le plugin réessaie en arrière-plan, d'abord après environ 15 minutes, puis avec des délais croissants jusqu'à environ quatre heures. Il affiche entre-temps les notes déjà en cache.

Stockage de l'état de lecture​

Chaque plugin stocke son propre état dans :

plugins/<PluginName>/nightbreak-changelogs.yml

<PluginName> est le nom interne du plugin, qui n'est pas toujours son nom sur le wiki : le dossier de WorldCannon est plugins/CannonRTP.

Ce fichier contient le plancher de suivi des versions, un cache des notes de version récupérées, ainsi que l'état de lecture et de désinscription par administrateur, indexé par UUID. Il ne contient aucun token de compte ni aucune donnée personnelle au-delà des UUID des joueurs.

Supprimer le fichier réinitialise le suivi : le plugin traite la version actuelle comme un nouveau plancher, et chaque administrateur repart d'un état de lecture vierge.

Désactivation​

Il n'existe pas d'interrupteur à l'échelle du serveur. Les rappels se désactivent par administrateur, avec :

/<root>changelog disable

Cela marque comme lu tout ce qui est disponible à cet instant et enregistre l'indicateur de désinscription pour ce joueur dans le fichier d'état du plugin. La commande reste ensuite utilisable s'il souhaite consulter les notes manuellement — seul l'avis automatique s'arrête.