Empaquetage de contenu personnalisé EternalTD
EternalTD supporte toujours le contenu personnalisé basé sur le système de fichiers, mais le code actuel attend une disposition de dossiers spécifique et un modèle de suivi de paquets.
Racine d'importation
Les importations manuelles passent toujours par :
plugins/EternalTD/imports/
Après avoir importé du contenu manuellement, exécutez :
/etd reload
Dossiers de contenu canoniques
Le plugin actuel analyse ces dossiers en minuscules :
plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
plugins/EternalTD/worlds/
Note sur les versions antérieures :
Levels/etNPCs/sont des noms de dossiers hérités.- EternalTD les migre désormais vers
levels/etnpcs/lors du démarrage et du rechargement.
Règles d'empaquetage des mondes
EternalTD traite les mondes sous :
plugins/EternalTD/worlds/
comme des modèles de monde.
Lorsqu'un joueur démarre un niveau, EternalTD clone le monde modèle correspondant dans le conteneur de mondes du serveur et exécute la session dans cette copie clonée.
Un modèle est validé avant d'être copié, et la copie est refusée si l'une de ces conditions est vraie :
- le modèle n'a pas de
level.datà sa racine - le dossier du modèle est un lien symbolique, ou contient un lien symbolique quelque part à l'intérieur
- le modèle contient un fichier nommé
.eternaltd-instance
Ce dernier nom est réservé : EternalTD l'écrit dans chaque clone d'exécution comme marqueur de propriété, et refuse de supprimer tout dossier de monde qui ne porte pas un marqueur correspondant. N'en livrez jamais un à l'intérieur d'un modèle empaqueté.
Implication pratique :
- empaquetez les mondes modèles sous
plugins/EternalTD/worlds/ - ne traitez pas les mondes clonés à l'exécution comme la source de vérité pour le contenu empaqueté
- les noms de dossier de monde doivent être des noms simples — pas de séparateurs de chemin, pas de
:, pas de caractères de contrôle, et ni.ni..
Le monde hub officiel est un cas spécial et est suivi directement dans le conteneur de mondes du serveur comme :
etd_spawn
Ce qui rend un paquet activable
L'activation de paquets dans /etd setup ne fonctionne que pour les paquets qui exposent des fichiers de configuration suivis.
Les champs d'actifs suivis actuels sont :
levelFileswaveFilesnpcFilesworldFoldersworldContainerFoldersmarkerFileName
En pratique :
- les paquets de niveaux, de vagues et de NPC peuvent être activés ou désactivés en écrivant
isEnableddans ces fichiers YAML - les noms de fichiers suivis sont recherchés récursivement, les sous-dossiers de
levels/,waves/etnpcs/conviennent donc — seul le nom de fichier doit correspondre - le contenu partagé du conteneur de mondes et les paquets de ressources à marqueur seul ne sont pas activables de la même manière
Champs de métadonnées de paquet
Le modèle de champs de configuration de paquet actuel supporte :
isEnablednamedescriptiondownloadLinkversionnightbreakSluglevelFileswaveFilesnpcFilesworldFoldersworldContainerFoldersmarkerFileNamecategorytoggleable
Si vous souhaitez que le contenu personnalisé se comporte comme un paquet suivi dans l'interface de configuration, vous avez besoin de métadonnées de paquet correspondant à ces champs.
Il existe un champ suivi supplémentaire, markerFallbackFolders, qui liste des dossiers sous plugins/ dont la présence non vide compte également comme paquet installé. Il existe pour du contenu susceptible d'atteindre le serveur sans que le flux de téléchargement n'écrive un marqueur. Il n'est défini que dans le code — l'écrire dans un YAML de paquet n'a aucun effet.
Notes sur l'empaquetage des modèles
Le paquet actuel EternalTD Custom Models est suivi avec un fichier marqueur plutôt que des fichiers de configuration EternalTD normaux.
Cela signifie :
- EternalTD peut suivre si le paquet de modèles partagé a été téléchargé
- les actifs de modèles réels résident du côté FreeMinecraftModels de la configuration lorsque FMM est installé
- le nettoyage est manuel et suivi de
/etd reload
Ce que cette page n'affirme pas
Cette page documente les destinations actuelles sur le disque et le modèle de suivi qui sont vérifiés dans le dépôt.
Elle ne définit pas de schéma ZIP propriétaire pour les archives de paquets Nightbreak, car ce format d'empaquetage n'est pas décrit dans ce dépôt comme une spécification d'auteur publique autonome.