Saltar para o conteúdo principal

Pacotes de conteúdo do EternalTD

O EternalTD acompanha o conteúdo oficial através das configurações content_packages e apresenta os pacotes em /etd setup.

Categorias de pacotes​

O código atual usa três categorias:

  • FREE
  • PREMIUM
  • RESOURCES

O menu apresenta-as atualmente como:

  • Free Content
  • Premium Packs
  • Resources

Pacotes pré-fabricados verificados​

Estes são os pacotes definidos no repositório atual:

PacoteCategoriaAtivar/desativar em /etd setupFicheiros e recursos acompanhados
EternalTD Hub WorldGratuitoNãoPasta etd_spawn na pasta de mundos do servidor
EternalTD TutorialGratuitoSimtutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial
Towers of the Grassy LandsGratuitoSim5 ficheiros de nível, 1 de vagas, 1 de NPC e 5 mundos
Towers from the DepthsPremiumSim5 ficheiros de nível, 1 de vagas, 1 de NPC e 5 mundos
Towers of the Rising SunPremiumSim5 ficheiros de nível, 1 de vagas, 1 de NPC e 5 mundos
EternalTD Custom ModelsRecursosNãoFicheiro marcador, mais conteúdo FreeMinecraftModels importado quando presente

Ciclo de vida dos pacotes​

O catálogo distingue estes estados:

  • não transferido
  • não instalado
  • instalado
  • parcialmente instalado
  • desatualizado, com atualização disponível
  • desatualizado, sem acesso
  • requer acesso

O estado resulta dos recursos acompanhados no disco, dos campos isEnabled dos ficheiros de configuração e das verificações de acesso e atualização Nightbreak.

Duas regras ajudam a compreender pacotes que parecem presos no estado parcialmente instalado:

  • As pastas de mundos são procuradas nos dois formatos. O Paper 26.1 e posteriores migra os mundos de plugins para <level-name>/dimensions/minecraft/<world>. O EternalTD aceita a pasta na raiz antiga ou no local migrado e verifica deliberadamente a pasta, não level.dat. Exigir level.dat faria uma migração parcial parecer uma desinstalação, desencadeando uma reinstalação que o Paper recusaria fundir.
  • O pacote de modelos também pode ser detetado pelo conteúdo. Uma pasta não vazia FreeMinecraftModels/models/EternalTD default towers ou a antiga FreeMinecraftModels/Models/EternalTD default towers dentro de plugins/ conta como presente. O EternalTD tenta então escrever o marcador; uma falha de escrita é registada. Esta lista de pastas está definida no código, não no YAML do pacote.

Estas verificações confirmam presença e ativação, não que o conteúdo possa ser jogado. Um marcador pode permanecer após a remoção dos modelos, e detetar uma pasta de mundo não valida o seu conteúdo. Recursos acompanhados em falta dão prioridade ao estado parcialmente instalado; se todos existirem, mas apenas algumas configurações estiverem ativas, aplica-se o mesmo estado.

Pacotes ativáveis e pacotes partilhados​

Os pacotes ativáveis alteram isEnabled nos ficheiros acompanhados em:

plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/

Também é guardado o campo isEnabled do próprio pacote, seguindo-se um reinício do EternalTD. Desativar mantém os ficheiros no disco. O estado instalado depende dos ficheiros acompanhados, não apenas do campo do pacote. A alteração lê todos os ficheiros acompanhados antes de escrever qualquer um deles; se algum não puder ser lido, nenhum ficheiro é alterado. Do mesmo modo, se /etd setup não conseguir ler um ficheiro acompanhado ao atualizar o estado dos pacotes, o menu não abre e é-lhe pedido que consulte a consola.

Os pacotes partilhados não seguem esse mecanismo:

  • o mundo do hub é conteúdo instalado partilhado
  • o pacote de modelos personalizados é um recurso partilhado

Para estes pacotes, o menu indica que deve remover os ficheiros manualmente e depois executar /etd reload.

Operações em conjunto​

As operações de conteúdo disponíveis são:

  • /etd downloadall: transfere a atualização do plugin EternalTD e todo o conteúdo disponível
  • /etd downloadallcontent: transfere todo o conteúdo disponível, sem atualizar o plugin
  • /etd updatecontent, com o alias /etd updateallcontent: transfere apenas conteúdo desatualizado

Os comandos de transferência e atualização:

  • exigem um token Nightbreak associado
  • transferem para plugins/EternalTD/imports
  • selecionam pacotes em falta ou desatualizados para transferências; as atualizações selecionam os desatualizados e ignoram recusas de acesso em cache
  • recarregam o EternalTD automaticamente após transferências bem-sucedidas

Nas transferências normais, o acesso em cache é indicativo: o pedido autenticado determina o acesso atual. Pacotes já transferidos e atualizados são ignorados, mesmo com as configurações desativadas. Use o respetivo controlo no menu para os ativar. /etd forcereinstallcontent <package|all> repara ficheiros em falta ou danificados mesmo na versão atual; all seleciona as transferências detetadas, enquanto um slug Nightbreak específico pode selecionar um pacote totalmente ausente.

/etd downloadall verifica e transfere primeiro a atualização do plugin. Sem token associado ou se a autenticação falhar, para antes da etapa de conteúdo.

Observações práticas​

  • As verificações eliminam duplicados pelo slug Nightbreak antes das transferências e atualizações em conjunto.
  • O menu solicita atualizações de conteúdo e acesso com um intervalo mínimo de cinco minutos, em vez de consultar o Nightbreak sempre que abre.
  • O pacote de modelos escreve um marcador em plugins/EternalTD/content_markers/ para registar a transferência do recurso partilhado.
  • Os ficheiros de níveis, vagas e NPCs são identificados pelo nome em qualquer subpasta de levels/, waves/ e npcs/, pelo que os pacotes que os organizam em subpastas continuam a ser detetados.
  • Towers of the Rising Sun acompanhava anteriormente towers_of_the_rising_sun.yml, mas o pacote fornece towers_of_the_rising_sun_waves.yml, ficando permanentemente incompleto. O nome acompanhado é agora corrigido e guardado automaticamente ao carregar a configuração do pacote; não é necessária correção manual.