Aller au contenu principal

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/ et NPCs/ sont des noms de dossiers hérités.
  • EternalTD les migre désormais vers levels/ et npcs/ 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 :

  • levelFiles
  • waveFiles
  • npcFiles
  • worldFolders
  • worldContainerFolders
  • markerFileName

En pratique :

  • les paquets de niveaux, de vagues et de NPC peuvent être activés ou désactivés en écrivant isEnabled dans ces fichiers YAML
  • les noms de fichiers suivis sont recherchés récursivement, les sous-dossiers de levels/, waves/ et npcs/ 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 :

  • isEnabled
  • name
  • description
  • downloadLink
  • version
  • nightbreakSlug
  • levelFiles
  • waveFiles
  • npcFiles
  • worldFolders
  • worldContainerFolders
  • markerFileName
  • category
  • toggleable

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.