Aller au contenu principal

Journal des modifications

Notes de version des extensions et plugins BTC Studio.

Chaque entrée indique l'extension, sa version, la date de publication et le détail des changements. Les entrées sont ajoutées ici au fil des publications.

Prochainement

Ces extensions sont terminées et attendent leur publication. Elles sont listées ici pour que vous sachiez ce qui arrive — aucune release n'a encore été publiée, et les numéros de version ci-dessous sont ceux que porteront ces releases.

Corpse Extension v0.1 — première release

  • Les cadavres sont rendus une fois par spectateur, comme les affichages d'entité du moteur, si bien que tout le monde autour les voit ; l'animation du modèle et les plaques de nom tournent sur les backends BetterModel, BTC Mob NPC et MythicMobs NPC.
  • Fonctionne sur Folia : toute la planification passe par un ordonnanceur compatible Folia, et les drops d'objets, les orbes d'expérience et les particules s'exécutent sur la région propriétaire du cadavre.
  • L'inventaire porté par un cadavre survit à un redémarrage, un crash ou un rechargement. Les cadavres sont stockés dans MySQL quand il est disponible, sinon dans le dossier du plugin, et restaurés au démarrage.
  • onlyOwnerCanLoot est réellement appliqué, et le pillage est rattaché à l'identifiant d'entité du cadavre plutôt qu'à n'importe quel clic droit dans un rayon de quatre blocs.
  • Une définition de cadavre est choisie à chaque mort selon le monde et la priorité, et sa durée de vie est résolue une seule fois, sur ce cadavre.
  • Les événements on_corpse_spawn, on_corpse_loot et on_corpse_expire passent par le pipeline de déclencheurs du moteur et publient le propriétaire, le butin et la position du cadavre comme contexte.
  • displayName, showDisplayName, dropOnInteract, renderArmor, playDeathAnimation et deathAnimationName sont tous honorés, et la plupart des réglages sont des valeurs dynamiques, donc pilotables par des placeholders et des facts.
  • Un contour lumineux rendu côté client, de couleur configurable, et des sons de cadavre envoyés par joueur à proximité au lieu d'être diffusés à tout le monde.
  • Les facts has_corpse et corpse_count, l'audience corpse_owner_audience, corpse_waypoint qui indique la distance et la direction vers son propre cadavre, corpse_recovery_objective, et corpse_admin_command avec les sous-commandes list et clear.
  • Une fenêtre de protection du butin, au terme de laquelle le cadavre s'ouvre à tout le monde.

Custom Biome Extension v0.5

  • Les biomes personnalisés existent immédiatement. Une définition est enregistrée dans le registre vivant dès sa sauvegarde, au lieu d'attendre un redémarrage du serveur. Le datapack généré devient la couche de persistance plutôt que le seul chemin possible.
  • Corrigé : le datapack généré était ignoré par le serveur, son format de pack étant figé sur une ancienne valeur et le fichier écrit dans un dossier que le serveur ne lit jamais.
  • Corrigé : baseBiome n'avait aucun effet en dehors de plains. Les biomes sont désormais construits à partir du biome de base détenu par le serveur et encodés avec son propre codec, si bien que les apparitions de créatures, les features et les carvers sont hérités au lieu d'être perdus.
  • Corrigé : les changements de biome trouaient le monde. Le rafraîchissement envoyait des paquets de déchargement de chunk, que le serveur ne faisait jamais suivre d'un renvoi. Les clients reçoivent maintenant une mise à jour de biome construite à partir des données réelles du chunk.
  • Corrigé : leave_biome_event ne se déclenchait jamais. Les écouteurs d'entrée et de sortie écrasaient mutuellement leur état, si bien que le résultat dépendait de l'ordre d'enregistrement.
  • Corrigé : la peinture écrivait chaque bloc d'une colonne au lieu d'un par cellule 4x4x4, et le faisait depuis le thread appelant. Les écritures sont désormais planifiées sur la région propriétaire de chaque chunk.
  • Un biome que le serveur refuserait de sérialiser est maintenant rejeté à l'enregistrement, en nommant la valeur fautive. Auparavant il était accepté puis cassait toutes les connexions.
  • Superpositions de biome par joueur (player_biome_overlay_action) : montrer un biome différent à un seul joueur, sans toucher au monde ni affecter les autres.
  • Peinture de région (paint_biome_region_action) avec instantanés, et restore_biome_action pour remettre une région en l'état.
  • biome_transition_cinematic : faire évoluer le biome perçu par un joueur au fil d'une cinématique.
  • custom_biome_preset : partager couleurs et attributs visuels entre biomes, surchargeables par définition.
  • explore_biome_objective et biome_discovery_fact : des quêtes que l'on termine en visitant des biomes.
  • Chaque entrée de lecture gagne une option source, qui choisit entre ce que le joueur voit et ce que le monde contient.
  • Retrait de /tw biome setcolor, qui créait des biomes jetables jamais persistés, et du mode de fact HASH, dont la valeur n'était pas stable d'un redémarrage à l'autre.
  • Le jar de l'extension passe de 2,6 Mo à 230 Ko : il n'embarque plus les bibliothèques que le serveur fournit déjà.

