Aller au contenu principal

Importations manuelles ou gestion en jeu

Les plugins gérés par Nightbreak préfèrent désormais la configuration et la gestion de contenu en jeu, mais les importations manuelles existent toujours comme solution de secours.

Utilisez le menu de configuration avec un token Nightbreak lié lorsque vous souhaitez :

  • une exploration de contenu avec prise en compte des accès
  • une installation en un clic ou guidée par menu
  • des commandes de téléchargement et de mise à jour en masse
  • des vérifications automatiques des paquets obsolètes
  • un flux de travail correspondant à la base de code actuelle

C'est le chemin préféré pour :

  • EliteMobs
  • BetterStructures
  • FreeMinecraftModels
  • EternalTD
  • ResurrectionChest
  • WorldCannon

Ces six plugins utilisent tous l'importeur partagé : ils acceptent donc également la solution de secours manuelle décrite ci-dessous.

Solution de secours : importations manuelles​

Les importations manuelles sont toujours utiles lorsque :

  • vous avez déjà les fichiers zip des paquets téléchargés
  • vous déplacez des fichiers entre serveurs
  • vous souhaitez travailler hors ligne de Nightbreak pendant les tests
  • un paquet est intentionnellement distribué en dehors du chemin de téléchargement en jeu

Les téléchargements en masse Nightbreak atterrissent également dans le dossier imports du plugin. La différence est que le chemin en jeu gère les vérifications d'accès et l'étape de téléchargement pour vous.

Dossiers d'importation​

PluginDossier d'importation
EliteMobsplugins/EliteMobs/imports
BetterStructuresplugins/BetterStructures/imports
FreeMinecraftModelsplugins/FreeMinecraftModels/imports
EternalTDplugins/EternalTD/imports
ResurrectionChestplugins/ResurrectionChest/imports
WorldCannonplugins/CannonRTP/imports

Le dossier de plugin de WorldCannon s'appelle CannonRTP — c'est le nom interne du plugin, et c'est là que se trouvent à la fois son dossier imports et le contenu installé.

Règles d'importation manuelle​

  • Gardez le paquet téléchargé compressé sauf si la documentation spécifique au plugin indique le contraire.
  • Placez le paquet dans le bon dossier imports.
  • Rechargez ou redémarrez le plugin si la documentation spécifique au plugin l'exige.
  • Rouvrez le menu de configuration ensuite pour confirmer l'état d'installation.

L'importeur partagé peut traiter :

  • les paquets .zip placés dans imports
  • certains dossiers déjà décompressés s'ils incluent pack.meta
  • les fichiers .bbmodel pour FreeMinecraftModels

Les archives sont extraites dans un dossier de préparation caché à l'intérieur d'imports et ne sont installées que depuis là. L'importeur supprime ce dossier de préparation après un succès comme après un échec : les échecs d'importation normaux laissent donc le zip d'origine prêt pour une nouvelle tentative plutôt qu'un paquet à moitié extrait visible à côté.

Ce que l'importeur accepte​

pack.meta détermine où va le contenu​

Un paquet peut livrer un fichier pack.meta au niveau supérieur nommant la plateforme de plugin qu'il cible — elitemobs, betterstructures, freeminecraftmodels, eternaltd, extractioncraft, resurrectionchest, megablocksurvivors ou worldcannon (également accepté sous cannonrtp ou world_cannon). Ce nom est comparé sans tenir compte de la casse, et les espaces environnants, les fins de ligne et une marque d'ordre des octets en tête sont ignorés : un fichier enregistré par un éditeur Windows fonctionne donc parfaitement.

Si l'archive n'a pas de pack.meta, elle est traitée comme un paquet destiné au plugin dans le dossier imports duquel elle a été déposée.

Si pack.meta nomme quelque chose que l'importeur ne connaît pas, le paquet est rejeté et le zip est laissé dans imports afin que vous puissiez le corriger et réessayer.

Les noms des dossiers de premier niveau doivent être reconnus​

L'importeur achemine chaque dossier de premier niveau du paquet vers une destination d'après son nom. Certains noms fonctionnent pour toutes les plateformes :

