Aller au contenu principal

btcsky_menu

BTC Sky Menu — action entry.

Entry Information

PropertyValue
Entry IDbtcsky_menu
TypeAction
ColorOrange
Iconfa6-solid:table-list

Description

Action entry that opens a configurable Island Control Panel. Three rendering modes: 1. FrameLayout (recommended): If the [layoutPool] contains a [FrameLayoutData] entry, the menu is rendered as a FrameLayout with dynamic content switching based on [tabId]. The content frame's layoutId is resolved as "${tabId}_content" from the pool. Sidebar tabs use "btcsky_tab:" prefix for active highlighting. Content buttons use "btcsky_button:" prefix for dynamic resolution. 2. Flat layout (fallback): If no FrameLayoutData is found, behaves like the original implementation — shows the layout matching [tabId] or [mainLayoutId] from the pool. Example FrameLayout pool configuration: json { "id": "control_panel", "type": "btcsky_menu", "tabId": "accueil", "layoutPool": [ // 1. FrameLayout defines the 3-column structure {"case":"frame","value":{ "id":"cp_main", "frames":[ {"id":"sidebar","x":0,"y":0,"width":4,"height":6,"layoutId":"sidebar_scroll"}, {"id":"nav", "x":4,"y":0,"width":1,"height":6,"layoutId":"nav_layout"}, {"id":"content","x":5,"y":0,"width":4,"height":6,"layoutId":"accueil_content"} ] }}, // 2. Sidebar (scrollable with 13 tab buttons) {"case":"scrollable","value":{"id":"sidebar_scroll","virtualWidth":4,"virtualHeight":6,"innerId":"sidebar_inner","buttons":[]}}, {"case":"simple","value":{"id":"sidebar_inner","virtualWidth":4,"virtualHeight":13,"items":[ {"x":0,"y":0,...,"buttonType":"accueil","buttonPrefix":"btcsky_tab:","interactionList":[{"type":"LEFT_CLICK","commands":["island cp accueil"]}]}, ... ]}}, // 3. Navigation (scroll up/down in nav column) {"case":"simple","value":{"id":"nav_layout","virtualWidth":1,"virtualHeight":6,"items":[ {"x":0,"y":0,...,"commands":["gui:scroll 0 -1 sidebar_scroll"]}, {"x":0,"y":5,...,"commands":["gui:scroll 0 1 sidebar_scroll"]} ]}}, // 4. Per-tab content layouts (name format: {tabId}_content) {"case":"simple","value":{"id":"accueil_content","virtualWidth":4,"virtualHeight":6,"items":[...]}}, {"case":"scrollable","value":{"id":"island_content",...}}, ... ] }

Fields

FieldTypeDescription
inventoryTitleVar<String>Menu title (shown by default). Each tab can override via tabTitles.
tabTitlesMap<String, String>Per-tab title overrides. Key = tabId, value = MiniMessage title string. Falls back to inventoryTitle when absent or empty.
inventoryRowsIntRows.
guiTypeGuiTypeGUI type.
tabIdStringTab.
layoutPoolList<LayoutData>Layout pool.
mainLayoutIdString?Main layout.
audioGuiAudioDataAudio.

Usage Example

- entry: btcsky_menu
name: "BTC Sky Menu"
inventoryTitle: ""
tabTitles: ""
inventoryRows: 0
guiType: ""
tabId: ""
layoutPool: []
mainLayoutId: ""
audio: ""