Aller au contenu principal

Configuration de Nightbreak et gestion de contenu

Cette page est le guide de configuration partagé pour les plugins gérés par Nightbreak.

Il s'applique directement à :

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

Ces plugins partagent désormais le même cycle de vie global :

  1. Installez le plugin et toutes les dépendances obligatoires.
  2. Démarrez le serveur une fois pour que les fichiers et menus soient générés.
  3. Exécutez la commande de configuration initiale du plugin s'il en possède une.
  4. Liez le serveur à votre compte Nightbreak avec /nightbreaklogin, puis approuvez-le via le lien affiché.
  5. Utilisez le menu de configuration du plugin pour parcourir, installer, activer, désactiver et mettre à jour le contenu.
  6. Utilisez les commandes de téléchargement/mise à jour en masse du plugin lorsque vous souhaitez un démarrage initial plus rapide.

Ce que MagmaCore partage réellement​

MagmaCore est la couche partagée derrière le flux géré par Nightbreak. Il fournit :

  • la commande partagée /nightbreaklogin, qui lie le serveur depuis un navigateur ou enregistre un token que vous collez (permission nightbreak.login, par défaut OP)
  • la commande partagée /nightbreaklogout pour déconnecter le serveur de son compte Nightbreak (permission nightbreak.login, par défaut OP)
  • la commande partagée /logify pour envoyer le journal serveur actuel vers mclo.gs (permission logify.*, par défaut OP). Elle envoie logs/latest.log, ou le fichier .log le plus récent s'il est absent, masque d'abord les chiffres des adresses IPv4 et des ports, et répond avec un lien cliquable
  • la commande partagée /nightbreak plugins pour parcourir le catalogue de plugins Nightbreak (permission nightbreak.plugins, par défaut OP)
  • le stockage partagé du token dans plugins/MagmaCore/nightbreak.yml
  • les primitives partagées du menu de configuration utilisées par les menus de configuration des plugins
  • les vérifications partagées d'accès, de version et de téléchargement Nightbreak
  • la logique partagée de téléchargement en masse qui télécharge les fichiers dans le dossier imports du plugin propriétaire
  • la boîte de réception partagée des changelogs qui prévient les administrateurs en jeu lorsqu'un plugin ou un paquet de contenu installé possède des notes de version non lues (voir Notifications de changelog Nightbreak)
  • les mises à jour de plugins sans redémarrage, via applypluginupdate et le réglage nightbreak.applyPluginUpdatesWithoutRestart (voir ci-dessous)
  • l'ensemble standard de sous-commandes que chaque plugin géré par Nightbreak enregistre sous sa propre commande racine (voir ci-dessous)

/nightbreaklogin, /nightbreaklogout, /logify et /nightbreak sont enregistrées une seule fois par serveur par le premier plugin géré par Nightbreak qui charge MagmaCore, de sorte qu'elles sont disponibles quel que soit le plugin qui les « possède » au moment de l'exécution.

Sous-commandes standard partagées​

Les sous-commandes ci-dessous ne sont pas écrites par chaque plugin. MagmaCore enregistre les mêmes implémentations sous la commande racine déclarée par le plugin (/em, /bs, /fmm, /etd, …), ce qui explique pourquoi elles se comportent de façon identique partout.

Sous-commandeCe qu'elle faitPermission
setupOuvre le menu de configuration du plugin. Réservée aux joueurs.permission setup du plugin
initializeOuvre le menu de première configuration pour les joueurs si le plugin enregistre ce parcours. Les modes préréglés ne sont pas requis ; FreeMinecraftModels l’enregistre également. Consultez la page des commandes du plugin.permission initialize du plugin
recommendedpluginsAffiche les plugins compagnons recommandés (menu en jeu, liste dans le chat depuis la console).permission setup du plugin
downloadpluginupdateTélécharge uniquement un jar de mise à jour du plugin. Aucun contenu.permission admin du plugin
applypluginupdateApplique une mise à jour du plugin déjà téléchargée sans redémarrer le serveur. Voir Appliquer les mises à jour sans redémarrage.permission admin du plugin
downloadallTélécharge la mise à jour du plugin puis tout le contenu disponible.permission admin du plugin
downloadallcontentTélécharge tout le contenu disponible, sans mise à jour du plugin. Enregistrée uniquement par les plugins qui livrent des paquets de contenu.permission setup du plugin
updatecontent (alias updateallcontent)Télécharge uniquement les mises à jour du contenu déjà obsolète. Enregistrée uniquement par les plugins qui livrent des paquets de contenu.permission setup du plugin
forcereinstallcontent <package|all>Retélécharge le contenu via le chemin normal d'import authentifié et de rechargement, même si la version installée est déjà à jour. all couvre tous les paquets téléchargés, installés ou obsolètes ; indiquez directement le slug d'un paquet si ses fichiers ont totalement disparu. Enregistrée uniquement par les plugins qui livrent des paquets de contenu.permission admin du plugin

