Tags
Creators
Details
Licensed GPL-3.0-only
Published 7 months ago
Updated 2 months ago
All versions
2.3.0
Release
EmakiCorelib 2.3.07 months ago 15
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Paper
Purpur
Changes
EmakiCoreLib Changelog
[2.3.0] - 2026-04-09
Added
Expression-aware name and lore replacement
ItemRenderServicenow supportsname_append_if_unchangedandname_append_if_changed, which helps strengthen and forge pipelines decide whether another suffix should be appended after a previous name change.- Regex replacement in names and lore now supports capture groups and expression blocks inside the replacement template, making it easier to combine matched text with runtime variables.
ExpressionEngine.replaceVariablesis now exposed as a reusable entry point so name templates, lore templates, and replacement templates share the same variable-expansion behavior.
Startup diagnostics and loader issue collection
- Startup logs now print the list of economy providers that actually became available, so operators can verify
Vaultand other backends more quickly. YamlDirectoryLoadernow accumulates load issues, allowing upper-layer plugins to expose lint, self-check, or admin diagnostics directly.
Improved
Rendering and bridge infrastructure hardening
RegexLoreSearchMatchernow caches compiled regex patterns to reduce repeated compile overhead during frequent lore searches.CacheManagernow tracks hits, misses, evictions, and expirations with atomic counters, which keeps shared cache statistics more stable.- Item source bridges now report more specific details while in
WAITINGorINCOMPATIBLEstate, making load-order and API-compatibility diagnosis easier.
Fixed
ExpressionEnginenow rejects overly long expressions, dangerous characters, andNaN/Infinityresults so broken templates do not poison runtime calculations.- Regex-based rendering no longer flattens replacements too early, so
$1-style capture groups and expression blocks can work together correctly.
Upgrade Notes
- If your name or lore templates already use
$1-style regex capture groups or[ ... ]expression blocks, regression-test those displays after upgrading. - Upper-layer plugins can now read
YamlDirectoryLoader.issues()directly when implementing config self-checks or admin diagnostics. - Startup logs will now print ready economy providers; if an expected backend does not appear, first verify dependency startup order and provider registration.
Known Issues
- None
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:EGYz2X2a:PZCzS93a"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:EGYz2X2a:PZCzS93a"
}

