Guide des fichiers de configuration
Le chargeur partagé de MagmaCore rejette les fichiers YAML illisibles ou invalides avant d'appliquer les valeurs par défaut, y compris les configurations héritées. L'enregistrement écrit et synchronise un fichier temporaire avant de remplacer la destination, de manière atomique lorsque cela est possible. Sous Windows, lorsqu'un autre processus, comme un antivirus ou un indexeur de fichiers, retient brièvement le fichier et que le remplacement est refusé, l'enregistrement est retenté jusqu'à quatre fois de plus, en attendant au plus 250 millisecondes au total. Les erreurs sont transmises à l'appelant ; corrigez le problème de fichier avant de réessayer.
Cette page explique comment modifier correctement un fichier .yml (.yaml). Les plugins Nightbreak utilisent des fichiers de configuration .yml. Un YAML invalide ou des valeurs non prises en charge peuvent empêcher le chargement d'un fichier ; certains paramètres reviennent alors à leur valeur par défaut. Conservez une sauvegarde et consultez la console après le rechargement.
Ci-dessous, vous trouverez tous les types d'entrées de configuration et comment ils doivent être formatés si vous modifiez des valeurs.
Comment modifier les fichiers .yml
Les fichiers sont stockés au format .yml et Notepad++ est le logiciel d'édition de fichiers recommandé pour le travail de configuration. Bien sûr, vous pouvez utiliser n'importe quel autre éditeur de texte de votre choix.
Fichiers de configuration abandonnés
Lorsqu'une mise à jour abandonne un format de configuration, MagmaCore déplace les fichiers correspondants dans plugins/MagmaCore/outdated files/<PluginName>/<archive batch>/, en conservant leur contenu et leurs chemins relatifs. La console indique l'emplacement de l'archive. Ce traitement intervient également avant et après les imports de contenu, pour empêcher un ancien paquet de remettre discrètement en service un fichier abandonné. Les imports de contenu déplacent aussi dans ce dossier les fichiers qu'un paquet mis à jour ne fournit plus ; voir Fichiers qu'une mise à jour de paquet cesse de fournir.
Le plugin régénère ses fichiers par défaut lorsqu'un remplacement existe. Les fichiers DLC abandonnés nécessitent un paquet de contenu mis à jour. Les fichiers personnalisés doivent être réécrits au format actuel ; comparez le fichier archivé à la référence correspondante et reportez les paramètres voulus. Restaurer un fichier archivé sans le modifier peut entraîner un nouvel archivage.
L'archivage suit des règles précises fournies par le plugin concerné. Un paramètre inconnu ou un fichier mal formé ne suffit pas à prouver que son format a été abandonné. Continuez aussi à vérifier les erreurs de chargement ordinaires dans la console.
Certaines règles abandonnent une ancienne valeur par défaut fournie plutôt qu'un format. Une règle peut désigner une valeur exacte que seule une ancienne version par défaut contient, comme un ancien emplacement de menu ou une ancienne liste de quêtes : le fichier entier est archivé lorsque cette valeur est toujours présente. Une règle visant un script Lua fourni compare la somme de contrôle SHA-256 du fichier, sans tenir compte des retours chariot, à celles des versions fournies précédemment pour ce script. Seule une copie non modifiée correspond : un script que vous avez modifié reste en place, tandis qu'une copie non modifiée est archivée et le plugin écrit ensuite sa version par défaut actuelle.
Par exemple, BetterStructures remplace l'ancienne configuration Valid worlds par Valid worlds v2. EliteMobs archive certains objets intégrés obsolètes, l'ancienne quête d'accueil de la guilde, ainsi que les copies non modifiées d'anciens pouvoirs Lua et scripts d'enchantement fournis. FreeMinecraftModels archive également les scripts Lua d'objets équipés qu'il reconnaît comme abandonnés ; les scripts actuels de props et les effets d'enchantement utilisent leurs propres contrats pris en charge.
Noms de fichiers en double
Les plugins qui chargent du contenu via MagmaCore identifient chaque fichier de contenu par son nom, y compris dans les sous-dossiers. Lorsque deux fichiers d'un même dossier de contenu portent le même nom, seul celui dont le chemin complet arrive en premier dans l'ordre de tri, sans distinction de casse, est chargé. La console affiche un avertissement indiquant les chemins chargé et ignoré. Elle reste silencieuse lorsque les copies sont identiques, ou lorsqu'il s'agit de fichiers YAML dont toutes les valeurs de la copie ignorée correspondent à celles du fichier chargé, ce qui arrive lorsque deux paquets de contenu fournissent le même fichier partagé. Donnez des noms uniques aux fichiers qui doivent être chargés séparément. Certains dossiers sont plus stricts : des noms de schematics en double dans le dossier modules de BetterStructures interrompent le chargement des modules.
Boolean
Les valeurs Boolean sont true ou false. Voici à quoi elles ressemblent :
value1: true
value2: false
Les Boolean n'acceptent que les valeurs true ou false. Ils sont généralement utilisés pour activer ou désactiver des fonctionnalités spécifiques.
String
Les valeurs String sont généralement du texte normal. Il est fortement recommandé de créer des valeurs String entre guillemets, en suivant ce format :
value: "String"
Placez entre guillemets les chaînes contenant des codes de couleur, surtout si le premier caractère est &. Dans un champ de texte compatible, "&aTest" produit du texte vert. La prise en charge du texte coloré dépend du paramètre de configuration. Consultez cette page pour les codes de couleur.
Details
Pourquoi ?
Les chaînes de configuration peuvent accepter des caractères spéciaux tels que&. Si un tel caractère figure en première position, comme dans value: "&aString", mais que la String n'est pas entre guillemets, YAML peut interpréter & comme une ancre plutôt que du texte ordinaire. Entourez la chaîne entière de guillemets pour éviter une erreur d'analyse ou une valeur inattendue.Serialized Location
Serialized Location est un type spécifique de String qui ressemble à ceci :
location: world,1.0,2.0,3.0,4.0,5.0
Ces chaînes servent à stocker et configurer des positions. Elles suivent le format worldName,X,Y,Z,YAW,PITCH. Yaw et pitch déterminent la direction du regard du joueur avec les mêmes valeurs que les positions Minecraft.
Multiplier
Les valeurs Multiplier multiplient les valeurs du plugin par ce nombre. Ces valeurs ne doivent jamais être entre guillemets. Voici un exemple :
damageMultiplier: 1.0
Dans ce cas, le multiplicateur de dégâts serait multiplié par 1, ce qui signifie qu'il n'y a aucun changement par rapport à la valeur par défaut. Si le Multiplier était 2.0, la valeur serait multipliée par 2.0. S'il était 0.5, il serait multiplié par 0.5.
Multiplier par 0.5 revient à diviser par 2. La plage autorisée dépend du paramètre concerné ; consultez sa référence avant d'utiliser zéro, une valeur négative ou un grand multiplicateur.
Integer
Les valeurs Integer sont simplement des nombres entiers. Exemple :
value: 10
Seuls les champs dont la documentation des scripts prend explicitement en charge les plages numériques acceptent ~. Il s'agit d'une chaîne analysée par cette fonctionnalité, et non d'un nombre YAML ou d'une option générale de configuration. Exemple :
value: 1~10
La principale chose à propos des valeurs Integer est qu'elles doivent être des nombres entiers. Cela signifie que 10.1 n'est pas valide.
Double
Les Double sont des nombres décimaux qui peuvent avoir une partie fractionnaire. Exemple :
value: 10.01
Seuls les champs dont la documentation des scripts prend explicitement en charge les plages numériques acceptent ~. Il s'agit d'une chaîne analysée par cette fonctionnalité, et non d'un nombre YAML ou d'une option générale de configuration. Exemple :
value: 1.0~10.01
Les Double peuvent également être des nombres entiers comme les integers, comme 10.0 ou même représentés comme 10.
Float
Les Float sont des nombres décimaux 32 bits, moins précis que les Doubles. Exemple :
value: 10.42452
Seuls les champs dont la documentation des scripts prend explicitement en charge les plages numériques acceptent ~. Il s'agit d'une chaîne analysée par cette fonctionnalité, et non d'un nombre YAML ou d'une option générale de configuration. Exemple :
value: 1.0~10.42452
Les Float peuvent également être des nombres entiers, comme 10.0 ou même représentés comme 10.
String List
Les String List sont des listes de valeurs String. Celles-ci ont tendance à être les valeurs les plus difficiles à configurer, car elles nécessitent un format de configuration très spécifique :
valuesList:
- "value,1"
- "value,2"
- "value,3"
Comme pour les String, il est recommandé de garder les valeurs entre guillemets. Chaque String List a son propre format, vous devrez donc trouver le format spécifique requis par celui que vous éditez ; cependant, globalement, c'est à quoi devrait ressembler le format général.
Map List
Une liste de maps contient plusieurs entrées associatives. Cet exemple YAML imbrique chaque valeur sous une map nommée ; les clés réelles dépendent du paramètre :
parentMap:
- Map1:
key: value
- Map2:
key: value
keyForList:
- "value1"
- "value2"
Comme vous pouvez le voir, les Map Lists peuvent contenir n'importe quel type de format à l'intérieur, mais si vous les utilisez dans le scripting, vous devrez vous référer à la documentation pour voir quelles sont les clés et valeurs valides pour les différentes maps.
Color Codes
Vous pouvez également attribuer des couleurs ou mettre le texte en gras en utilisant les modificateurs suivants :
| Code | Couleur | Exemple |
|---|---|---|
| &4 | Rouge foncé | &4Exemple rouge foncé. |
| &c | Rouge | &cExemple rouge. |
| &6 | Orange | &6Exemple orange. |
| &e | Jaune | &eExemple jaune. |
| &2 | Vert foncé | &2Exemple vert foncé. |
| &a | Vert | &aExemple vert. |
| &b | Aqua | &bExemple aqua. |
| &3 | Aqua foncé | &3Exemple aqua foncé. |
| &1 | Bleu foncé | &1Exemple bleu foncé. |
| &9 | Bleu | &9Exemple bleu. |
| &d | Violet clair | &dExemple violet clair. |
| &5 | Violet foncé | &5Exemple violet foncé. |
| &f | Blanc | &fExemple blanc. |
| &7 | Gris | &7Exemple gris. |
| &8 | Gris foncé | &8Exemple gris foncé. |
| &0 | Noir | &0Exemple noir. |
| &r | Réinitialiser couleur | &rExemple de réinitialisation. |
| &l | Gras | &lExemple gras. |
| &o | Italique | &oExemple italique. |
| &n | Souligné | &nExemple souligné. |
| &m | Barré | |
| &k | Aléatoire | &k &fexemple. |
Comme vous pouvez le voir dans les exemples, les modificateurs suivent la syntaxe Minecraft régulière sauf que le § est remplacé par un & lorsqu'il est utilisé avec EliteMobs. Vous pouvez utiliser cela pour modifier la plupart du texte EliteMobs tel que les noms de mobs, le texte de quête, les noms de donjons, etc.
Notez que lorsqu'il fonctionne correctement, les modificateurs eux-mêmes ne s'afficheront pas dans votre texte. Ils ne sont affichés ici qu'à des fins de démonstration.
Il est également possible de combiner des couleurs et d'autres modificateurs de texte. Par exemple, vous pouvez faire :
Si nous voulions que notre mob personnalisé ait un joli nom coloré fantaisiste, nous ferions ce qui suit :
name: "$normalBossLevel &aScary &dDragon"
Depuis EliteMobs 10, vous pouvez également utiliser des dégradés de couleur pour n'importe quel texte EliteMobs, comme dans cet exemple :
name: "&cNormal Red Text <gradient:#FF6B00:#FFD700:#FFFF00> Cool Gradient Text </gradient>"
Dans cet exemple :
&capplique la couleur rouge standard au texte précédant le dégradé.<gradient:...>commence la définition du dégradé.#FF6B00,#FFD700et#FFFF00sont les couleurs du dégradé.Cool Gradient Textest le texte auquel le dégradé s'applique.</gradient>termine la section du dégradé.
Seul le texte situé à l'intérieur des balises de dégradé est affecté ; le formatage en dehors des balises reste inchangé.
Les dégradés ne sont plus réservés à EliteMobs. L'analyseur de texte se trouve dans MagmaCore ; la même syntaxe fonctionne donc dans les champs de texte compatibles de tous les plugins qui l'intègrent, avec les autres balises MiniMessage (<rainbow>, <#RRGGBB>, les couleurs nommées comme <red>, les décorations comme <bold>, etc.).
Material
Les valeurs Material sont simplement des Materials que vous pouvez trouver dans MineCraft, comme IRON_CHESTPLATE. Pour une liste de Material valides, consultez cette page.
helmet: IRON_HELMET
Les Material sont utilisés comme valeurs dans plusieurs paramètres tels que l'équipement pour les mobs, le butin, les récompenses de quête, etc.
Filename
Les valeurs Filename sont simplement des fichiers de configuration .yml qui sont formatés pour être utilisés avec les plugins de MagmaGuy. Ceux-ci peuvent être n'importe quoi, des items aux quêtes.
uniqueLootList:
- filename: magmaguys_toothpick.yml
Réduction des mondes
Vous pouvez réduire la taille d'un monde à distribuer en supprimant le terrain indésirable avec un outil compatible comme WorldBorder. Vérifiez la prise en charge de la version exacte de votre serveur et travaillez sur une copie de sauvegarde ; une ancienne liste de compatibilité ne prouve pas la prise en charge d'un format de monde plus récent.
Details
Conseil
Si vous faites cela pour la première fois, il serait peut-être judicieux de créer une sauvegarde de votre monde au cas où quelque chose tournerait mal.Une fois le plugin installé, naviguez vers le milieu du monde ou la zone spécifique que vous souhaitez découper. Ensuite, exécutez la commande /wb set x, où x représente la taille approximative du rayon que vous souhaitez pour votre zone.
Details
Conseil
Si/wb ne fonctionne pas pour vous, essayez /worldborder:wb.Après avoir exécuté cette commande, volez jusqu'aux bords de votre monde pour vérifier que la bordure du monde a été correctement définie et couvre la taille prévue. Vous reconnaîtrez avoir atteint le bord de la bordure du monde lorsque vous serez repoussé, accompagné d'un message dans le chat.

Dans l'image ci-dessus, nous visons à découper le monde autour des blocs violets, ne laissant que quelques chunks autour d'eux. Pour y parvenir, nous nous tenons au milieu de la zone violette sur les carrés rouges et exécutons /wb set 50, définissant la bordure du monde juste au-delà de la zone violette.
Utilisez ensuite /wb trim [freq] [pad]. La marge est mesurée en blocs, et la fréquence contrôle le nombre de chunks vérifiés par seconde. /wb trim 200 20 vérifie jusqu'à 200 chunks par seconde en conservant 20 blocs au-delà de la bordure. Inspectez cette marge et augmentez-la si nécessaire avant de confirmer avec /wb trim confirm. Ces unités sont définies dans la commande trim de WorldBorder.
Supprimez la bordure de ce monde gérée par le plugin avec /wb clear en restant dans ce monde, ou laissez-la en place.
Réduction du dossier du monde
Arrêtez le serveur et travaillez sur une copie de sauvegarde. Ne supprimez pas tout sauf region, raids.dat et level.dat : le terrain, les entités, les points d’intérêt et les données des dimensions peuvent être nécessaires. Conservez la structure réellement utilisée par votre serveur et votre plugin.
Dans les anciens mondes Vanilla, le Nether utilise DIM-1 et l’End utilise DIM1. Depuis Vanilla 26.1, les dimensions par défaut se trouvent dans dimensions/minecraft/overworld, dimensions/minecraft/the_nether et dimensions/minecraft/the_end, avec leurs dossiers region, entities et poi. La structure requise dépend du logiciel et de sa version. Importez la copie sur un autre serveur et vérifiez le monde avant de le distribuer.