Enchantment Creator Extension v0.8

  • levelMode sur une mécanique compare runOnLevel comme niveau exact, minimum (AT_LEAST) ou maximum (AT_MOST). Auparavant seule l'égalité stricte était possible.
  • eventPhase exécute les actions d'une mécanique pendant l'événement Bukkit en cours, si bien que l'annulation de l'événement ou la modification des dégâts prend réellement effet. À passer à false pour les interactions Typewriter mises en file.
  • clientSideEffects devient conscient du client, avec une action client_particle_effect : l'artefact BTC custom utilise le rendu basé sur PacketEvents quand il est disponible, l'artefact public Paper un repli Bukkit ciblé sur le joueur.
  • Les clés de registre dérivent désormais de id. L'ancien name est conservé comme alias historique au chargement des pages et des objets existants, donc rien n'est à ressaisir.
  • L'artefact public n'a délibérément aucune dépendance à BTC-CORE ni à BTC Velocity : il tourne sur Paper 1.21.x en Java 21, compilé depuis un JDK 25 en bytecode Java 21.

Numerical Storage Extension v0.9

  • transactionMode sur la configuration de transaction : INTERNAL conserve le chemin PlaceholderAPI + commandes console, VAULT passe directement par l'API Vault Economy et ignore amountPlaceholder ainsi que les champs de commande.
  • addCommand et removeCommand étaient documentés à l'envers. addCommand complète un dépôt vers le stockage et est vérifié avant la mutation persistante ; removeCommand complète un retrait.
  • La persistance est maintenant asynchrone, avec des verrous de mutation par artefact et un cache de courte durée : deux dépôts simultanés ne peuvent plus se marcher dessus.
  • Les fichiers de stockage passent au schéma JSON version 2, sous un chemin d'artefact technique. Un fichier ancien basé sur l'artifactId sémantique est sauvegardé dans backups/numericalstorage/ puis migré au premier accès — sauvegardez le dossier assets/ de Typewriter avant de mettre à jour.
  • artifactId est un identifiant technique généré : laissez-le vide, Typewriter le remplit.
  • Les placeholders prennent un argument de définition explicite (%typewriter_ns_balance_bank%), ce qui supprime l'ancienne ambiguïté de découpage sur les underscores quand un identifiant de définition en contient lui-même.
  • Clés sensibles au profil, en option, quand l'intégration Profiles est installée.

2026-08-07

