Guild Menu
Guild Menu
Entrée d'action qui ouvre le menu de guilde, piloté par le système de vues générique de GUIExtension ([MenuViewSupport]). Une seule entrée déclare tous ses écrans dans [views] : les frames en @view prennent le layout de la vue active et les slots taggés view:<id> sont câblés et surlignés par le socle. Les têtes de membres restent injectées au rendu, donc la liste suit la vue ouverte. Avec [views] vide, le pool est lu à plat exactement comme avant.
Fields
| Field | Type | Default | Description |
|---|---|---|---|
inventoryTitle | Var<String> | <dark_gray>Guilde | Title of the menu.PlaceholdersColors |
view | String | main | Écran affiché quand l'entrée ne déclare aucune vue. Ignoré dès que 'views' est renseigné. |
inventoryRows | Int | 6 | Number of inventory rows (1-6). |
guiType | GuiType | CUSTOM | GUI type. |
layoutPool | List<LayoutData> | empty | Pool of layout definitions. Items with `buttonType` are resolved dynamically. |
mainLayoutId | String? | — | ID of the main layout from the pool. |
views | List<MenuViewData> | empty | Écrans adressables de ce menu. Les frames en '@view' et les slots taggés 'view:<id>' se résolvent contre la vue active. |
defaultViewId | String? | — | Vue ouverte en premier. Vide = la première vue déclarée. |
memberListViewIds | List<String> | empty | Vues qui listent les membres de la guilde. Aucun id n'est codé en dur : c'est la page qui les range ici. |
joinListViewIds | List<String> | empty | Vues qui listent les invitations en attente du joueur (écran 'Rejoindre'), filtrées par la recherche en cours. Aucun id n'est codé en dur. |
breadcrumbSeparator | String | DEFAULT_BREADCRUMB_SEPARATOR | Séparateur MiniMessage inséré entre les segments du fil d'Ariane par le token {breadcrumb}.Colors |
baseMenuId | String | — | Entrée open_gui servant de châssis partagé : son layoutPool et ses vues fusionnent sous les nôtres. |
contentX | Int | 1 | X origin of the content panel where member heads are injected (right side of a 4/1/4 frame). |
contentY | Int | 0 | Y origin of the content panel where member heads are injected. |
contentColumns | Int | 7 | Number of columns available in the content panel for member heads. |
contentRows | Int | 7 | Number of rows available in the content panel for member heads. |
audio | GuiAudioData | — | Audio configuration. |
Common TypeWriter fields (criteria, modifiers, triggers)
| Field | Type | Default | Description |
|---|---|---|---|
criteria | List<Criteria> | empty | — |
modifiers | List<Modifier> | empty | — |
triggers | List<Ref<TriggerableEntry>> | empty | — |
How to use it
One Guild Menu entry holds every screen of the guild interface. Open it with /guild or by triggering it from another entry.
- Declare the screens in
views. Frames withlayoutId@viewand slots taggedview:<id>follow the active screen. See Views, tabs and inheritance. - Put the ids of the screens that list the guild's members in
memberListViewIds. Put the id of the invitations screen injoinListViewIds. Other screens show no list. - Mark items with a
buttonType(GUILD_MEMBERS,GUILD_LEAVE,PAGE_NAV, and so on). The page owns the look of each item; the extension only adds the click action. - For actions that need a name (create, invite, kick, promote, transfer), set an
inputdialog on the item and runguild <action> {input}inonInputCommands.
Without views, the menu has one screen chosen by view: members lists members, join lists invitations, any other value lists nothing.
Buttons that do not apply to the player's guild state are removed from the layout when the menu opens, so you can lay out every button and let the menu hide them.
Set baseMenuId to an open_gui entry to reuse a shared frame. Its layouts and views are merged under this entry's.