Custom Biome
Vue d'ensemble
Custom Biome vous permet de créer vos propres biomes depuis le panel web TypeWriter : couleurs de l'herbe, du feuillage, de l'eau, du ciel et du brouillard, paramètres des nuages et du soleil, température et précipitations. Un nouveau biome part d'un biome vanilla de base : les apparitions de mobs, les features et les autres propriétés sont donc héritées, et vous ne remplacez que ce que vous voulez changer.
Un biome peut être utilisé de deux façons. Vous pouvez le peindre dans le monde, sur un rayon de blocs, une sélection WorldEdit ou une région capturée, et remettre plus tard les anciens biomes à partir d'un instantané. Ou vous pouvez le montrer à un seul joueur ou à une audience, avec une surcouche par joueur : le monde reste intact et personne d'autre ne voit le changement. C'est ainsi qu'une forêt corrompue peut n'apparaître que pendant une quête.
Fonctionnalités
- Définitions de biomes — couleurs (herbe, feuillage, feuillage sec, eau, ciel, brouillard, brouillard de l'eau, nuages, lumière du ciel, lever/coucher du soleil), distances du brouillard et des nuages, paramètres du soleil, de la lune et des étoiles, température et précipitations.
- Préréglages — partagez une palette entre plusieurs biomes et ne remplacez que ce qui diffère.
- Enregistrement à chaud — les biomes sont injectés dans le registre du serveur lorsque c'est possible, et écrits dans un datapack généré pour survivre aux redémarrages.
- Peinture du monde — appliquez un biome autour d'un joueur ou sur une région, avec un instantané facultatif pour l'annuler.
- Surcouches par joueur — montrez un biome à un joueur ou à une audience, via une action, une audience ou une cinématique.
- Événements d'entrée et de sortie — déclenchez des entrées lorsqu'un joueur entre dans un biome ou en sort.
- Découverte — mémorisez quels biomes chaque joueur a visités, et utilisez-le dans des facts et des quêtes.
- Facts, variables et placeholders — lisez le biome actuel, ses propriétés et le nombre de découvertes.
- Commandes d'opérateur — listez les biomes, inspectez le biome sous un joueur, peignez, actualisez et capturez une région.
- Compatible Folia — les écritures sont planifiées sur la région qui possède chaque chunk.
Installation
- Installez PacketEvents. Les surcouches et les actualisations de chunks sont envoyées avec lui ; sans lui, les surcouches sont désactivées.
- Installez l'extension Quest de TypeWriter depuis l'onglet Extensions du panel web (l'objectif l'utilise).
- Facultatif : installez WorldEdit ou FastAsyncWorldEdit pour peindre la sélection faite en jeu.
- Facultatif : installez PlaceholderAPI pour utiliser les placeholders ci-dessous.
- Placez le JAR de Custom Biome dans
plugins/Typewriter/extensions/et redémarrez le serveur.
Les définitions de biomes sont écrites dans un datapack nommé typewriter_custom_biomes, dans le dossier datapacks du monde.
Les attributs visuels (distances du brouillard, hauteur des nuages, paramètres du soleil, de la lune et des étoiles) sont indiqués dans le code source comme destinés à Minecraft 1.21.11 et versions ultérieures. Sur les versions plus anciennes, seuls les couleurs et le climat s'appliquent.
Premiers pas
Créez une forêt violette et montrez-la aux joueurs à une étape de quête :
- Dans le panel web TypeWriter, ouvrez une page manifest et ajoutez une entrée Custom Biome Definition.
- Définissez
biomeId(minuscules, tirets bas, par exemplecorrupted_forest) et conserveznamespaceàtypewriter. DéfinissezbaseBiomesurminecraft:forest. - Renseignez en hexadécimal les couleurs que vous voulez changer, par exemple
grassColor#6a3d9aetfoliageColor#4b2a73. Les champs vides héritent du biome de base. - Publiez, puis exécutez
/tw biome listen jeu pour vérifier que le biome est actif. S'il apparaît comme en attente d'un redémarrage, redémarrez le serveur. - Sur une page manifest, ajoutez une Biome Overlay Audience, choisissez la définition dans
biome, et placez-la sous une audience qui correspond à votre étape de quête. Le joueur voit le biome tant qu'il est dans l'audience, et le vrai biome revient quand il la quitte (restoreOnExit). - Pour la limiter à une zone, définissez
cornerAetcornerB, ou placez-vous en jeu avec une sélection WorldEdit et exécutez/tw biome region <entry>pour renseigner les coins.
Pour modifier le monde lui-même, utilisez Apply Biome ou Paint Biome Region dans une séquence d'actions. Donnez un snapshotId à la peinture si vous voulez que Restore Biome puisse l'annuler.
Créez un Custom Biome Preset pour une famille de biomes partageant le même ciel et le même brouillard, et sélectionnez-le dans preset de chaque définition. Les valeurs définies sur la définition l'emportent sur le préréglage, et le préréglage l'emporte sur le biome de base.
Fonctionnement
La peinture écrit le biome dans les données du monde : elle affecte donc tous les joueurs et survit à un redémarrage. Une surcouche n'est envoyée qu'au client du joueur : rien n'est enregistré, et la retirer restitue le vrai biome. Lorsque plusieurs surcouches couvrent le même chunk, la dernière appliquée est affichée, et la retirer révèle la précédente.
Les facts, variables et placeholders lisent par défaut le biome que le joueur voit (PLAYER_VIEW, surcouches comprises). Définissez source sur REAL_WORLD sur les facts et variables pour lire ce que le monde contient réellement.
Configuration
Les données d'exécution sont stockées dans plugins/Typewriter/custombiome/ :
| Dossier | Contenu |
|---|---|
discovery/ | Un fichier JSON par joueur (<uuid>.json) listant les biomes qu'il a visités. |
snapshots/ | Biomes enregistrés par Paint Biome Region lorsque snapshotId est défini. |
Commandes
La commande racine est /tw biome, qui nécessite typewriter.biome. Chaque sous-commande nécessite aussi sa propre permission.
| Commande | Description |
|---|---|
/tw biome | Affiche la liste des commandes. |
/tw biome list | Liste les biomes personnalisés et indique si chacun est actif, en attente d'un redémarrage ou non enregistré. |
/tw biome info [player] | Affiche le biome dans lequel se trouve un joueur : nom, ID, personnalisé ou non, température, précipitations et biome de base. |
/tw biome apply <biome> [radius] | Peint un biome autour de vous ou d'un joueur ciblé, dans un rayon en blocs. |
/tw biome refresh [radius] | Renvoie les données de biome (rayon de 1 à 16 chunks) pour les chunks peints par cette extension près du joueur. |
/tw biome region <entry> | Copie votre sélection WorldEdit dans cornerA et cornerB d'une entrée de région, puis publiez la page. |
Textes modifiables
Tout ce que les commandes /tw biome affichent en jeu est un snippet TypeWriter : vous pouvez donc le reformuler, le traduire ou le recolorer sans rien recompiler. Ouvrez plugins/Typewriter/snippets.yml, trouvez la clé sous content.custombiome, changez la valeur et lancez /tw reload. L'extension enregistre tous ses snippets avec leur texte par défaut au démarrage : ils apparaissent donc dans le fichier après le premier démarrage.
Les textes sont en MiniMessage. Un {name} dans un texte est remplacé par la valeur indiquée dans le tableau ; un placeholder que vous omettez n'est tout simplement pas affiché, et un placeholder qui n'existe pas reste tel quel. Les placeholders PlaceholderAPI (%...%) sont aussi lus quand la commande est lancée par un joueur. Seul le préfixe de réponse Typewriter des réponses courtes (Typewriter ») vient du moteur et ne fait pas partie de ces snippets, et le journal de la console du serveur reste en anglais.
Snippet (sous content.custombiome.) | Par défaut | Placeholders |
|---|---|---|
command.list.empty | <yellow>No custom biomes registered.</yellow> | aucun |
command.list.header | <gradient:#00d4ff:#0099ff><b>Custom Biomes ({count})</b></gradient>, avec une ligne vide avant | {count} |
command.list.strategy | <dark_gray>Strategy: {strategy}</dark_gray>, avec une ligne vide après | {strategy} |
command.list.strategy_live | live registry injection (reflection) | aucun |
command.list.strategy_unsupported | unsupported ({reason}) | {reason} (technique, en anglais) |
command.list.icon_live, icon_waiting, icon_missing | • en vert, ⚠ en jaune, ✖ en rouge | aucun |
command.list.status_live, status_waiting, status_missing | textes au survol : Live in the registry, Written to the datapack — needs a restart, Not registered | aucun |
command.list.entry | une ligne par biome, avec texte au survol et clic pour copier | {icon}, {status}, {name}, {key}, {temperature}, {downfall} |
command.list.temperature, command.list.downfall | T:{value} et D:{value} en gris | {value} |
command.info.header | Biome Info for {player} | {player} |
command.info.name, id, temperature, downfall, base_biome | Name:, ID:, Temperature:, Downfall:, Base Biome:, suivi de la valeur | {value} |
command.info.custom_yes, custom_no | Custom: Yes et Custom: No | aucun |
command.help.title | Custom Biome Commands | aucun |
command.help.list, info, apply, refresh, region | une ligne d'aide par commande | aucun |
command.region.no_selection | No WorldEdit selection (or WorldEdit is not installed). | aucun |
command.region.page_not_found | Could not find the page holding '{entry}'. | {entry} |
command.region.write_failed | Could not write the region: {failures} | {failures} (technique, en anglais) |
command.region.done | Region of {entry} set to {min} → {max} in {world}. | {entry}, {min}, {max} (sous la forme x, y, z), {world} |
command.region.publish_hint | Publish the page for it to take effect. | aucun |
command.refresh.none | No painted chunks near {player} to refresh. | {player} |
command.refresh.done | Resent biome data for {chunks} painted chunk(s) to {player}. | {chunks}, {player} |
command.apply.unknown | Unknown biome: {biome} | {biome} |
command.apply.unknown_hint | Use /tw biome list to see available custom biomes. | aucun |
command.apply.nothing | Nothing to paint at that location. | aucun |
command.apply.done | Painting {biome} over {cells} cell(s) across {chunks} chunk(s). | {biome}, {cells}, {chunks} |
placeholder.unknown | unknown | aucun |
Les trois snippets de survol de /tw biome list se trouvent dans un argument MiniMessage entre apostrophes : ils ne doivent donc pas contenir d'apostrophe.
placeholder.unknown est ce que renvoient %typewriter_temperature%, %typewriter_downfall% et la variable Biome Property pour un biome qui n'est pas personnalisé. Les true et false renvoyés par %typewriter_is_custom% restent fixes, parce que les conditions les comparent.
Permissions
| Permission | Autorise |
|---|---|
typewriter.biome | L'accès à l'arbre de commandes /tw biome. |
typewriter.biome.list | /tw biome list |
typewriter.biome.info | /tw biome info |
typewriter.biome.apply | /tw biome apply |
typewriter.biome.refresh | /tw biome refresh |
typewriter.biome.region | /tw biome region |
Placeholders
Placeholders PlaceholderAPI, fournis par l'extension typewriter. Les placeholders de joueur lisent le biome qui est montré au joueur.
| Placeholder | Renvoie |
|---|---|
%typewriter_current% ou %typewriter_id% | Clé du biome sous le joueur, par exemple minecraft:plains. |
%typewriter_name% | Nom lisible du biome. |
%typewriter_key% | Uniquement la partie clé. |
%typewriter_namespace% | Uniquement la partie namespace. |
%typewriter_is_custom% | true ou false. |
%typewriter_temperature% | Température d'un biome personnalisé, unknown sinon. |
%typewriter_downfall% | Précipitations d'un biome personnalisé, unknown sinon. |
%typewriter_base% | Biome de base d'un biome personnalisé, ou la clé du biome elle-même. |
%typewriter_count% | Nombre de biomes personnalisés enregistrés. |
%typewriter_list% | Noms affichés des biomes personnalisés, séparés par des virgules. |
%typewriter_discovered_count% | Nombre de biomes que le joueur a visités. |
%typewriter_discovered_list% | Clés des biomes que le joueur a visités. |
L'extension répond aux noms simples ci-dessus (%typewriter_current%, %typewriter_count%, etc.). Le commentaire de son code source mentionne un préfixe custombiome_, mais le code ne reconnaît que les noms simples.
Entrées
20 entrées, générées depuis la source de l'extension.
Actions5
- Apply Biome ActionApply a biome to a location with optional radius
- Paint Biome Region ActionPaint a biome over a region, with an optional snapshot to undo it later
- Player Biome Overlay ActionShow a biome to a single player without changing the world
- Refresh Biome Chunks ActionRefresh biome data for chunks around the player
- Restore Biome ActionRestore biomes previously recorded by a paint snapshot
Événements2
- Enter Biome EventTriggered when a player enters a biome
- Leave Biome EventTriggered when a player leaves a biome
Objectifs1
- Explore Biome ObjectiveObjective completed by discovering one or more biomes
Faits4
- Biome Discovery FactHow many biomes the player has discovered, or whether specific ones were found
- Custom Biome Count FactReturns the number of registered custom biomes
- Is in Custom Biome FactReturns 1 if player is in a custom biome, 0 otherwise
- Player Biome FactExpose the player's current biome as a fact value
Audiences2
- Biome Overlay AudienceShow a biome to the audience without changing the world
- Biome Region AudienceKeep the players standing inside a region defined by two captured corners
Cinématiques1
- Biome Transition CinematicChange the biome a player sees during a cinematic
Variables3
- Biome Property VariableReturns a property of the player's current biome
- Current Biome VariableReturns the player's current biome name
- Custom Biome List VariableReturns a list of registered custom biomes
Manifestes2
- Custom Biome DefinitionDefine a custom biome with colors and climate settings
- Custom Biome PresetA reusable set of colors and visual attributes shared by several biomes
Dépannage
/tw biome list affiche un panneau d'avertissement et « needs a restart ». Le serveur n'a pas pu ajouter le biome à son registre actif : il n'existe donc que dans le datapack généré. Redémarrez le serveur. La raison est écrite une seule fois dans la console.
Mon biome est introuvable par une action ou un événement. Les identifiants de biomes sont de la forme namespace:id, par exemple typewriter:corrupted_forest. Vérifiez la clé exacte avec /tw biome list. Un identifiant inconnu est journalisé comme avertissement (unknown biome '…') et l'action ne fait rien.
Un joueur ne voit jamais la surcouche. Les surcouches nécessitent PacketEvents : sinon, la console affiche PacketEvents unavailable: per-player biome overlays are disabled. Vérifiez aussi que le joueur est dans l'audience, qu'un biome est configuré (une définition personnalisée ou vanillaBiome) et, pour une région, que les deux coins sont dans un monde chargé.
Paint Biome Region ne fait rien. Avec region défini sur WORLDEDIT_SELECTION, le joueur à l'origine du déclenchement a besoin d'une sélection WorldEdit et WorldEdit doit être installé ; la console journalise has no WorldEdit selection. Utilisez sinon RADIUS_AROUND_PLAYER.
Restore Biome indique que l'instantané n'existe pas. Les instantanés ne sont enregistrés que lorsque l'action de peinture a un snapshotId, et la restauration doit utiliser le même nom. Si consume est activé, l'instantané est supprimé après une restauration.