QuestCodex Extension v2.8

  • De vrais succès Minecraft. La nouvelle entrée advancement_definition écrit de véritables succès dans un datapack que l'extension possède : ils apparaissent dans l'écran des succès vanilla, avec leur propre onglet, leur arbre, leurs cadres et leurs notifications. parent référence une autre définition, donc l'arbre se dessine dans l'éditeur nodal.
  • grant_advancement accorde un succès ou le retire, et remonte la chaîne des parents pour qu'un enfant ne soit jamais obtenu sous un parent non obtenu.
  • autoGrant fait obtenir un succès dès le premier tick du joueur. Sur une racine, c'est ce qui donne une existence à son onglet avant que quoi que ce soit ne soit obtenu.
  • Ordre des quêtes corrigé : une quête imbriquée lit son ordre dans sa propre sous-catégorie, les quêtes sans ordre explicite ne s'agglutinent plus, et ajouter une quête n'efface plus l'ordre qu'elle avait déjà.
  • Les marqueurs de quêtes sont paginés, le mode de tri est propre à chaque joueur, et le suivi multiple survit à une reconnexion dans l'ordre choisi.

Release v2.8

OmniGUI Extension v0.11

  • Infobulles d'objets, avec une option hideVanillaItemStats sur l'entrée de configuration GUI.
  • Une mise en page paginée peut porter un indicateur de page, via le nouveau rôle INDICATOR.
  • Les menus sont validés au démarrage du serveur : un slot hors bornes, un modèle manquant ou un type de bouton inconnu est nommé dans la console avant qu'un joueur n'ouvre le menu.
  • <shift:N> fonctionne sans CraftEngine, grâce à la police Magic Digit intégrée.
  • count et repeatY sont documentés comme des compteurs de répétition de slots, et non comme une taille de pile.

Release v0.11

Shop Extension v1.3

  • Une boutique ne peut plus faire passer un joueur sous zéro. Trois chemins indépendants le permettaient.
  • Un solde illisible n'est plus interprété comme zéro, et les soldes formatés tels que 12.5k sont correctement lus.

Release v1.3

2026-08-03

QuestCodex Extension v2.7

  • Ajout des modes d'affichage des waypoints : WORLD_DIRECTIONAL projette les marqueurs sur une sphère autour des yeux du joueur, dans la direction réelle de la destination, TARGET_ANCHORED les place sur la cible, et ADAPTIVE fait la transition entre les deux. HUD_LOCKED reste le mode par défaut : les pages existantes ne changent pas.
  • Ajout d'une taille apparente constante et d'un désencombrement angulaire, pour que plusieurs marqueurs restent lisibles quand leurs destinations sont alignées.
  • Ajout du rendu multi-cibles dans une seule entrée waypoint, avec les nouvelles sélections d'objectifs suivis ALL et ONE_PER_QUEST, et un plafond maxTargets.
  • Correction du multi-tracking ignoré par les waypoints : les objectifs des quêtes suivies secondaires n'étaient jamais résolus, donc seule la quête principale produisait un marqueur.
  • Ajout de quest_codex_locator_bar, qui affiche les mêmes cibles résolues sous forme de points de barre de localisation vanilla sur Minecraft 1.21.6+, sans faire apparaître la moindre entité.

Version v2.7

2026-08-02

QuestCodex Extension v2.6

  • Ajout de la reprise persistante des dialogues et cinématiques Typewriter interrompus, y compris la dernière image de cinématique. La reprise conserve désormais l'instantané capturé quand Typewriter émet ses événements de fermeture après la déconnexion d'un joueur.
  • Ajout du suivi persistant de plusieurs quêtes, avec un menu des quêtes suivies, des placeholders dédiés et un exemple public de waypoint à deux quêtes.
  • Ajout des waypoints client-side en texte seul, avec texte d'icône configurable, blocs display centrés, rotation de beacon centrée, alignement de cible au niveau, interpolation fluide, placement à proximité de la cible et cône de visibilité horizontal configurable.
  • Suppression des anciennes couches de waypoint (item display et flèche directionnelle) avant leur premier déploiement public.

Version v2.6

