Tags
Creators
Details
Licensed GPL-3.0-only
Published 2 years ago
Updated 2 weeks ago
All versions
1.1.1.0
Release
zMenu 1.1.1.08 months ago 1,451
Uploaded by
Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
Platforms
Folia
Paper
Purpur
Spigot
Changes
New Features
- Performance Debug System: Added per-operation performance monitoring for inventory opening. Measures execution time for each step (permission checks, button building, item rendering, etc.) and logs results to console. Configurable via
enable-performance-debug, with threshold filtering and whitelist/blacklist support for operation names.
Performance
- ItemStack Build Optimization: Optimized
ZMenuItemStack.build()to reduce redundant work on each inventory open:- Eliminated duplicate PlaceholderAPI resolution for material strings (was called twice per build)
- Pre-resolve
Materialat load time when no placeholders are present, skipping PAPI parsing at runtime - Replaced exception-based control flow for numeric material IDs with a simple numeric check
- Pre-compute
NamespacedKeyfortooltipStyle,itemModel, andequippedModelin setters instead of splitting/creating on every build - Cache the glowing enchantment lookup instead of querying the enchantment registry on every build
- Pre-split lore lines containing
\nat load time instead of splitting on every build - Added early exit in
Placeholders.parse()when the string contains no%character, avoiding unnecessary iteration over all placeholder entries
Internal Changes
- MiniMessage Color Parsing Refactor: Consolidated color parsing methods into
MiniMessageColorUtilsclass for better maintainability and code reuse. - Added unit tests to verify preservation of MiniMessage color tags.
Bug Fixes
- Fixed hex color parsing regex to correctly handle edge cases.
- Fixed typo in
PlayerCommandLoaderconstructor parameter list.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:XPQ42u1g:d4ZNusdx"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:XPQ42u1g:d4ZNusdx"
}

