Paquets de contenu EternalTD
EternalTD suit désormais le contenu officiel via un ensemble de configuration content_packages et expose ces paquets via /etd setup.
Catégories de paquets
Le code actuel utilise trois catégories de paquets :
FREEPREMIUMRESOURCES
Le menu de configuration les affiche actuellement comme :
Free ContentPremium PacksResources
Paquets préfabriqués vérifiés
Voici les paquets préfabriqués actuellement définis dans le dépôt :
| Paquet | Catégorie | Activable dans /etd setup | Ressources suivies |
|---|---|---|---|
EternalTD Hub World | Free | Non | Dossier du conteneur de mondes du serveur etd_spawn |
EternalTD Tutorial | Free | Oui | tutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial |
Towers of the Grassy Lands | Free | Oui | 5 fichiers de niveau, 1 fichier de vagues, 1 fichier NPC, 5 mondes |
Towers from the Depths | Premium | Oui | 5 fichiers de niveau, 1 fichier de vagues, 1 fichier NPC, 5 mondes |
Towers of the Rising Sun | Premium | Oui | 5 fichiers de niveau, 1 fichier de vagues, 1 fichier NPC, 5 mondes |
EternalTD Custom Models | Resources | Non | Fichier marqueur uniquement, plus contenu FreeMinecraftModels importé lorsque présent |
Cycle de vie des paquets
L'explorateur de paquets distingue actuellement entre :
- non téléchargé
- non installé
- installé
- partiellement installé
- obsolète et pouvant être mis à jour
- obsolète mais inaccessible
- nécessite un accès
Cet état est calculé à partir des ressources suivies sur le disque, des indicateurs isEnabled dans les fichiers de configuration suivis et des vérifications d'accès/mise à jour de Nightbreak.
Deux règles de détection comptent lorsqu'un paquet semble bloqué sur « partiellement installé » :
- Les dossiers du conteneur de mondes sont recherchés dans les deux dispositions. Paper 26.1 et versions ultérieures migrent les mondes de plugins vers
<level-name>/dimensions/minecraft/<world>. EternalTD considère qu'un dossier de conteneur de mondes est présent s'il existe soit à la racine héritée, soit à l'emplacement migré, et il vérifie délibérément la présence du dossier, pas delevel.dat— exigerlevel.datferait basculer le paquet en « non installé » pendant une migration partielle et déclencherait une réinstallation que Paper refuserait ensuite de fusionner. - Les paquets suivis par marqueur disposent d'un repli sur le contenu. Un paquet suivi uniquement par un fichier marqueur peut également être détecté par la présence de ses dossiers de contenu sous
plugins/. Dans ce cas, le marqueur est écrit immédiatement afin que l'état reste stable par la suite. C'est ce qui fait que le pack de modèles personnalisés apparaît comme installé lorsque ses modèles ont été importés à la main plutôt que via le menu. La liste des dossiers de repli est définie dans le code, et non lue depuis le YAML du paquet.
Paquets activables vs. partagés
Les paquets activables fonctionnent en basculant isEnabled dans les fichiers de configuration suivis sous :
plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
Les paquets partagés ne se comportent pas comme des bascules normales :
- Le monde hub est traité comme du contenu installé partagé.
- Le paquet de modèles personnalisés est traité comme du contenu de ressources partagé.
Pour ces paquets, le menu de configuration vous indique de supprimer les fichiers manuellement puis d'exécuter /etd reload.
Opérations en masse
Les opérations de contenu en masse actuellement implémentées sont :
/etd downloadall— télécharge la mise à jour du plugin EternalTD et tout le contenu disponible/etd downloadallcontent— télécharge tout le contenu disponible (sans mise à jour du plugin)/etd updatecontent(alias/etd updateallcontent) — télécharge uniquement le contenu obsolète
Les commandes de téléchargement/mise à jour du contenu :
- nécessitent un jeton Nightbreak lié
- téléchargent dans
plugins/EternalTD/imports - ignorent les paquets inaccessibles ou déjà à jour
- rechargent EternalTD automatiquement après des téléchargements réussis
/etd downloadall vérifie en plus la présence d'une mise à jour du plugin et la télécharge en premier ; si aucun jeton n'est lié ou si l'authentification échoue, elle s'arrête avant l'étape du contenu.
Notes pratiques
- Les vérifications de paquets dédupliquent par slug Nightbreak avant le téléchargement/mise à jour en masse.
- L'interface de configuration rafraîchit les informations de contenu et d'accès avec un temps de recharge au lieu d'interroger Nightbreak à chaque ouverture.
- Le paquet de modèles personnalisés écrit un marqueur sous
plugins/EternalTD/content_markers/pour qu'EternalTD puisse suivre que le paquet de ressources partagé a été téléchargé. - Les fichiers de niveau, de vague et de NPC suivis sont recherchés par nom de fichier n'importe où sous
levels/,waves/etnpcs/, de sorte que les paquets qui livrent leurs fichiers dans un sous-dossier sont tout de même détectés. Towers of the Rising Sunsuivait auparavant son fichier de vagues sous le nomtowers_of_the_rising_sun.ymlalors que le pack livre en réalitétowers_of_the_rising_sun_waves.yml, ce qui le faisait apparaître en permanence comme non complètement installé. Le nom suivi est désormais corrigé automatiquement et réécrit dans la configuration du paquet au chargement — aucune correction manuelle n'est nécessaire.