OmniGUI Extension v0.10

  • Ajout des moteurs de disposition Flex et Composite, pour un placement de slots responsive et des calques de menu composés.
  • Ajout de vues adressables réutilisables, avec pools de disposition hérités, vues par défaut, fil d'Ariane, tags de vue et intégration facultative à l'historique.
  • Ajout de la migration de schéma tenant compte des vues et de l'intégration QuestCodex, plus les métadonnées de publication Maven.
  • Correction des changements de vue, qui reconstruisent désormais les menus sans clignotement de fermeture/réouverture ; la fermeture d'inventaire est devenue compatible Folia.

Version v0.10

Shop Extension v1.2

  • Reconstruction et validation de l'extension Shop publique face à OmniGUI v0.10.
  • Conservation des dispositions de boutique dynamiques existantes, de l'historique de navigation, de la gestion des remplisseurs, des règles de stock et de limite, et des handlers de boutons personnalisés.
  • Aucune migration nécessaire depuis Shop Extension v1.1.

Version v1.2

MythicMobsNPC Extension v0.4.6

  • Correction d'un changement d'échelle ignoré sur un modèle livré sans aucune animation, de la même manière que dans l'extension BetterModel.
  • Les variantes de mobs vanilla (chat, renard, loup, villageois et consorts) sont désormais signalées une fois en console au lieu d'être ignorées en silence : elles appartiennent à la configuration MythicMobs, qui possède l'identité du mob et les écraserait à chaque réapparition.
  • Correction d'une entrée de données en échec qui annulait toutes les autres entrées envoyées dans le même lot, ce qui pouvait laisser un NPC sans aucune de ses données configurées.
  • L'effet de brillance et l'équipement sont maintenant pilotés sur le modèle, et plus seulement sur le mob. Le corps du mob étant masqué derrière le modèle, les appliquer au mob seul ne rendait rien visible.
  • L'équipement signale désormais en console quand le modèle n'a aucun os porteur d'item, au lieu de ne rien faire en silence.
  • Le feu est réaffirmé chaque seconde afin de ne plus s'éteindre tout seul, et il indique quand BetterModel masque le corps sur lequel les flammes sont dessinées.
  • Correction des saccades de la plaque de nom quand le NPC marche ou suit un réseau routier : le texte affiché interpole désormais entre les mises à jour au lieu de se téléporter par à-coups.

BetterModel Extension v1.3

  • Correction de l'échelle du modèle ignorée sur les modèles livrés sans aucune animation. BetterModel ne recalcule la transformation d'un modèle que pendant qu'une animation tourne, si bien qu'un changement d'échelle appliqué à l'exécution n'atteignait jamais un modèle statique. L'extension force désormais le recalcul elle-même.
  • Le même correctif s'applique au décalage du modèle, qui passait par le même chemin de code.
  • Les entrées de données d'entité atteignent maintenant réellement le modèle au lieu d'être abandonnées. Prises en charge : effet de brillance, couleur d'effet de potion (rendue en teinte d'item), luminosité, contrainte de panneau, durée d'interpolation, translation, échelle 3D, taille de boîte, équipement et feu.
  • Ajout de bettermodel_bone_appearance, une version par os des réglages de brillance, teinte, scintillement et luminosité, avec le même système de critères que bettermodel_bone_visibility.
  • L'équipement est associé aux os d'item de main et de tête de BetterModel. Les emplacements d'armure sont signalés une fois en console plutôt qu'ignorés en silence, car le torse et les jambes d'un modèle portent sa propre géométrie.
  • Une échelle 3D non uniforme émet désormais un avertissement au lieu d'utiliser silencieusement un seul axe : BetterModel ne gère qu'une échelle uniforme.
  • Toute entrée de données sans signification sur un modèle 3D (postures, variantes de mobs, état de reproduction…) est désormais signalée une fois en console au lieu d'être écartée en silence.
  • Brillance, teinte, luminosité, panneau, translation et équipement survivent maintenant à un rechargement de pack de ressources ou à une réapparition, au lieu de revenir à l'aspect par défaut du modèle.
  • L'équipement signale en console quand le modèle n'a aucun os taggé ri, li ou ph, au lieu de ne rien faire en silence — c'est la raison habituelle pour laquelle un item n'apparaît pas.
  • Le feu est désormais dessiné sur l'entité d'interaction du NPC plutôt que sur les os du modèle : le client met la flamme à l'échelle de la boîte englobante de l'entité, et une entité d'affichage n'en a pas, si bien que les flammes étaient rendues à taille nulle.

