AuMenus icon

AuMenus -----

Lightweight, open-source alternative to Deluxemenus for Paper and Folia 1.21.1+




v1.0.6

Features:
- Flicker-free menu transitions: page changes and same-size cross-menu opens swap title and contents in a single bundle packet, no intermediate empty frame. Toggle with `smooth_transitions` in config.yml.

Performance:
- Material lookup cache: `Material.matchMaterial` now resolved once per unique string.
- Static ItemStack cache: items with no placeholders and no player-dependent material are built once and cloned on subsequent renders. Cleared on reload.
- Cross-menu smooth swap nulls only orphan slots instead of calling `inventory.clear()` on the whole inventory.

Fixes:
- Crash on disable: `onDisable` was closing every online player's open inventory, NPEing on Folia for real Ender Chests during world teardown. Now only closes our own menus, try/catch around each.
- ConcurrentModificationException on Folia from tab-complete and broadcast actions iterating `Bukkit.getOnlinePlayers()` mid-mutation. All iterations now go through `Util.snapshotOnlinePlayers()` which retries on CME and falls back to empty.
- `update_interval` below 1 second was ignored (global task capped at 1 second). Task now ticks at 50ms.
- Animated items flickering back to base (update task was overwriting frames the animation task had just written).
- Static items with `{page}` / `{max_page}` in lore showed stale numbers after paging. Added a `refreshStaticItems` pass.
- Meta add/subtract on DOUBLE accumulated floating-point error. Now uses BigDecimal and preserves input scale.
- Bare action names in requirement deny lists (e.g. `- close`) were sent to chat instead of executed.
- `player:` action no longer double-slashes commands starting with `/`.
- `click_cooldown` was cached at enable and not refreshed on `/am reload`. Now read live from config.

Editor fixes:
- Freshly dropped items were deleted on save (orphan-cleanup loop iterated a live view that included items it had just added).
- Player head textures were lost. Dropped heads now save as `basehead-<texture>` or `head-<owner>` instead of plain `PLAYER_HEAD`.
- Only material/slot/amount/name/lore were captured. Now also captures custom_model_data, item_model, tooltip_style, enchantments, item_flags, unbreakable, rarity, hide_tooltip, damage, and leather/potion RGB.
- Names and lore now serialize with MiniMessage so colors, gradients, fonts, and decorations survive (was plain text).
- Falls back to `item_name` when an item has no `custom_name` so resource-pack items with only the canonical name save correctly.
- Nexo, ItemsAdder, Oraxen, and HeadDatabase items now save as `nexo-<id>` / `itemsadder-<id>` / `oraxen-<id>` / `hdb-<id>` via each plugin's reverse-lookup API instead of as their vanilla base material.
- Items dragged in with stale editor PDC tags from a prior editor session (e.g. shift-clicked out, dropped into a new menu) were saved as bare `slot:` stubs. Tags are now ignored unless they target a name that already exists in the current menu's config.
- Per-property metadata captures are wrapped so a single failing API call (e.g. on a future-version-only method) skips that section instead of aborting the whole item.

Diagnostics:
- Defensive `%player_name%` fallback at the end of action/placeholder resolution, with debug log when the fallback fires.
- `MetaStore.set` logs `[Meta] <player> set <key> (<type>) = <value>` to console when `debug: true`.
- Editor logs `[Editor] <type> saved as material '<resolved>'` when `debug: true`.
----------, May 10, 2026

v1.0.5

Features:

  • Item templates: reusable items in templates/ folder with variable substitution
  • Pattern-based layouts: define menu layouts using character grids
  • Animated buttons: frame cycling with configurable interval, reverse, and one-time play
  • Progress bar items: fill slots based on current/max values from placeholders
  • Dynamic titles: update inventory title on timer with live placeholders
  • Player list items: auto-generate page items for online players
  • Predicate menus: open different menus based on requirements
Performance:

  • 27 optimizations across caching, scheduling, placeholder resolution, data structures, and rendering
  • Dirty checking on item updates (skip packet when unchanged)
  • Pre-built animation frames, page-only player list generation
  • Global async tasks replace per-holder tasks
Fixes:

  • Target player preserved on menu reload
  • player: action no longer double-slashes commands starting with /
  • Minimum click cooldown enforced
  • MiniMessage injection escaped in error messages
  • Global tasks cancelled on disable
  • Dead code removed, legacy codes replaced with MiniMessage
----------, Apr 3, 2026

v1.0.4

Features:
- /am with no args shows help
- Hooks wiki page (Vault, PAPI, HeadDatabase, ItemsAdder, Oraxen, Nexo)
- config.yml settings documented
- rawsound, broadcast_rawsound, broadcast_rawsound_world actions documented

Fixes:
- {target} and PAPI placeholders not resolving for target player in click actions
- Anvil input showing XP cost visual desync
- Click cooldown triggering on empty slot clicks
- previous_menu not updating correctly when navigating between menus
- target_player_arg tab completion not working until reload
- Filler items overriding priority/view_require items on shared slots
- %player_name% and built-in placeholders not resolving for target player in click actions
- Unknown /am subcommands showing Brigadier error instead of help
- string_contains_ignorecase missing from wiki
- model_data/item_model docs clarified for resource pack users
----------, Mar 28, 2026

v1.0.3

Features:
- target_player_arg: first argument as target player, no -p: needed, with tab completion
- %aumenus_current_menu%, %aumenus_previous_menu% placeholders
- Configurable "player not found" message (config.yml messages section)
- Download links added to README

Fixes:
- Deny actions not running on failed optional requirements
- previous_menu looping when navigating back between menus
- Commands showing red after reload (CommandMap registration)
- Fix {deluxemenus_meta_} in math placeholders not converting during migration

Wiki updated to latest.
----------, Mar 26, 2026

Minor bug fixes to command registration
----------, Mar 25, 2026

fixed minor bugs with command registration
----------, Mar 25, 2026

Resource Information
Author:
----------
Total Downloads: 58
First Release: Mar 24, 2026
Last Update: May 10, 2026
Category: ---------------
All-Time Rating:
2 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings