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.