Nexo Extension v1.0

  • Ajout de faits pour savoir ce que le joueur tient, transporte dans son inventaire, regarde ou foule.
  • Ajout de variables donnant l'ID et les propriétés de l'item, du bloc et du meuble visés.
  • Ajout d'une action pour donner et une pour retirer un item, toutes deux basées sur l'ID d'item Nexo.
  • Ajout des événements de ramassage, de lâcher et de consommation d'item.
  • Ajout des événements d'interaction et de dégâts pour les blocs et meubles personnalisés, ainsi qu'un événement de butin.
  • Les événements transmettent maintenant leurs données (ID de bloc, position, item en main) à ce qui suit, si bien qu'un dialogue ou une action peut les utiliser directement.

CraftEngine Extension v1.0

  • Les objectifs de quête fonctionnent. Ils peuvent être attachés à une quête, ils sauvegardent leur progression et peuvent déclencher une séquence à leur achèvement.
  • Ajout de faits pour les temps de recharge, pour les items tenus et transportés, et pour le bloc ou le meuble visé par le joueur.
  • Ajout de variables donnant les ID, les propriétés d'item et la liste du contenu chargé.
  • Ajout d'une action pour donner et une pour retirer un item, toutes deux basées sur l'ID d'item CraftEngine.
  • Ajout des événements de ramassage, de lâcher et de consommation d'item.
  • Ajout d'événements pour les tentatives de pose et pour les coups portés au mobilier.
  • Les événements transmettent maintenant leurs données à ce qui suit.

ItemsAdder Extension v1.0

  • Les événements de bloc et de mobilier lisent désormais ItemsAdder directement au lieu de les déduire des événements vanilla, ce qui les rend fiables et supprime un court délai qui pouvait manquer ou répéter un déclenchement.
  • Ajout de faits pour les items tenus et transportés, les utilisations restantes, la durabilité personnalisée, la visibilité du HUD et la croissance des cultures.
  • Ajout de variables donnant les ID, les propriétés d'item et les images de police.
  • Ajout d'une action pour donner et une pour retirer un item, toutes deux basées sur l'ID d'item ItemsAdder.
  • Ajout des événements de ramassage, de lâcher et de consommation d'item.
  • Ajout d'événements d'interaction, d'un événement de pré-pose pour le mobilier et d'un événement de mort d'entité personnalisée.
  • Les événements transmettent maintenant leurs données à ce qui suit.
  • Correction des objectifs de quête, de la même manière que dans l'extension Nexo.

2026-07-26

QuestCodex Extension v2.5

  • Ajout du suivi persistant de plusieurs quêtes via l'entrée quest_codex_tracking_artifact.
  • Ajout du mode de menu de catégorie @tracked et des marqueurs dynamiques TRACKED_QUEST_SLOT.
  • Ajout de /tw codex tracked et de la commande GUI interne codex:tracked.
  • Ajout de placeholders PlaceholderAPI pour le nombre de quêtes suivies, la limite, la quête principale, les quêtes suivies indexées, les statuts, les objectifs et les priorités.
  • Documentation de la structure du lot de pages publiques : manifeste principal, artefact de suivi statique, définitions de quêtes et réglages GUI.

OmniGUI Extension v0.9

  • Ajout de la migration automatique du schéma des pages publiques pour le stockage en ligne et les anciens champs de pagination.
  • Documentation du schéma compact storagePool / storageId et navigationButtons, utilisé pour réduire les blocages de publication dans l'éditeur Typewriter.
  • Clarification du motif recommandé de menu référencé pour les grands menus QuestCodex.