DossierDestination
worldcontainerLe conteneur de mondes du serveur (chaque sous-dossier devient un monde)
models ou modelengineLe dossier des modèles de FreeMinecraftModels, ou le dossier des blueprints de ModelEngine si seul ModelEngine est installé
scriptsplugins/FreeMinecraftModels/scripts
freeminecraftmodels, elitemobs, betterstructuresLe dossier de données du plugin concerné (plugins/FreeMinecraftModels, plugins/EliteMobs ou plugins/BetterStructures). Organisez ce dossier comme le dossier de données, par exemple freeminecraftmodels/enchantments/
pack.metaIgnoré — ce sont des métadonnées, pas du contenu

Les modèles placés sous freeminecraftmodels/models/ vont dans le dossier de modèles que lit FreeMinecraftModels, y compris le dossier Models d'une installation plus ancienne.

L'importeur résout tous les autres dossiers de premier niveau selon la plateforme ciblée par le paquet. Chaque dossier va dans le dossier du même nom à l'intérieur du dossier de données du plugin, sauf indication contraire du tableau :

PlateformeDossiers pour ce pluginDossiers pour un autre plugin
elitemobscustombosses, customitems, customtreasurechests, content_packages (dungeonpackages y va aussi), customevents, customspawns, customquests, customarenas, npcs, npc_scripts, behaviors, transport_routes, transport_networks, wormholes, powers, world_blueprints, resource_pack, enchantmentsAucun
betterstructurescontent_packages, schematics, spawn_pools, components, modules, module_generators, treasures, generatorsEliteMobs : custombosses, customitems, customtreasurechests, powers, enchantments
freeminecraftmodelscontent_packages, recipes, enchantmentsEliteMobs : customitems, ignoré lorsque EliteMobs n'est pas activé
eternaltdnpcs, levels, waves, worlds, content_packages, content_markersAucun
resurrectionchestcontent_packagesAucun
worldcannoncontent_packages, cannons (fun_rtps y va aussi), ainsi que cannonrtp, worldcannon ou world_cannon pour le dossier de données lui-même (plugins/CannonRTP)Aucun
extractioncraftcontent_packages, loot_pools, loot_tablesEliteMobs : customquests, npcs, custombosses, customitems, customtreasurechests, powers, enchantments, npc_scripts, behaviors. BetterStructures : schematics, spawn_pools, components, modules, module_generators, treasures, generators
megablocksurvivorscontent_packages, npcs, schematics, worlds, content_markers, ainsi que megablocksurvivors pour le dossier de données lui-même (plugins/MegaBlockSurvivors)Aucun

Un dossier enchantments/ contient des définitions d'enchantements et leurs effets Lua locaux, et n'utilise jamais la destination globale de scripts/. Pour fournir des enchantements FreeMinecraftModels dans le paquet d'une autre plateforme, utilisez freeminecraftmodels/enchantments/.

Un dossier de premier niveau que l'importeur ne reconnaît pas pour cette plateforme entraîne le rejet du paquet entier plutôt qu'une installation partielle, et l'archive est conservée. Si votre paquet refuse de s'importer, la console nomme le dossier fautif.

Imports dans le dossier d'un autre plugin​

Les plugins lisent leurs dossiers de contenu au démarrage ou au rechargement. Lorsqu'un paquet importe des fichiers dans le dossier d'un autre plugin :

  • FreeMinecraftModels recharge automatiquement son contenu importé.
  • BetterStructures recharge le nouveau contenu une fois son propre démarrage terminé. S'il est toujours en cours de démarrage 10 minutes plus tard, la console vous demande d'exécuter /bs reload.
  • Un paquet BetterStructures qui importe du contenu EliteMobs recharge EliteMobs.
  • Lorsqu'Extractioncraft importe des paquets, il recharge BetterStructures, et aussi EliteMobs lorsqu'un paquet a ajouté du contenu EliteMobs.

Dans les autres cas, rechargez ou redémarrez le plugin propriétaire du dossier.

