Paquetes de contenido de EternalTD
EternalTD ahora rastrea el contenido oficial a través de un conjunto de configuración content_packages y expone esos paquetes a través de /etd setup.
Categorías de paquetes
El código actual utiliza tres categorías de paquetes:
FREEPREMIUMRESOURCES
El menú de configuración actualmente las muestra como:
Free ContentPremium PacksResources
Paquetes prefabricados verificados
Estos son los paquetes prefabricados actualmente definidos en el repositorio:
| Paquete | Categoría | Conmutable en /etd setup | Assets rastreados |
|---|---|---|---|
EternalTD Hub World | Free | No | Carpeta del contenedor de mundos del servidor etd_spawn |
EternalTD Tutorial | Free | Sí | tutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial |
Towers of the Grassy Lands | Free | Sí | 5 archivos de nivel, 1 archivo de oleadas, 1 archivo de NPC, 5 mundos |
Towers from the Depths | Premium | Sí | 5 archivos de nivel, 1 archivo de oleadas, 1 archivo de NPC, 5 mundos |
Towers of the Rising Sun | Premium | Sí | 5 archivos de nivel, 1 archivo de oleadas, 1 archivo de NPC, 5 mundos |
EternalTD Custom Models | Resources | No | Solo archivo marcador, más contenido importado de FreeMinecraftModels cuando está presente |
Ciclo de vida del paquete
El explorador de paquetes actualmente distingue entre:
- no descargado
- no instalado
- instalado
- parcialmente instalado
- desactualizado y actualizable
- desactualizado pero inaccesible
- necesita acceso
Ese estado se calcula a partir de los assets rastreados en disco, los flags isEnabled dentro de los archivos de configuración rastreados y las verificaciones de acceso/actualización de Nightbreak.
Hay dos reglas de detección que importan cuando un paquete parece atascado en «parcialmente instalado»:
- Las carpetas del contenedor de mundos se buscan en ambas disposiciones. Paper 26.1 y posteriores migran los mundos de plugins a
<level-name>/dimensions/minecraft/<world>. EternalTD cuenta una carpeta del contenedor de mundos como presente si existe en la raíz antigua o en la ubicación migrada, y comprueba deliberadamente la carpeta, nolevel.dat: exigirlevel.datharía que el paquete pasara a «no instalado» durante una migración parcial y provocaría una reinstalación que Paper después se niega a fusionar. - Los paquetes rastreados por marcador tienen una alternativa de contenido. Un paquete rastreado solo por un archivo marcador también puede detectarse por la presencia de sus carpetas de contenido dentro de
plugins/. Cuando eso ocurre, el marcador se escribe de inmediato para que el estado se mantenga estable después. Esto es lo que hace que el paquete de modelos personalizados figure como instalado cuando sus modelos se importaron a mano en lugar de a través del menú. La lista de carpetas de reserva está definida en código, no se lee del YAML del paquete.
Paquetes conmutables vs. compartidos
Los paquetes conmutables funcionan cambiando isEnabled dentro de los archivos de configuración rastreados bajo:
plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
Los paquetes compartidos no se comportan como conmutadores normales:
- El mundo hub se trata como contenido instalado compartido.
- El paquete de modelos personalizados se trata como contenido de recursos compartido.
Para esos paquetes, el menú de configuración te indica que elimines los archivos manualmente y luego ejecutes /etd reload.
Operaciones masivas
Las operaciones masivas de contenido actualmente implementadas son:
/etd downloadall— descarga la actualización del plugin EternalTD y todo el contenido disponible/etd downloadallcontent— descarga todo el contenido disponible (sin actualización del plugin)/etd updatecontent(alias/etd updateallcontent) — descarga únicamente el contenido desactualizado
Los comandos de descarga/actualización de contenido:
- requieren un token de Nightbreak vinculado
- descargan en
plugins/EternalTD/imports - omiten paquetes que son inaccesibles o ya están actualizados
- recargan EternalTD automáticamente después de descargas exitosas
/etd downloadall además comprueba y descarga primero una actualización del plugin; si no hay ningún token vinculado o falla la autenticación, se detiene antes del paso de contenido.
Notas prácticas
- Las verificaciones de paquetes se deduplican por slug de Nightbreak antes de la descarga/actualización masiva.
- La interfaz de configuración actualiza la información de contenido y acceso con un tiempo de espera en lugar de consultar Nightbreak en cada apertura.
- El paquete de modelos personalizados escribe un marcador bajo
plugins/EternalTD/content_markers/para que EternalTD pueda rastrear que el paquete de recursos compartido fue descargado. - Los archivos de nivel, oleada y NPC rastreados se buscan por nombre de archivo en cualquier punto por debajo de
levels/,waves/ynpcs/, así que los paquetes que distribuyen sus archivos en una subcarpeta también se detectan. Towers of the Rising Sunrastreaba antes su archivo de oleadas comotowers_of_the_rising_sun.ymlmientras que el paquete realmente incluyetowers_of_the_rising_sun_waves.yml, lo que hacía que figurase permanentemente como no completamente instalado. El nombre rastreado ahora se corrige automáticamente y se vuelve a escribir en la configuración del paquete al cargar: no hace falta ninguna corrección manual.