Party Menu
Open Party Menu
Entrée d'action qui ouvre le menu de groupe, 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 sont injectées au rendu, dans le panneau [contentX]/[contentY]. Avec [views] vide, le pool est lu à plat exactement comme avant.
Fields
| Field | Type | Default | Description |
|---|---|---|---|
inventoryTitle | Var<String> | <dark_gray>Groupe | Title of the menu.PlaceholdersColors |
view | String | members | É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 (frame/simple/scrollable). |
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 du groupe. 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 | 5 | 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 | 4 | 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 (triggers, criteria, modifiers)
| Field | Type | Default | Description |
|---|---|---|---|
triggers | List<Ref<TriggerableEntry>> | empty | — |
criteria | List<Criteria> | empty | — |
modifiers | List<Modifier> | empty | — |
How to use it
One Party Menu entry carries every screen of the party interface. /party opens the first one found, or trigger it from another entry.
- Declare the screens in
views(for examplemembersandjoin). Frames withlayoutId@viewand slots taggedview:<id>follow the active screen. See Views, tabs and inheritance. - Put the screens that list members in
memberListViewIds, and the invitation screen injoinListViewIds. Other screens show no list. - Set
buttonTypeon items.PARTY_MEMBERSandPARTY_JOINopen screens,PAGE_NAVpages through a list. Other party buttons carry no action: add the command yourself. - Place the head grid with
contentX,contentY,contentColumnsandcontentRows.
Without views, the menu has a single screen chosen by view: members lists members, join lists invitations.
On the member screen the leader kicks a member with a left click. On the join screen, left click joins the party and right click declines. To let players filter invitations by leader name, give an item an input dialog running party joinsearch {input}.