Aller au contenu principal

Vues, onglets et héritage

Une vue est un écran d'un menu. Toutes les vues partagent la même structure (la barre d'onglets, le pied de page), et seul le contenu change.

Déclarer des vues​

Dans views, ajoutez une entrée par écran :

ChampRôle
idUtilisé par gui:view et par les onglets.
nameLibellé utilisé dans le fil d'Ariane. Se rabat sur l'id.
titleTitre de cette vue. Vide, il conserve le titre du menu. Accepte {breadcrumb}, {view} et {root}.
parentIdVue parente, pour le fil d'Ariane et pour garder allumé l'onglet du parent.
framesCorrespondance explicite entre l'id d'un cadre et l'id d'une disposition.
criteria, viewPermissionLa vue est inaccessible et son onglet masqué lorsqu'ils ne sont pas satisfaits.
activeStyleL'apparence de l'onglet lorsqu'il est actif : glint, material, customModelData, nameFormat, loreSuffix.

Sur l'Open GUI, defaultViewId est la vue ouverte en premier (la première déclarée si vide). breadcrumbSeparator est le texte MiniMessage placé entre les segments du fil d'Ariane, et pushHistoryOnViewSwitch fait revenir gui:back à la vue précédente après un changement d'onglet.

Remplir les cadres​

Dans une disposition frame, définissez le layoutId d'un cadre sur @view. Pour la vue active, l'extension cherche la disposition dans cet ordre :

  1. la correspondance frames de la vue pour l'id de ce cadre ;
  2. une disposition nommée <view id>_<frame id>, par exemple island_content pour le cadre content et la vue island ;
  3. les deux mêmes recherches le long de la chaîne parentId.

Un cadre qui ne se résout sur rien reste vide. Seule la disposition racine du menu (mainLayoutId) résout les cadres @view.

Onglets​

Donnez à un objet onglet buttonPrefix view: et un buttonType égal à l'id de la vue. Un clic bascule vers la vue, et l'onglet prend l'activeStyle de la vue tant que celle-ci, ou l'un de ses enfants, est active. Les onglets des vues inaccessibles sont masqués.

La première vue accessible au joueur est utilisée lorsque celle demandée est masquée. Une vue demandée qui n'existe pas est journalisée sous la forme Unknown view.

Hériter d'un menu​

baseMenuId est l'id d'entrée d'un Open GUI servant de modèle. L'enfant hérite de son layoutPool, de ses views, de mainLayoutId, de defaultViewId et de size, et la chaîne est suivie jusqu'à la racine : un menu peut donc hériter d'un modèle de domaine qui hérite lui-même d'une structure globale. Une disposition de l'enfant ayant le même id remplace celle héritée, et il en va de même pour les vues. Le storagePool n'est hérité que du parent direct. Un mainLayoutId vide sur l'enfant utilise celui du parent.

Vérifiez que le parent existe, que chaque layoutId existe dans le pool fusionné, et que deux menus n'héritent pas l'un de l'autre.

En pratique​

Créez un menu modèle avec un cadre d'onglets fixe et un cadre de contenu @view, puis créez un enfant par domaine qui ne remplace que les dispositions de contenu. Les dispositions de contenu peuvent être simple, scrollable ou paginated sans toucher à la barre d'onglets.