▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/EmakiCorelib
EmakiCorelib

EmakiCorelib

Shared native Java core library for the Emaki plugin suite

22
0

EmakiCorelib 2.3.0

release9 апреля 2026 г.

EmakiCoreLib Changelog

[2.3.0] - 2026-04-09

Added

Expression-aware name and lore replacement

  • ItemRenderService now supports name_append_if_unchanged and name_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.replaceVariables is 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 Vault and other backends more quickly.
  • YamlDirectoryLoader now accumulates load issues, allowing upper-layer plugins to expose lint, self-check, or admin diagnostics directly.

Improved

Rendering and bridge infrastructure hardening

  • RegexLoreSearchMatcher now caches compiled regex patterns to reduce repeated compile overhead during frequent lore searches.
  • CacheManager now 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 WAITING or INCOMPATIBLE state, making load-order and API-compatibility diagnosis easier.

Fixed

  • ExpressionEngine now rejects overly long expressions, dangerous characters, and NaN / Infinity results 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

EmakiCorelib 2.2.0

release8 апреля 2026 г.

2.2.0 - 2026-04-08

Overview

This version focuses on fixing the optional dependency loading for EconomyManager, constituting a compatibility and stability update.

Changed

  • Adjusted the economy backend registration process. Vault and CoinsEngine Providers are no longer directly hard-referenced and instantiated during the construction phase.
  • EconomyManager now checks whether the corresponding plugin is enabled and if the required API classes are visible before deciding whether to register an optional Provider.
  • The CoinsEngine related Provider has been changed to load reflectively based on runtime state to avoid premature class linking.

Fixed

  • Fixed the issue where, when CoinsEngine / ExcellentEconomy is not installed on the server, EmakiCoreLib would throw a NoClassDefFoundError during the onEnable phase due to the absence of su.nightexpress.excellenteconomy.api.ExcellentEconomyAPI.
  • Fixed the issue where, despite CoinsEngine being declared in softdepend, the economy bridge class would still fail at runtime because it was resolved prematurely.
  • Fixed the issue where CoreLib could not gracefully degrade to a "register only available Providers" state when optional economy dependencies are absent.

Compatibility

  • Although the repository for ExcellentEconomy is named ExcellentEconomy, the server plugin registration name and build artifact identifier still use CoinsEngine.
  • The existing softdepend: CoinsEngine configuration remains correct; no need to change it to ExcellentEconomy.
  • Existing syntax in action DSL such as provider=vault, provider=coinsengine, and currency=... remains compatible.

Migration

  • No configuration migration is required.
  • No data migration is required.
  • No command, permission, or language file adjustments are needed.

EmakiCorelib 2.1.0

release7 апреля 2026 г.

[2.1.0] - 2026-04-08

Added

Unified Item Source Bridge and Dependency Integration Timing

  • Added ItemSourceIntegrationCoordinator. During the startup phase, it uniformly registers item source resolvers for MMOItems, ItemsAdder, Nexo, NeigeItems, and CraftEngine.
  • Item source bridges now dynamically switch between READY, WAITING, and INCOMPATIBLE states based on external plugin enable/disable events and the official "item registration complete" event.
  • Added bridge status logs to the console, clearly distinguishing scenarios like "plugin not installed", "installed but resources not yet loaded", and "API version incompatible".
  • plugin.yml has been updated with relevant soft-dependencies. Upper-layer plugins no longer need to individually manage the loading sequence of external item plugins.

Action System - New Temporary Item Workflow

  • ActionContext now has shared state across actions, facilitating the reuse of temporary data within the same action chain.
  • Added built-in actions: createitem, edititem, senditem, clearitem. These allow directly creating items, modifying name/Lore, giving items to players, and clearing items by slot within the action DSL.
  • The temporary item workflow is now integrated with the unified ItemSourceService and ItemPresentationEditor, allowing direct item generation from item sources with presentation modifications applied.
  • clearitem supports dual filtering by slot and item source, suitable for reuse in chains like forging, strengthening, and reward recovery.

Expanded Foundation for Presentation Compilation and Document Editing

  • Added ItemPresentationEditor, supporting standardized editing of name and Lore for existing ItemStacks at runtime.
  • YamlDirectoryLoader now retains the original YamlConfiguration, source file path, and parsing results, facilitating editor implementation, backups, and hot-reloading for upper-layer plugins.
  • Added ConditionEvaluator, a universal condition parser supporting numerical comparison, string comparison, and && / || combination logic, providing a common foundation for configuration filtering and rule judgment in upper-layer plugins.

Improvements & Optimizations

Standardization of Item Presentation Protocol

  • EmakiPresentationEntry, SearchInsertConfig, and LoreSearchInsertResult have been unified into a standardized field structure, reducing ambiguity during serialization and data backfilling in the presentation layer.
  • The presentation compiler now only accepts standardized operation and field names. Validation, return status, and error details for Lore search-and-insert are also more explicit.
  • The collaboration between ItemRenderService and the assembly of presentation entries has been further consolidated, making it easier for upper-layer modules like EmakiForge and EmakiStrengthen to reuse directly.

Action Execution Precision and Reusability

  • @chance now uses high-precision threshold parsing, reducing floating-point probability boundary errors.
  • Shared state eliminates the dependency on external global containers for multi-step item processing within the same action chain.
  • ItemSourceType has been expanded with more complete type display names and alias resolution, unifying format recognition for sources like ItemsAdder / Nexo.

