Aller au contenu principal

Custom Biome

Biomes personnalisés avec leurs propres couleurs, brouillard, ciel et climat ; peignez-les ou montrez-les à un seul joueur.

Gratuitesv0.9Monde et construction
NécessiteTypeWriter0.9Quest extensionPacketEventsWorldEditfacultatifPlaceholderAPIfacultatif

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​

  1. Installez PacketEvents. Les surcouches et les actualisations de chunks sont envoyées avec lui ; sans lui, les surcouches sont désactivées.
  2. Installez l'extension Quest de TypeWriter depuis l'onglet Extensions du panel web (l'objectif l'utilise).
  3. Facultatif : installez WorldEdit ou FastAsyncWorldEdit pour peindre la sélection faite en jeu.
  4. Facultatif : installez PlaceholderAPI pour utiliser les placeholders ci-dessous.
  5. 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.

remarque

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 :

  1. Dans le panel web TypeWriter, ouvrez une page manifest et ajoutez une entrée Custom Biome Definition.
  2. Définissez biomeId (minuscules, tirets bas, par exemple corrupted_forest) et conservez namespace à typewriter. Définissez baseBiome sur minecraft:forest.
  3. Renseignez en hexadécimal les couleurs que vous voulez changer, par exemple grassColor #6a3d9a et foliageColor #4b2a73. Les champs vides héritent du biome de base.
  4. Publiez, puis exécutez /tw biome list en jeu pour vérifier que le biome est actif. S'il apparaît comme en attente d'un redémarrage, redémarrez le serveur.
  5. 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).
  6. Pour la limiter à une zone, définissez cornerA et cornerB, 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.

astuce

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/ :

DossierContenu
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.

CommandeDescription
/tw biomeAffiche la liste des commandes.
/tw biome listListe 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éfautPlaceholders
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_livelive registry injection (reflection)aucun
command.list.strategy_unsupportedunsupported ({reason}){reason} (technique, en anglais)
command.list.icon_live, icon_waiting, icon_missing• en vert, ⚠ en jaune, ✖ en rougeaucun
command.list.status_live, status_waiting, status_missingtextes au survol : Live in the registry, Written to the datapack — needs a restart, Not registeredaucun
command.list.entryune 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.headerBiome Info for {player}{player}
command.info.name, id, temperature, downfall, base_biomeName:, ID:, Temperature:, Downfall:, Base Biome:, suivi de la valeur{value}
command.info.custom_yes, custom_noCustom: Yes et Custom: Noaucun
command.help.titleCustom Biome Commandsaucun
command.help.list, info, apply, refresh, regionune ligne d'aide par commandeaucun
command.region.no_selectionNo WorldEdit selection (or WorldEdit is not installed).aucun
command.region.page_not_foundCould not find the page holding '{entry}'.{entry}
command.region.write_failedCould not write the region: {failures}{failures} (technique, en anglais)
command.region.doneRegion of {entry} set to {min} → {max} in {world}.{entry}, {min}, {max} (sous la forme x, y, z), {world}
command.region.publish_hintPublish the page for it to take effect.aucun
command.refresh.noneNo painted chunks near {player} to refresh.{player}
command.refresh.doneResent biome data for {chunks} painted chunk(s) to {player}.{chunks}, {player}
command.apply.unknownUnknown biome: {biome}{biome}
command.apply.unknown_hintUse /tw biome list to see available custom biomes.aucun
command.apply.nothingNothing to paint at that location.aucun
command.apply.donePainting {biome} over {cells} cell(s) across {chunks} chunk(s).{biome}, {cells}, {chunks}
placeholder.unknownunknownaucun
remarque

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​

PermissionAutorise
typewriter.biomeL'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.

PlaceholderRenvoie
%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.
remarque

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
Événements2
Objectifs1
Faits4
Audiences2
Cinématiques1
Variables3
Manifestes2

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.