Aller au contenu principal

Commandes EternalTD

EternalTD enregistre la commande racine :

/eternaltd
/etd

Les commandes de compte Nightbreak utilisées lors de la configuration sont des commandes de premier niveau distinctes, enregistrées par MagmaCore :

/nightbreaklogin <token>
/nightbreaklogout

Les deux sont protégées par nightbreak.login (default: op). /nightbreaklogout efface du serveur le jeton de compte Nightbreak enregistré.

MagmaCore enregistre également une commande de changelog par plugin, /etdchangelog, en tant que commande de premier niveau à part entière (voir Changelog de version).

Configuration et gestion du contenu

La plupart de ces sous-commandes sont enregistrées par MagmaCore via NightbreakPluginBootstrap.registerStandardCommands. Elles sont partagées entre tous les plugins Nightbreak et sont livrées avec EternalTD car MagmaCore est intégré (shaded) dans le plugin.

CommandeExpéditeurFonction actuelle
/etdTousAffiche l'aide rapide actuelle de configuration/contenu. Elle exige désormais réellement eternaltd.* — un expéditeur qui ne l'a pas reçoit « You do not have permission to run this command! »
/etd initializeJoueurOuvre le menu de première configuration. Nécessite eternaltd.*.
/etd setupJoueurOuvre le menu de configuration d'EternalTD (l'explorateur de paquets ainsi que les contrôles partagés de mise à jour du plugin, de plugins recommandés et de mise à jour automatique)
/etd recommendedpluginsTousOuvre (joueur) ou affiche (console) les plugins compagnons recommandés pour EternalTD
/etd downloadpluginupdateTousTélécharge une mise à jour du plugin EternalTD si elle est disponible (utilisée après le prochain redémarrage)
/etd downloadallTousTélécharge la mise à jour du plugin EternalTD et tout le contenu disponible
/etd downloadallcontentTousTélécharge tout le contenu EternalTD disponible (sans mise à jour du plugin)
/etd updatecontentTousTélécharge les mises à jour du contenu EternalTD obsolète
/etd updateallcontentTousAlias de /etd updatecontent
/etd forcereinstallcontent <package&#124;all>TousRetélécharge le contenu via le pipeline normal d'import/rechargement authentifié même lorsque la version installée est déjà à jour. all couvre tous les paquets détectés comme téléchargés ; un slug Nightbreak (complété par tabulation) cible un seul paquet et fonctionne même si ses fichiers sont totalement absents. Utilisez cette commande pour réparer un paquet dont les fichiers ont été supprimés ou corrompus.
/etd installTousApplique la configuration officielle du pack de ressources EternalTD
/etd reloadTousRedémarre EternalTD sur place (cycle complet disable, load, enable)

Note pour les administrateurs :

  • Le plugin.yml d'EternalTD déclare un unique nœud de permission, eternaltd.* (default: op), décrit comme donnant accès aux commandes d'administration, de configuration et de débogage.
  • Tout ce qui relève de l'administration se ramène à ce seul nœud : setup, recommendedplugins, downloadall, downloadallcontent, downloadpluginupdate, updatecontent/updateallcontent, forcereinstallcontent, install, reload, cheat, setwave, selectfloor, selectfloorcoordinates, showselection, register, register start, register end, ainsi que /etd seul. (Les commandes MagmaCore partagées répartissent cela entre des permissions « admin », « setup » et « initialize », mais EternalTD transmet eternaltd.* pour les trois, l'exigence effective est donc identique.)
  • Les deux commandes de compte Nightbreak utilisent leur propre nœud, nightbreak.login (default: op), que MagmaCore enregistre à l'exécution plutôt que via le plugin.yml d'EternalTD.
  • initialize est enregistré par le bootstrap partagé et nécessite aussi eternaltd.* ; les modes prédéfinis ne contrôlent pas cet enregistrement.
  • Seules les commandes destinées aux joueurs sont sans restriction : hub/lobby, join, start/go et quit/stop.
  • La complétion par tabulation du premier argument est également filtrée par permission, de sorte que les joueurs sans eternaltd.* ne voient que les sous-commandes destinées aux joueurs.

Commandes de jeu

