Packs de contenu EternalTD
EternalTD suit le contenu officiel via les configurations content_packages et propose ces packs dans /etd setup.
Catégories de packs
Le code actuel utilise trois catégories de paquets :
FREEPREMIUMRESOURCES
Le menu de configuration les affiche actuellement comme :
Free ContentPremium PacksResources
Packs prédéfinis 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 | Gratuit | Non | Dossier etd_spawn dans le conteneur de mondes du serveur |
EternalTD Tutorial | Gratuit | Oui | tutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial |
Towers of the Grassy Lands | Gratuit | Oui | 5 fichiers de niveau, 1 fichier de vagues, 1 fichier de PNJ, 5 mondes |
Towers from the Depths | Premium | Oui | 5 fichiers de niveau, 1 fichier de vagues, 1 fichier de PNJ, 5 mondes |
Towers of the Rising Sun | Premium | Oui | 5 fichiers de niveau, 1 fichier de vagues, 1 fichier de PNJ, 5 mondes |
EternalTD Custom Models | Ressources | Non | Fichier marqueur, plus contenu FreeMinecraftModels importé lorsqu'il est présent |
Cycle de vie des packs
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. - Le pack de modèles peut aussi être détecté par son contenu. Un dossier non vide
FreeMinecraftModels/models/EternalTD default towersou son ancien équivalentFreeMinecraftModels/Models/EternalTD default towerssousplugins/suffit. EternalTD tente ensuite d'écrire le marqueur ; un échec est journalisé. Cette liste de dossiers est définie dans le code, pas dans le YAML du pack.
Ces contrôles portent sur la présence et l'activation, pas sur la possibilité de jouer au contenu. Un marqueur peut subsister après la suppression des modèles, et la détection d'un dossier de monde n'en valide pas le contenu. Des ressources suivies manquantes donnent en priorité l'état partiellement installé ; si toutes sont présentes mais que seules certaines configurations sont activées, cet état s'applique aussi.
Packs activables et packs 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/
L'indicateur isEnabled du pack lui-même est également enregistré, puis EternalTD redémarre. La désactivation conserve les fichiers sur disque. L'état installé dépend des fichiers suivis, pas seulement de l'indicateur du pack. La bascule lit tous les fichiers suivis avant d'écrire dans l'un d'eux ; si l'un d'eux est illisible, aucun fichier n'est modifié. De même, si /etd setup ne parvient pas à lire un fichier suivi lors de l'actualisation de l'état des paquets, le menu ne s'ouvre pas et un message vous invite à consulter la console.
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 groupées
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 - sélectionnent les packs manquants ou obsolètes pour les téléchargements ; les mises à jour sélectionnent les packs obsolètes et ignorent les refus d'accès en cache
- rechargent EternalTD automatiquement après des téléchargements réussis
Pour un téléchargement normal, l'accès en cache est indicatif : la requête authentifiée détermine l'accès actuel. Les packs déjà téléchargés et à jour sont ignorés, même si leurs configurations sont désactivées. Activez-les avec leur commande dans le menu. /etd forcereinstallcontent <package|all> répare les fichiers absents ou endommagés même à la version actuelle ; all sélectionne les téléchargements détectés, tandis qu'un slug Nightbreak peut cibler un pack entièrement absent.
/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 demande une actualisation du contenu et des accès avec un délai minimal de cinq minutes, 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.