Mettre à jour un monde chargé​

Avant de remplacer un monde chargé, l'importeur déplace ses joueurs au point d'apparition d'un autre monde chargé et demande au serveur de décharger le monde cible. Si aucun autre monde n'est disponible, si une téléportation échoue ou si le serveur refuse le déchargement, l'import s'arrête et conserve l'archive. Faites sortir les joueurs et résolvez le problème signalé avant de réessayer.

Fichiers abandonnés dans un import​

Le plugin concerné recherche les formats de configuration abandonnés avant et après les imports. Les fichiers correspondants sont conservés dans plugins/MagmaCore/outdated files/, en dehors des dossiers de contenu actif. Si un ancien paquet installe du contenu abandonné, téléchargez sa version mise à jour. Consultez les fichiers de configuration abandonnés.

Fichiers qu'une mise à jour de paquet cesse de fournir​

Les imports copient et écrasent des fichiers : à eux seuls, ils laisseraient donc en place un fichier qu'une version plus récente du paquet a abandonné, et le plugin continuerait de le charger. MagmaCore enregistre donc les fichiers que chaque paquet installe sous le dossier plugins dans plugins/MagmaCore/import manifests/, un fichier JSON par paquet. Il nomme le paquet d'après le zip ou le dossier, sans .zip et sans suffixe de version comme _v22 : the-vampire-manor_v22.zip et the-vampire-manor_v23.zip désignent donc le même paquet.

Lorsque l'import suivant de ce paquet ne fournit plus un fichier installé par l'import précédent, l'importeur déplace ce fichier vers plugins/MagmaCore/outdated files/<plugin folder>/<time>-<package>/, en conservant son chemin à l'intérieur du dossier du plugin, et la console liste les fichiers déplacés. Le déplacement fait partie de la transaction d'import : un import qui échoue remet donc les fichiers en place. Les fichiers sont déplacés et non supprimés : les modifications que vous y avez faites restent dans la copie archivée.

Un fichier reste en place lorsque :

  • l'enregistrement d'un autre paquet le liste encore
  • l'import précédent et l'import actuel n'ont aucun fichier en commun, ce qui signifie qu'un paquet sans rapport a réutilisé le nom
  • il se trouve en dehors du dossier plugins, comme un dossier de monde, que les imports remplacent en entier

Le premier import enregistré d'un paquet n'archive rien. Le nettoyage commence à sa mise à jour suivante.

Les importations échouées sont annulées​

Si la restauration reste incomplète, MagmaCore conserve le dossier de récupération et journalise son chemin ainsi que les destinations non restaurées. Conservez ces fichiers et corrigez les erreurs signalées avant de relancer l'importation.

Un import est appliqué comme une seule transaction. Les fichiers existants sont sauvegardés avant d'être remplacés, les dossiers de monde remplacés sont mis de côté plutôt que supprimés, et tout échec en cours de route déclenche la restauration de chaque destination touchée par le paquet. Le zip reste dans imports pour réessayer après avoir résolu l'erreur. Si la restauration elle-même rencontre une erreur du système de fichiers, la console signale explicitement que la restauration est incomplète et vous invite à inspecter les destinations enregistrées avant de réessayer.

L'archive n'est supprimée qu'une fois l'import entièrement validé. Si vous voyez un paquet toujours présent dans imports après un rechargement, c'est l'importeur qui vous indique qu'il ne l'a pas installé — consultez la console pour en connaître la raison.

Différences importantes​

Méthode en jeu​

  • avec prise en compte du token
  • peut afficher le contenu verrouillé et obsolète
  • se recharge généralement automatiquement après les opérations en masse
  • reflète le flux de travail administratif actuellement prévu

Méthode manuelle​

  • fonctionne sans accès au téléchargement en jeu
  • nécessite que vous gériez les fichiers zip vous-même
  • peut nécessiter un rechargement du plugin
  • peut laisser du contenu téléchargé mais non activé selon le plugin
  • peut exposer des problèmes de structure de paquet que le chemin d'accès en jeu cacherait normalement jusqu'au moment de l'installation