11. Menus de job : sur-mesure et modèle par défaut
11.1 Le modèle par défaut (gui/jobs/_default/)
Six fichiers : main.yml, actions.yml, levels/page-1.yml,
rewards/page-1.yml, stats.yml, top.yml. N'importe quel job qui ne
définit pas son propre fichier utilise automatiquement celui-ci — c'est ce
qui permet à un job de fonctionner avec zéro configuration GUI.
Exemple concret : hunter.yml n'a aucun fichier dans gui/jobs/hunter/.
Quand un joueur clique sur "Chasseur" dans la liste, le plugin cherche
gui/jobs/hunter/main.yml, ne le trouve pas, et ouvre
gui/jobs/_default/main.yml à la place — avec le contexte du job Chasseur
(%job% = hunter, %job_display% = "Chasseur", etc.).
11.2 Personnaliser un seul menu d'un job
Tu n'es pas obligé de tout recréer. Si tu déposes seulement
gui/jobs/hunter/main.yml (sans les autres), ce fichier précis est utilisé
pour le menu principal, et tous les autres menus (actions, niveaux,
récompenses, stats, top) continuent d'utiliser le modèle par défaut. La
résolution se fait fichier par fichier, pas dossier par dossier.
11.3 Le Reward Train avec icônes par statut (l'exemple complet)
gui/jobs/miner/rewards/page-1.yml (et son équivalent _default) montre le
mécanisme content-item-states en situation réelle :
content-item-states:
locked:
provider: VANILLA
material: MINECART
name: "<gray>Palier %level% <dark_gray>(verrouille)"
lore:
- "<gray>Statut : <red>Verrouille"
- "<gray>Contenu : <white>%rewards%"
- ""
- "<dark_gray>Atteins le niveau %level% pour le debloquer."
available:
provider: VANILLA
material: CHEST_MINECART
glow: true
name: "<green>Palier %level% <white>(disponible !)"
lore: ["..."]
claimed:
provider: VANILLA
material: LIME_WOOL
name: "<dark_green>Palier %level% <white>(recupere)"
lore: ["..."]
items:
content-item:
animation: reward-train
click-conditions:
- "placeholder %status% != CLAIMED"
actions:
- "[claim] %level%"
- "[sound] ENTITY_PLAYER_LEVELUP"
deny-actions:
- "[sound] BLOCK_NOTE_BLOCK_BASS"Chaque wagon passe automatiquement de minecart vide (verrouillé) à
wagon-coffre brillant (disponible, cliquable) puis à laine verte (récupéré,
plus aucune action), sans une ligne de Java. L'animation reward-train
(section 9) continue de clignoter par-dessus l'icône du statut courant.