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:
FREEPREMIUMRESOURCES
O menu apresenta-as atualmente como:
Free ContentPremium PacksResources
Pacotes pré-fabricados verificados
Estes são os pacotes definidos no repositório atual:
| Pacote | Categoria | Ativar/desativar em /etd setup | Ficheiros e recursos acompanhados |
|---|---|---|---|
EternalTD Hub World | Gratuito | Não | Pasta etd_spawn na pasta de mundos do servidor |
EternalTD Tutorial | Gratuito | Sim | tutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial |
Towers of the Grassy Lands | Gratuito | Sim | 5 ficheiros de nível, 1 de vagas, 1 de NPC e 5 mundos |
Towers from the Depths | Premium | Sim | 5 ficheiros de nível, 1 de vagas, 1 de NPC e 5 mundos |
Towers of the Rising Sun | Premium | Sim | 5 ficheiros de nível, 1 de vagas, 1 de NPC e 5 mundos |
EternalTD Custom Models | Recursos | Não | Ficheiro 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ãolevel.dat. Exigirlevel.datfaria 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 towersou a antigaFreeMinecraftModels/Models/EternalTD default towersdentro deplugins/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/enpcs/, pelo que os pacotes que os organizam em subpastas continuam a ser detetados. Towers of the Rising Sunacompanhava anteriormentetowers_of_the_rising_sun.yml, mas o pacote fornecetowers_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.