Le nœud de permission exact derrière chaque colonne est choisi par le plugin ; consultez donc la page du plugin concerné pour ses noms de nœuds. initialize est un flux de guidage initial — il ne remplace ni le menu de configuration ni les commandes de gestion de contenu.

Comme downloadall commence par la mise à jour du plugin, il s'arrête avant l'étape du contenu lorsque le compte n'a pas de token ou que l'authentification du token a échoué. Corrigez d'abord le token, puis relancez-la.

MagmaCore possède également un système d'initialisation séparé au démarrage du plugin, mais ce n'est pas la même chose que les commandes initialize destinées aux joueurs documentées ici.

Mises à jour automatiques​

Chaque plugin géré par Nightbreak écrit deux clés partagées dans son propre config.yml :

nightbreak:
autoDownloadPluginUpdates: false
applyPluginUpdatesWithoutRestart: never

Lorsque autoDownloadPluginUpdates vaut true, ce plugin télécharge automatiquement, quelques minutes après le démarrage :

  • un jar de mise à jour du plugin s'il est disponible, et
  • les fichiers de mise à jour de tous les paquets de contenu obsolètes qu'il gère.

Les mises à jour de contenu téléchargées automatiquement sont utilisées après le redémarrage du serveur. Une mise à jour du plugin téléchargée attend elle aussi un redémarrage, sauf si applyPluginUpdatesWithoutRestart l'applique plus tôt (voir Appliquer les mises à jour sans redémarrage). Les deux réglages sont désactivés par défaut, vous restez donc d'emblée sur le bouton de mise à jour en jeu. Le bouton Mises à jour automatiques de la barre d'outils du menu de configuration active et désactive autoDownloadPluginUpdates. Ce bouton et l'entrée Mise à jour du plugin indiquent quand une mise à jour du plugin téléchargée s'applique avec la valeur actuelle de applyPluginUpdatesWithoutRestart. Ceux de ResourcePackManager indiquent de redémarrer.

ResourcePackManager n'écrit que autoDownloadPluginUpdates, car ses mises à jour de plugin nécessitent toujours un redémarrage.

Les téléchargements de jars de plugins en jeu, qu'ils soient automatiques ou lancés depuis une commande ou un menu, nécessitent un token valide et un abonnement Patreon de soutien actif sur le compte Nightbreak lié. Sans eux, le téléchargement est refusé et le plugin vous en indique la raison, avec un lien vers la page de téléchargement publique. Avant qu'un jar téléchargé reçoive son nom définitif, dans le dossier update du serveur ou, pour une nouvelle installation, dans le dossier plugins, MagmaCore vérifie qu'il correspond au nom et à la version attendus. Sa somme SHA-256 est aussi vérifiée lorsque Nightbreak en fournit une. En cas d'échec d'un contrôle, le téléchargement temporaire est supprimé au lieu d'être installé.

Indépendamment du paramètre de téléchargement automatique, chaque plugin revérifie discrètement l'existence d'une version plus récente environ une fois par heure afin que le menu de configuration puisse afficher un état de mise à jour exact. Cette vérification ne télécharge jamais rien d'elle-même. Certains plugins consignent aussi dans la console la dernière version publique lorsque ce résultat change, et préviennent les opérateurs qui se connectent que leur version est obsolète, avec un lien de téléchargement.

Appliquer les mises à jour sans redémarrage​

Une mise à jour du plugin téléchargée attend dans le dossier update du serveur. Exécutez /<root> applypluginupdate, par exemple /em applypluginupdate, pour l'installer sur le serveur en cours d'exécution. La commande utilise la permission admin du plugin et fonctionne aussi depuis la console.

Le remplacement désactive le plugin et chaque plugin MagmaGuy activé qui en dépend (depend ou softdepend), remplace le jar, puis les recharge et les réactive. Le chat liste les plugins rechargés avec lui. Si le nouveau jar ne s'active pas, l'ancien jar est rechargé et la mise à jour reste dans le dossier update pour le prochain redémarrage. Les mises à jour en attente pour les autres plugins rechargés y restent aussi jusqu'au prochain redémarrage ; seul le plugin que vous avez nommé change de version.