CommandeExpéditeurFonction actuelle
/etd join <level>JoueurDémarre une nouvelle session de niveau à partir d'un fichier de niveau chargé. Le monde modèle est copié hors du thread principal : la commande répond donc d'abord « Preparing world - hang tight! », puis « Created your world! We're ready to go. » une fois l'instance active. La relancer pendant qu'une copie est en cours est refusé avec « Your level is already being prepared. Please wait! »
/etd startJoueurDémarre la première vague de la session active
/etd goJoueurAlias de /etd start
/etd quitJoueurTermine votre session de niveau en cours
/etd stopJoueurAlias de /etd quit
/etd hubJoueurVous téléporte au spawn du hub EternalTD. Si elle est exécutée en pleine partie, la session active est d'abord proprement terminée (inventaire restauré, tours retirées, monde d'instance supprimé). Nécessite que le spawn du hub soit configuré dans config.yml ; si le serveur refuse la téléportation, la commande signale cet échec au lieu de prétendre avoir réussi.
/etd lobbyJoueurAlias de /etd hub

Commandes de débogage et d'administration de jeu

CommandeExpéditeurFonction actuelle
/etd cheatJoueurActive/désactive le mode triche pour la session active
/etd setwave <wave>JoueurPasse la session active à une vague spécifique

Ce ne sont pas des commandes normales de configuration de joueur. Ce sont des outils de session/débogage.

Commandes de création de cartes

Ces commandes sont encore présentes dans la base de code actuelle pour la sélection d'étages et le travail d'enregistrement de niveaux.

CommandeExpéditeurFonction actuelle
/etd selectfloorJoueurDémarre ou arrête la sélection de coins d'étage par clics
/etd selectfloorcoordinates <x1> <y1> <z1> <x2> <y2> <z2>JoueurDéfinit la région de sélection directement à partir de coordonnées
/etd showselection <level>JoueurVérifie la sélection du sol et la conserve. L'aperçu par particules est désactivé dans l'implémentation actuelle.
/etd register <level>JoueurVérifie puis efface la sélection. N'affiche pas de particules et ne sauvegarde pas levelLocations ; renseignez la zone du sol manuellement dans le YAML du niveau.
/etd register <level> startJoueurAjoute le bloc sur lequel le joueur se tient actuellement à la liste startLocation du niveau
/etd register <level> endJoueurAjoute le bloc sur lequel le joueur se tient actuellement à la liste endLocation du niveau

Changelog de version

MagmaCore enregistre une commande de premier niveau supplémentaire par plugin Nightbreak, nommée d'après la commande racine suivie de changelog :

/etdchangelog
/etdchangelog dismiss
/etdchangelog disable
FormeEffet
/etdchangelogOuvre les notes de version des versions d'EternalTD (et des paquets de contenu suivis) que vous n'avez pas encore lues
/etdchangelog dismissMarque comme lues les versions actuellement affichées et passe au lot non lu suivant, s'il y en a un
/etdchangelog disableDésactive définitivement l'avis de changelog pour ce joueur

Comportements à connaître :

  • La commande est réservée aux joueurs et aux administrateurs. « Administrateur » signifie ici op, eternaltd.*, ou n'importe laquelle des permissions admin/setup/initialize de la spécification — les trois étant définies sur eternaltd.* par EternalTD.
  • Les administrateurs qui rejoignent le serveur reçoivent un avis dans le chat avec un bouton cliquable view environ 2 secondes après la connexion, mais uniquement s'il y a quelque chose de non lu et qu'ils n'ont pas exécuté disable.
  • L'état lu/ignoré, la version à partir de laquelle le suivi a commencé et le texte de version mis en cache sont stockés dans plugins/EternalTD/nightbreak-changelogs.yml.
  • Si un autre plugin possède déjà le libellé etdchangelog, MagmaCore enregistre à la place une solution de repli avec espace de noms (eternaltd:etdchangelog).

Notes

  • Le plugin.yml d'EternalTD ne déclare que la commande racine et la permission eternaltd.*. Les sous-commandes sont enregistrées via le gestionnaire de commandes à l'exécution.
  • /etd reload est un véritable redémarrage du plugin : il appelle le chemin disable, load puis enable du plugin plutôt qu'une simple ré-importation légère du contenu. Tout ce que fait le démarrage (migration des dossiers, importateur, paquets de contenu, vagues, niveaux, modèles de monde, NPCs, aide au pack de ressources) est réexécuté. Il n'appelle pas le chemin de rechargement de FreeMinecraftModels — la méthode qui le ferait est présente dans le code source mais rien ne l'invoque.
  • Les arguments de nom de niveau de join, showselection et des commandes register sont résolus lors de la complétion par tabulation, et non au démarrage du plugin ; les niveaux ajoutés par un téléchargement ou un rechargement apparaissent donc sans redémarrage.