2.5 KiB
beta.040 — contrat de reprise du catalogue volumineux
Le test de tous les advancements produit un catalogue de recettes d'environ
85 Ko. Jusqu'à beta.039, l'attachement sanctuary:recipe_knowledge était une
unique chaîne NBT, limitée à 65 535 octets UTF modifié. La sauvegarde native
remplaçait une chaîne trop longue par une chaîne vide après journalisation de
l'erreur. L'ouverture suivante pouvait donc perdre ce catalogue.
Contrat de migration
- L'identifiant d'attachement reste
sanctuary:recipe_knowledge, le contenu JSON reste en schéma 1, les paquets réseau restent identiques. - Les anciennes chaînes NBT sont toujours lues. Une chaîne qui tient dans la limite native reste écrite sous la même forme, sans migration anticipée.
- Au-delà de cette limite, le même texte est écrit en liste NBT de chaînes de 16 000 caractères au maximum, puis concaténé exactement à la lecture. Chaque élément reste sous la limite UTF même avec des caractères non ASCII.
- Le catalogue conserve sa limite existante d'un million de caractères. Les listes mal formées, trop longues ou trop nombreuses sont refusées.
- La conversion se produit seulement à la prochaine sauvegarde normale d'un joueur chargé ; aucun fichier de joueur hors ligne n'est parcouru ou réécrit. Aucun monde personnel n'est ouvert par l'outil de développement.
- Le retour vers une version antérieure ne sait pas lire une liste volumineuse. Conserver une sauvegarde antérieure à une rétrogradation. Les catalogues qui restent sous 65 535 octets conservent leur format historique.
- Un catalogue déjà remplacé par une chaîne vide par une ancienne sauvegarde ne peut pas être restauré à partir de cette chaîne. Le correctif prévient les nouvelles pertes ; il n'invente pas les découvertes disparues.
La copie à la mort et la conservation au prestige restent celles de l'attachement existant. Aucun coût, déblocage ou filtre de recettes n'est changé.
Vérification
Test serveur réussi : écriture et relecture NBT comprimé de petits catalogues historiques, d'un catalogue complet supérieur à 64 Ko et d'une chaîne Unicode ; refus des fragments invalides. Le parcours client ferme puis rouvre un monde de test ayant tous les advancements et compare son catalogue entier, en plus du ciel.
Les contrôles passent, y compris la comparaison du catalogue entier après
fermeture et réouverture du monde de test. Le journal client final ne contient
plus l’erreur NBT. Reçu : build/operator040-artifact.json.