La commande refuse de s'exécuter, avec un message, lorsque :

  • aucune mise à jour téléchargée n'est en attente, ou le jar en attente est invalide ou n'est pas plus récent que la version en cours d'exécution
  • un plugin d'un autre auteur en dépend (depend ou softdepend). Redémarrez plutôt le serveur
  • un autre remplacement de plugin est déjà en cours
  • le plugin nécessite toujours un redémarrage. ResourcePackManager refuse, car son extension Geyser ne se charge qu'au démarrage de Geyser

Utilisez cette commande plutôt qu'un plugin tiers de rechargement de plugins. Jusqu'au remplacement ou à un redémarrage, le serveur continue d'exécuter l'ancien jar.

nightbreak.applyPluginUpdatesWithoutRestart détermine ce qui se passe juste après le téléchargement d'une mise à jour du plugin, que ce téléchargement provienne de downloadpluginupdate, de downloadall, du menu de configuration ou d'un téléchargement automatique :

ValeurComportement
neverPar défaut. La mise à jour attend le prochain redémarrage. Les joueurs en ligne disposant de la permission admin ou wildcard du plugin reçoivent un titre et un avis dans le chat indiquant qu'un redémarrage est nécessaire. L'avis mentionne /<root> applypluginupdate uniquement lorsque le plugin enregistre cette commande et autorise les mises à jour sans redémarrage.
when-emptyApplique la mise à jour immédiatement si aucun joueur n'est en ligne. Sinon, le plugin vérifie toutes les 30 secondes et l'applique lorsque le serveur est vide.
immediatelyApplique la mise à jour dès la fin du téléchargement.

Toute autre valeur se comporte comme never. Lorsque when-empty ou immediately rencontre l'un des refus ci-dessus, la mise à jour attend le prochain redémarrage. Un remplacement recharge le plugin : les boss, arènes et instances de donjon en cours prennent donc fin.

1. Installez d'abord le plugin​

Placez le fichier jar du plugin et toutes les dépendances obligatoires dans plugins/, puis démarrez le serveur une fois.

2. Lancez la configuration initiale​

Si le plugin expose une commande initialize, utilisez-la en premier. Les menus actuels sont conçus pour :

  • marquer la configuration initiale comme terminée
  • vous diriger vers la liaison de compte Nightbreak, ou la lancer pour vous
  • vous diriger vers le menu de configuration actuel
  • clarifier quand les importations manuelles sont encore valides

Ce parcours ne nécessite pas de modes préréglés ; FreeMinecraftModels le propose également. Consultez la page des commandes de chaque plugin pour vérifier sa disponibilité.

Exécutez :

/nightbreaklogin

Ouvrez le lien affiché, connectez-vous et approuvez le serveur. Le serveur enregistre lui-même votre token de compte. Vous pouvez toujours coller un token depuis la page du compte Nightbreak avec /nightbreaklogin <token>. Voir Liaison de compte Nightbreak.

Le token est partagé via MagmaCore, donc un token lié peut être réutilisé par tous les plugins MagmaGuy compatibles sur ce serveur.

4. Utilisez le menu de configuration pour la gestion quotidienne du contenu​

Les menus de configuration sont la source de référence actuelle pour :

  • les états des paquets
  • les états d'accès
  • la distinction entre contenu installé et téléchargé
  • le contenu partiellement installé nécessitant une réparation
  • le contenu obsolète
  • les filtres de contenu par catégorie

Si vous avez un token lié, les menus de configuration sont l'endroit recommandé pour installer et mettre à jour le contenu.

5. Installez et mettez à jour en masse pour gagner du temps​

Utilisez la commande downloadall lorsque vous souhaitez configurer un serveur rapidement et la commande updatecontent lorsque vous souhaitez rafraîchir tout ce qui est obsolète.

Le téléchargeur en masse partagé ne tente que les paquets gérés par Nightbreak qui ont un slug Nightbreak. Parmi ceux-ci :

  • downloadall et downloadallcontent choisissent les paquets qui ne sont pas encore téléchargés ou qui sont obsolètes. La vérification de téléchargement authentifiée de Nightbreak décide de l'accès : un paquet auquel votre compte n'a pas accès apparaît donc comme échoué à la fin.
  • updatecontent actualise d'abord les versions des paquets, puis ne choisit que les paquets obsolètes, en ignorant ceux que la vérification d'accès a déjà marqués comme verrouillés.