Upgrade Notes

  • EmakiForge 2.1.0 and EmakiStrengthen 1.0.0 are advised to uniformly depend on CoreLib's ItemSourceService and should no longer maintain external item bridges within their respective business modules.
  • If your action configurations still use givecoins, please migrate before upgrading; this built-in action has been removed from the default registration list.
  • If your presentation configurations rely on old alias keys or field names, please revert to the standard写法 during upgrade, e.g., action, content, target_pattern, regex_pattern, replacement.
  • After the server integrates ItemsAdder, Nexo, NeigeItems, CraftEngine, or MMOItems, it is recommended to verify in the startup logs that the final bridge status is READY.

Known Issues

  • None

EmakiCorelib 2.0.0

release4 апреля 2026 г.

EmakiCoreLib Changelog

[2.0.0] - 2026-04-04

Added

Asynchronous Infrastructure & Performance Monitoring

  • Added AsyncTaskScheduler, AsyncFileService, AsyncYamlFiles to 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 / CacheStats for caching high-frequency hotspot data such as preview results.

GUI Asynchronous Rendering

  • GuiService now has an openAsync(...) opening flow.
  • Added AsyncGuiRenderer, supporting slot item preparation on async threads followed by a single batch fill-back on the main thread.
  • GuiSession gained the ability to fill back rendering results, facilitating the decoupling of "computation" and "display" for complex GUIs.

Item Assembly 2.0

  • EmakiItemAssemblyService added previewAsync(...), 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 EmakiForge to reuse them.

Changed

Action System Scheduling Upgrade

  • The Action interface added extension points: executionMode() and timeoutMillis().
  • Added ActionExecutionMode, currently supporting SYNC and ASYNC_IO.
  • ActionDispatchScheduler will automatically choose between main-thread scheduling or async I/O scheduling based on the action's execution mode.
  • ActionExecutor uniformly integrates delay, timeout, failure fallback, and asynchronous execution pipelines.

YAML & Resource Loading Optimizations

  • YamlDirectoryLoader added loadAsync(), allowing directory-type configurations to directly utilize the CoreLib async scheduler.
  • EmakiCoreLibPlugin will now automatically migrate bundled resources from the legacy defaults/ 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 gson dependency and supplemented Shade filtering rules to avoid packaging conflicts with module-info.class and some manifest files.

Upgrade Notes

  • Both EmakiAttribute 2.0.0 and EmakiForge 2.0.0 are 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

EmakiCorelib 1.11.0

release1 апреля 2026 г.

EmakiCoreLib Changelog

[1.11.0] - 2026-03-31

New Features

CoinsEngine Economy Support

  • Added the GiveCoinsAction action, supporting currency operations for the CoinsEngine economy plugin.
  • Action Parameters:
    • amount (required): The amount of currency.
    • currency (required): The type of currency.
  • Automatically registered to the built-in action list, supporting templated configuration.
  • Requires the CoinsEngine plugin to be installed on the server.

Improvements & Optimizations

Action System Improvements

  • All built-in Action IDs have been uniformly changed from underscore format to camelCase format.
    • send_messagesendmessage
    • play_soundplaysound
    • broadcast_messagebroadcastmessage
    • send_titlesendtitle
    • send_action_barsendactionbar
    • give_moneygivemoney
    • take_moneytakemoney
    • set_moneysetmoney
    • give_expgiveexp
    • take_exptakeexp
    • set_expsetexp
    • set_healthsethealth
    • give_potion_effectgivepotioneffect
    • remove_potion_effectremovepotioneffect
    • clear_potion_effectsclearpotioneffects
    • spawn_particlespawnparticle
    • run_command_as_playerruncommandasplayer
    • run_command_as_opruncommandasop
    • run_command_as_consoleruncommandasconsole
    • use_templateusetemplate

Enhanced Error Messages

  • Improved error messages for missing actions (missingActionResult).
  • Automatically detects Action ID format and provides normalization suggestions.
  • Example: When using send_message, prompts "Use 'sendmessage' instead".
  • Helps developers quickly locate and fix configuration errors.

ActionExecutor Optimization

  • Added missingActionResult() method to uniformly handle cases where actions are not found.
  • Improved Action ID normalization logic, removing underscores before lookup.
  • Optimized error message format to provide clearer migration guidance.

Configuration Changes

Configuration Template Updates

  • Action IDs in the example configuration templates have been updated to the new format.
  • Comment examples have been synchronized, demonstrating the correct way to configure actions.

Code Improvements

BuiltinActions

  • Added registration for GiveCoinsAction.
  • Maintained the registration order of other built-in actions.

All Action Implementation Classes

  • Updated the return value of the id() method to camelCase format.
  • Kept action functionality and parameters unchanged.

Usage Notes

Action ID Migration

  • Important: All action configurations must be migrated from underscore format to camelCase format.
  • The system will automatically detect and provide migration suggestions, but it is recommended to proactively update configuration files.
  • Affected configuration files:
    • Action templates in EmakiCoreLib/config.yml
    • Quality actions in EmakiForge/config.yml
    • Custom action configuration files
    • Action calls in scripts and plugins.

CoinsEngine Integration

  • To use the givecoins action, ensure the CoinsEngine plugin is installed on the server.
  • CoinsEngine is an optional dependency and does not affect core functionality.
  • Clear error messages are returned if the action execution fails.

Compatibility

  • Maintains backward compatibility with configuration files from older versions.
  • Error prompts will help developers quickly locate issues.
  • It is recommended to back up configuration files before upgrading.

Known Issues

  • None

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:GPL-3.0-only
Опубликован:2 недели назад
Обновлён:2 дня назад
Главная