Aller au contenu principal

Notifications de changelog Nightbreak

MagmaCore embarque une boîte de réception de changelogs partagée. Tout plugin qui utilise l'updater Nightbreak de MagmaCore 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

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.

Comment les notes sont affichées

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 entrelaçant le plugin lui-même et chaque paquet de contenu suivi. Ce qui dépasse est signalé sous forme d'un décompte des versions omises. Fermer une page complète laisse les notes plus anciennes en attente, et le message de suivi 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.

La première fois qu'un plugin s'exécute avec la boîte de réception, il enregistre la version en cours comme plancher de suivi et n'affiche que cette version actuelle. Ensuite, il affiche les versions comprises entre le plancher enregistré et la version que vous exécutez désormais : passer plusieurs versions d'un coup produit donc un seul récapitulatif couvrant tout le saut, plutôt que rien du tout.

Le corps des notes de version provient de Nightbreak et est toujours rendu en texte brut. Si le service de changelog est injoignable, le plugin réessaie en arrière-plan — en commençant environ 15 minutes plus tard et en espaçant les tentatives jusqu'à environ quatre heures — et affiche entre-temps ce qu'il a déjà en cache.

Où vit 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.

Comment le désactiver

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.