Les commandes interactives de téléchargement en masse demandent au plugin propriétaire de se recharger après au moins un téléchargement réussi. Les téléchargements automatiques de contenu au démarrage ne rechargent délibérément pas le plugin ; ils prennent effet après le redémarrage du serveur.

Concepts partagés​

Différence entre téléchargé et installé​

Un paquet peut exister localement sans être activé. La signification exacte varie légèrement selon le plugin, mais l'état du menu de configuration compte plus que l'existence d'un zip dans imports.

Les téléchargements en masse atterrissent également dans le même dossier imports du plugin utilisé par les importations manuelles avant que l'étape d'importation/rechargement spécifique au plugin ne se termine.

Prise en compte des droits d'accès au contenu​

Les menus de configuration peuvent désormais distinguer entre le contenu qui :

  • est disponible pour votre token
  • doit être acheté ou déverrouillé
  • est installé
  • n'est que partiellement installé
  • est téléchargé mais désactivé
  • est obsolète

Un plugin peut lister un paquet avant que Nightbreak ne le publie. Une fois que le plugin a chargé la liste des paquets publiés par Nightbreak, et que ce paquet n'y figure pas, cliquer dessus indique qu'il n'a pas encore été publié sur Nightbreak. Les vérifications d'accès et les commandes groupées, dont forcereinstallcontent, l'ignorent. Si Nightbreak répond tout de même « not found » à une requête le concernant, la console note une seule fois que le paquet n'a pas été publié au lieu de journaliser une erreur d'API.

Les mises à jour de contenu archivent les fichiers abandonnés​

Lorsqu'un paquet mis à jour ne fournit plus un fichier que sa version précédente avait installé, l'import déplace ce fichier vers plugins/MagmaCore/outdated files/ au lieu de le laisser chargé. Voir Fichiers qu'une mise à jour de paquet cesse de fournir.

Les importations manuelles restent valides​

Les plugins gérés par Nightbreak prennent toujours en charge l'importation manuelle. Celle-ci est désormais la solution de secours plutôt que la méthode par défaut. Consultez Importations manuelles ou gestion en jeu.

Catalogue de plugins et recommandations​

/nightbreak plugins liste les plugins de MagmaGuy, sous forme de menu en jeu et de liste dans le chat depuis la console. Dans le menu, cliquer sur un plugin installé ouvre son menu de configuration. Cliquer sur un plugin manquant télécharge son jar directement dans le dossier plugins, sous son nom de fichier du catalogue, ce qui nécessite un token lié et un accès supporter ; le message du chat vous demande ensuite de redémarrer le serveur pour que le nouveau plugin se charge. Si le dossier plugins contient déjà un jar de ce plugin que le serveur n'a pas chargé, le téléchargement va plutôt dans le dossier update, sous le nom de ce jar. Sans token ou sans accès, le message renvoie plutôt vers la page de téléchargement publique.

/<root> recommendedplugins liste les plugins compagnons d'un plugin, chacun étiqueté Required, Recommended ou Encouraged. Les plugins de MagmaGuy s'y comportent comme dans /nightbreak plugins. Les plugins externes, comme WorldEdit, WorldGuard, LibsDisguises et PacketEvents, renvoient vers leurs pages officielles. Le bouton Plugins recommandés du menu de configuration ouvre la même liste et passe au vert une fois que tous les plugins listés sont installés.

Plugins qui n'utilisent pas cette procédure​

Tous les plugins de ce wiki n'utilisent pas le contenu téléchargeable géré par Nightbreak.

  • BetterFood n'utilise pas la gestion de paquets Nightbreak
  • ResourcePackManager gère les packs de ressources, pas les paquets DLC Nightbreak

Ces deux plugins enregistrent malgré tout l'interface de configuration partagée ainsi que les commandes communes de mise à jour du plugin et de notes de version ; ils ne proposent simplement pas de paquets de contenu Nightbreak.

ResurrectionChest et WorldCannon ne sont pas des exceptions : tous deux déclarent des paquets de contenu, enregistrent les sous-commandes de contenu partagées et utilisent l'importeur partagé, ils acceptent donc aussi les zips de paquets placés à la main. Voir Importations manuelles ou gestion en jeu.