
CommandPanels
The Complete GUI Plugin. Easily create custom menus, interactive dialogs, and Bedrock/Floodgate GUIs. Whether you need complex logic, animations, or speed by using the Online Editor, CommandPanels is powerful option for modern Paper and Folia servers.
Dynamic Logic Update
- Added session eval tag
Dynamically change data values based on conditional logic with
[session] eval <key> :: <conditions> :: <true_val> :: <false_val> - Added refresh commands inventory panels. These will run on every refresh of the panel, not just when it initially opens (runs after open commands)
- Condition parser no longer parses underscores to spaces. spaces are now supported. If you were using underscores in your conditions due to this, you can now revert those back to spaces.
- Folia (CanvasMC specific) fix to open panels via console commands
- Add file name to generator output
- Skip cancelled PlayerCommandPreprocessEvent
- Permission observer moved to hashset to avoid object retention
- Small optimisations to command tags
- Added session eval tag
Dynamically change data values based on conditional logic with
Small fixes
- Moved to CraftEngine's new API so that it continues to work on newer versions
- Added
after-actionfor dialogs, this can be used to prevent mouse resets on screen when moving between dialogs
Small additions and updates
- Simplified stopsound command tag
- craftengine support added with material tag, eg
[craftengine] default:bench - Now supporting MC 26.1.2
Small stability improvements
- Added the ability to use custom attributes to item materials, such as:
material: lime_dye[max_stack_size=99] - Folia bug fix that causes an error when closing containers
- Player items now return to the players inventory on panel refreshes
- Added the ability to use custom attributes to item materials, such as:
Small features and other improvements
- Panel close commands no longer run on panel refreshes
- Language file (lang.yml) can now be regenerated on reload, not just server restarts
- [item] tag will now return a pass if item amount required is 0 as expected
- Using
-sin the /pa open command will now silence plugin responses (useful to keep console logs clear) - Newline can now be used in item lores for new lines
New features and some bug fixes
- Colours will no longer parse inside dialog input fields
- Colours will no longer parse on command execution
- Inventory lock added, when enabled players will not be able to move their inventory items while a panel is open
- Messages will not send if set to an empty string in the lang file
- Close commands has been added, commands run when panel is closed (only works on Inventory Panels)
- Commands (open commands) layout has been updated. (See Below)
Before:
commands: - '[msg] Panel has been opened'After:
open: commands: - '[msg] Panel opened'The change was made to keep it uniform with outside and close commands, and it now supports requirements and fail by using the Command Actions system.
Bug fixes and head improvements
- Command event is correctly cancelled when players have no permission to open the panel
- Fixes commands running after the panel is already open
- Custom heads methods improved, queue added to avoid timeouts
Enhancements and bug fixes
- Inventory panels now have outside commands (commands can be defined when clicking outside the GUI)
- Fixes teleport tag when using folia
- Added the Permission Observer feature. The Permission Observer can be disabled in the config.yml, it will detect which permissions are used in a panel, and will automatically refresh the panel when those permissions change for the player
- Data will save to file more frequently than just on server close
Minor update release
- Moved plugin to 1.21.9 (this version had had extra testing on 1.21.7 - 1.21.10)
- Added support for Folia servers
- Colour parsing has been overhauled, now supports all colour formats at the same time
- Added missing default field for dropdown in floodgate forms
- [delay] tag has been added.
- Session logic between panels has been simplified and other optimisations have been made
- Cooldown between opening panels has been added (configurable in config.yml)
- There is no longer a requirement for a minimum of one item to be in inventory panels
Important note when updating
[refresh] numberno longer works, use the new [delay] tag instead to delay your refresh
Small bug fixes and improvements
- Improvements for custom heads, now using Papers API
- Added missing width and height properties for Dialog Item and Text components
- Bundle and Shulker box attributes will now be hidden when attributes are toggled off
- Fixes armour trims, some options missing/ did not work correctly
Language Updates
- Fixes so sound tag can now play resource pack sounds
- Music disc attributes are now hidden
- Language file has been improved, now generates a lang.yml file by default with all translation keys included
- Old language files will no longer work, new ones are much easier to use and will take just a couple minutes to migrate to
Bug Fixes and Improvements
- Conditions cannot contain spaces, placeholders that contain spaces will change them to underscores
- Removes no vault error messages for some when vault isn't configured fully on their server
- Different panels can now contain the same base command, eg
/shop redstoneand/shop farmingfor different panels - Conditions to open a panel can now contain arguments from open commands
- Fixes for placeholders, no longer break when reloading placeholderapi
- Other placeholders using brackets can now be used inside commandpanels placeholders
- Conditions now work in requirements section (condition tag has been added)
Bug fixes
- Conditions do not accept spaces so spaces in placeholders will automatically be replaced with underscores
- MMOItems material tag fixed
- Label component type missing from floodgate forms has been added
- Dependencies loop problem fixes
- Vault tag no longer provides errors with economy problems (likely just not using vault)
- Fixes range in dialogs no longer always outputs true
Fixes and additions
- Data placeholder now accepts optional player name to read other players data
- Added
[grant]command tag, execute a chat/command for the player while granting the player a specific permission to run the command temporarily [msg]tag now allows ALL minimessage functionality (eg hover text)- Fixes to some attributes not being hidden (fireworks)
- Errors when conditions are invalid will now state the error is due to conditions
- Fixed double chests not working when generating panels in game
Alias feature and fixes
- Added aliases which can now be used for commands to open panels
- Itemsadder and Nexo fixed, now loads correctly (before commandpanels)
- Adventure api removed from dependencies, already bundled in paper
Bug fixes and improvements
- Moved from plugin to paper-plugin
- Fixes issues with panels not updating automatically while open
- Fixes animations
- Fixes [previous] command tag
- Some improvements to commandpanels data methods
Server tag fixes
- Adds missing channel register code for server command tag
Bug fixes and small features
- [item] requirement tag now has custom model data support
- Custom model data can now be used with numbers instead of just strings
- Conditions will now ignore colour formatting
- Refresh tag now has an optional delay function
Bug Fixes & Improvements
- Resolves issues with custom heads saving their state across panels from cache
- Fixes item names on items such as potions
- Conditions now parse ignoring color codes
- Session data & panel data no longer parse color prematurely
- Changed the default for color from legacy codes to mini message
- Session data is now persistent while the player is online instead of only during panel interaction, this resolves issues with data being cleared after panel refresh

