Releases: Maxlego08/zMenu
Releases · Maxlego08/zMenu
Bedrock is now available !
New Features
- Bedrock Inventory Support: Added full Bedrock inventory support via Geyser/Floodgate integration. Includes Bedrock-specific actions, buttons, input builders (with placeholders support and legacy color code conversion), drag button, inventory replacement, dialog support, and Bedrock player validation.
- Inventory Replacement: Implemented inventory replacement functionality, allowing inventories to be dynamically replaced across various classes.
- ItemStack Build Context: Added
ItemStacksupport to build context and updated durability handling in menu item stack. - PaperProfileComponent: Added new
PaperProfileComponentfor Paper-specific profile handling.
Bug Fixes
- Clear Inventory + BACK Button: Fixed items being restored to the player when clicking a BACK button between two inventories with
clear-inventory: trueandclear-inventory-type: PACKET_EVENT. Items are now physically cleared from the player inventory during storage, ensuring container content packets don't reveal hidden items. The close handler also uses physical restoration (giveInventory) instead of packet-based restoration. - Item Pickup with Clear Inventory: Fixed items being picked up by the player when
clear-inventoryis enabled. - Lore Metadata Duplication: Fixed "lore" metadata duplication when loading items.
- Color Handling: Fixed and simplified color handling for leather armor and banner patterns in
MenuItemStackLoader. - NPE Fix: Fixed null pointer exception.
- Import Fix: Fixed import for
ZBuildContextinItemEditAction. - API Errors: Fixed errors and updated API version.
Improvements
- Requirement Configuration Validation: Added validation for
click-requirement,view-requirement, andopen-requirementconfigurations. Detects common misconfiguration where users place requirement keys directly under the requirement section instead of using named groups (for click-requirement) or arequirementslist (for view/open-requirement). Displays a clear warning message with an example of the correct structure and a link to the documentation. - Inventory Lookup Optimization: Optimized inventory lookup with a map cache for better performance.
- CraftEngine Compatibility: Updated compatibility with the latest version of CraftEngine.
- Color Parsing: Added color parsing support.
Changes
- Time Placeholders: Changed
time_unix_timestamp,time_next_day_unix_timestamp, andtime_today_start_unix_timestampplaceholders to return values in seconds instead of milliseconds.
Internal Changes
- Standardized method parameter annotations to use
@NonNullacross action and button classes. - Standardized
thiskeyword usage in method return statements for clarity. - Streamlined item stack creation by consolidating special item stack application.
- Enhanced click handling in
Buttonclass and simplified click requirement configuration. - Updated Nexo dependency version.
- Updated Gradle repositories URL for Floodgate.
- Removed unused library files (
FirstCore.jar,zEssentials.jar,zMenu-1.1.0.0.jar). - Removed debug messages.
DeluxeMenus Support !
- Added support for DeluxeMenus configurations. You no longer need to convert your DeluxeMenu configurations to zMenu, they are now automatically compatible!
- Added command /zm documentation []
- Added key title for inventory name, you can use name or title now
- Fixed itemstack with 1.21, components was added when it should not be added by default.
- Fixed the item backup system for potions and firework (use in /zm save command and in zEssentials)
Bug fix + translated inventory !
- Fix nullable player in MenuItemStack
- Add
performMainActionfor commands, allows to activate or not the main actions of the command. This allows you to
create commands with arguments without opening an inventory for example. #89 - Add the possibility to have several languages for the lore and name of items and inventory name. Depending on the player’s game language
you can set other messages and make your server international - Remove
ecofrom plugin.yml, this caused problems loading various plugins - Tab completes for more of the sub commands #75
Better commands and download !
- Create new placeholder
%zmenu_player_next_page%, return player next page - Create new placeholder
%zmenu_player_previous_page%, return player previous page - Create new requirement:
playername, Check if a text is a player nickname - Fixed the display of a button with a playerHead if the text is not a
playerHead. This avoids server lag when opening inventory. - Fixed Numbers saved in PlayerData are not Numbers after a restart. #59
- Added Placeholder in head url #58
- Added Action - Data placeholder #56
- Expand player data commands with add & subtract #46
- New features for Commands (Perform action and Auto-completion) #26
- You can now open a book
- Create
/zm download <link>command. You can download configuration files from links, discord links for example.
Button Patterns
- Added support for zHead. A free and open source head database plugin (with more than 72.000 heads)
- Create new placeholder
%zmenu_player_page%, return player page - Create new placeholder
%zmenu_player_max_page%&, return player max page - Change NEXT and PREVIOUS button. If you click right you will go directly to the first or last page.
- Improve MiniMessage format with italic text
- Create new file:
default_values.yml, it will contain all the default values for the placeholders of the player data. - Create pattern for Button. You can create a pattern file for a button with placeholders. And in your inventory, just call the pattern with a placeholder list. The placeholders will be replaced by your values and the button will be loaded with the new values. Thus, you can have dozens of similar buttons while reducing your configurations by several hundred lines. More information here.
- Creation of 5 configurations for zMenu:
- PLAYTIME LEVELS - zMenu Configurations: https://minecraft-inventory-builder.com/resources/9
- VOTE MENU - zMenu Configurations: https://minecraft-inventory-builder.com/resources/8
- DONUTSMP HOME - zMenu Configurations: https://minecraft-inventory-builder.com/resources/7
- zAuctionHouse - Hypixel AuctionHouse: https://minecraft-inventory-builder.com/resources/6
- zAuctionHouse - DonutSMP AuctionHouse: https://minecraft-inventory-builder.com/resources/5
Inventory Editor Ingame !
- Add /zm inventories - Allows access to the inventories of the online inventory editor
- Add PlayerInteractEvent in DupeListener
- Fix classic meta with PAPI color
- Fix NPE with ButtonOption
API Change
- Start of development of the zMenu+ paid addon. This addon will be available with the purchase of Premium upgrade.
- Huge API Change. This change introduces zMenu+
- Create ButtonOption, allows any developer to add options that will be available for all types of buttons.
- Create PaginateButton interface. This interface allows you to create buttons that need pagination. This interface will manage the number of pages in the inventory.
- Add matrix support for button slots #39
- Add /zm editor, at the moment this command redirects to the online editor
- Add target placeholder #48
- Fix reload command with pattern. The pattern were reload after the inventories
- Fix error with InventoryPlayer
- Fix NmsVersion with 1.8 and 1.9
- Fix anti-dupe for old version
- Fix MenuItemStack loader with placeholder check
- Fix CONTAINS_STRING action for placeholder
- Fix NMS with 1.20.4
- Fix method
getRealSlotwith isPermanent
Yeah, that nice (i dont have any idea for update name plz help)
- Add BlockPlaceEvent for Anti Dupe
- Add placeholder %zmenu_test% for testing
- Fix sound action, pitch and volume was reversed
- Add
jobrequirement. Check if the player has a job with JobsReborn plugins - Added a cache on placeholders. By default, the cache is 500ms. That corresponds to opening a menu. So if you have several times the same placeholder used, it will only be called once.
First beta for Inventory Editor
- Beta of https://minecraft-inventory-builder.com/
- Add new lore as string support
- Fix itemstack amount of 0
- Support file with space
- Improved API, added many new methods to make API more permissive.
- Patterns can now be on multiple pages
- Add custom sound to SoundOption
- Added ability to add arguments and select page for INVENTORY button #45
- Change update interval to milliseconds #37
Yeah, bug fix and new features
- Added replacement of , by . for placeholders requirements. If your placeholder returns a number with a comma instead of a period, the plugin can handle that.
- Added base64 MaterialLoader. Allows to load ItemStack with all the data it can contain.
- Added cooldown on button click. The default cooldown will be 350ms.
- Fix Folia with VersionChecker #35
- Fix error with mini message format in 1.16
- Fix JUMP Button
- Change
/zm save <item name> <base64/yml>, saves an element in YML or base64 format. The base64 format will save the itemStack with all its data. - Change
pagefrom JUMP Button totoPage