Tags
Creators
Details
Licensed GPL-3.0-only
Published 7 months ago
Updated 2 months ago
All versions
2.0.0
Release
EmakiCorelib 2.0.07 months ago 26
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Paper
Purpur
Changes
EmakiCoreLib Changelog
[2.0.0] - 2026-04-04
Added
Asynchronous Infrastructure & Performance Monitoring
- Added
AsyncTaskScheduler,AsyncFileService,AsyncYamlFilesto provide unified asynchronous execution capabilities for actions, file I/O, GUI, and assembly processes. - Added
PerformanceMonitor,PerformanceSnapshot, and an operation-level statistics model for continuous tracking of execution time, success rates, and warning counts. - Added generic
CacheManager/CacheStatsfor caching high-frequency hotspot data such as preview results.
GUI Asynchronous Rendering
GuiServicenow has anopenAsync(...)opening flow.- Added
AsyncGuiRenderer, supporting slot item preparation on async threads followed by a single batch fill-back on the main thread. GuiSessiongained the ability to fill back rendering results, facilitating the decoupling of "computation" and "display" for complex GUIs.
Item Assembly 2.0
EmakiItemAssemblyServiceaddedpreviewAsync(...),giveAsync(...), and preview caching.- Added
AssemblyFeedbackHandler, allowing business plugins to receive feedback on Lore search-and-insert failures, regex errors, and configuration errors. - Added
ItemPresentationCompiler,PresentationCompileResult,PresentationCompileIssue. - Name modification, Lore modification, and search-and-insert rules can now be compiled first and then rendered, making it easier for upper-level plugins like
EmakiForgeto reuse them.
Changed
Action System Scheduling Upgrade
- The
Actioninterface added extension points:executionMode()andtimeoutMillis(). - Added
ActionExecutionMode, currently supportingSYNCandASYNC_IO. ActionDispatchSchedulerwill automatically choose between main-thread scheduling or async I/O scheduling based on the action's execution mode.ActionExecutoruniformly integrates delay, timeout, failure fallback, and asynchronous execution pipelines.
YAML & Resource Loading Optimizations
YamlDirectoryLoaderaddedloadAsync(), allowing directory-type configurations to directly utilize the CoreLib async scheduler.EmakiCoreLibPluginwill now automatically migrate bundled resources from the legacydefaults/directory during startup.- Plugin initialization phase uniformly integrates the async file service, namespace registration, performance monitoring, and assembly service async configuration.
Build & Dependencies
- Module version upgraded to
2.0.0. - Added
gsondependency and supplemented Shade filtering rules to avoid packaging conflicts withmodule-info.classand some manifest files.
Upgrade Notes
- Both
EmakiAttribute 2.0.0andEmakiForge 2.0.0are adapted based on this version of CoreLib. - Custom actions involving I/O operations (e.g., database, HTTP, file) are recommended to be explicitly declared as
ASYNC_IO. - Plugins relying on the assembly system can start using async preview, async distribution, and assembly feedback callbacks.
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:C2zYqxK9"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:EGYz2X2a:C2zYqxK9"
}

