FioMenu Update - Changelog
(1.14)
- Geyser Bedrock UI Core Integration
- Implemented full Bedrock UI integration path for FioMenu via Geyser/Floodgate runtime flow, including automatic Bedrock form rendering for supported menu types.
- Added dedicated bedrock_fio_menus folder for Bedrock-exclusive UI definitions so Bedrock data structure is fully separated from Java GUI structures.
- Added menu-link support via menu.bedrock: "<id>", allowing Java menu definitions to point directly to Bedrock form files.
- Improved Bedrock runtime resolution so Bedrock players open Bedrock UI flows while Java players continue using Java inventory GUI flows.
- Bedrock Form Type Expansion
- Added support for Bedrock SIMPLE, CUSTOM, and MODAL form routing under the Bedrock menu pipeline.
- Expanded form compatibility logic for content/title rendering and action execution across all supported Bedrock form types.
- Button and Image Options for Bedrock UI
- Added button.line1 and button.line2 support for Bedrock button text composition.
- Added image.type and image.url support for Bedrock button image sources.
- Added image.type variants: NONE, CUSTOM, and PATH.
- Improved button text behavior so line separation is preserved and does not get compacted into a single unreadable line.
- Text Rendering and Bedrock Alignment
- Added Bedrock content alignment tags: <align:center>, <align:left>, and <align:right>.
- Improved Bedrock align parsing compatibility to process both </align> and directional closers like </center>, </left>, </right>.
- Refined Bedrock align spacing/width handling so centered and right-aligned content appears visually closer to expected positions in Bedrock custom form content areas.
- Added MiniMessage-to-Bedrock color rendering compatibility improvements so styled text is translated more consistently for Bedrock clients.
- Input/Label UI Behavior Additions
- Added behavior.mustInput: true/false for Bedrock custom form input fields.
- Added behavior.respectBannedChars: true/false for Bedrock custom form input validation.
- Added configurable reopen behavior flow when blocked text is detected, so menu can reopen the same target form after validation fail logic.
- Added/updated blocked words configuration path in config.yml using:
- bannedChars.blacklisted_words
- Dropdown UI Behavior and Remember System
- Added behavior.mustRememberValue: true/false for Bedrock dropdown forms.
- Added behavior.placeholdertoRemember: <value> for placeholder-based default resolution in dropdown forms.
- Added behavior.dropdown.toRemember: <value> mapping support to bind placeholder values to visible option labels.
- Added placeholder.header support for dropdown field title customization.
- Added options support for dropdown visible entries.
- FioMenu now remembers the chosen dropdown option per player and can restore the selected state when reopening the same Bedrock menu.
- Checkmark UI Behavior and State Control
- Added behavior.checkmark.behavior.placeholder_true: <value> support for true-state placeholder matching.
- Added behavior.checkmark.behavior.placeholder_false: <value> support for false-state placeholder matching.
- Added actions.placeholder_true and actions.placeholder_false branches for state-based checkmark action execution.
- Implemented per-player/per-menu/per-field checkmark remember logic to prevent full-form action spam when only specific toggles are changed.
- Improved checkmark execution flow so actions run only for options whose state actually changed, keeping toggle behavior cleaner and more deterministic.
- Improved compatibility for placeholder-driven toggles (including Essentials-style placeholder state checks) to keep UI state synchronized even when command toggles are also used outside the form.
- Slider UI Enhancements
- Added behavior.value.min and behavior.value.max for numeric slider boundaries.
- Added behavior.slider.per_slide for numeric step size control.
- Added behavior.slider.default for default slider value/index.
- Added behavior.type: "value" | "text" for explicit slider mode selection.
- Separated runtime token behavior so numeric mode and text mode are no longer mixed:
- %bedrockSliderValue% dedicated for numeric slider mode.
- %bedrockSliderText% dedicated for text slider mode.
- Added compatibility fallback for Bedrock slider method signatures across Cumulus/Floodgate variants to reduce runtime reflection failures.
- Added step-slider compatible path for text-mode slider so option-based text selection can render as text-oriented selection flow instead of raw numeric-only behavior when API support exists.
- Action/Command Routing Improvements
- Standardized open action usage toward [OPEN_MENU] for both Java and Bedrock menu transitions.
- Added/expanded command and alias routing support on Bedrock form definitions via:
- menu.command
- menu.aliases
- Improved handling for Bedrock menu command aliases so alias triggers can resolve to the same Bedrock target menu consistently.
- Configuration and Structure Cleanup
- Removed legacy/unused example Bedrock form file variants as requested to avoid redundant structures.
- Updated Bedrock example structures to keep Java and Bedrock menu responsibilities clearly separated:
- Java: fio_menus/<menu>.yml
- Bedrock: bedrock_fio_menus/<menu>.yml
- Refined multiple sample Bedrock menu configs (example, settings, warps, ranksshop, label, dropdown, checkmark, slider) to follow the newly expanded structure and action system.