EmakiCoreLib | Script-Powered Modular Plugin Framework icon

EmakiCoreLib | Script-Powered Modular Plugin Framework -----

The unified core library for the Emaki plugin suite — action engine, JavaScript scripting, and cross




◆ Emaki CoreLib v4.3.0 Release ◆
Web Console Insight, history rollback, layered previews, shared conditions, and configurable language.
━━━━━━━━━━━━━━━━━━━━

Added
  • Added Web Console Insight search for registered configuration files.
  • Added reference tracking and dependency graph views for configuration relationships.
  • Added Web Console history snapshots, diff view, and confirmed rollback support.
  • Added plugin read-only/preview API routes for module-specific preview data.
  • Added layered item preview infrastructure for Item, Strengthen, Gem, and future modules.
  • Added shared condition blocks and condition evaluation support.
  • Added language: "zh_CN" to the default CoreLib config.yml.

Fixed
  • Fixed CoreLib config.yml missing the language key for language switching.
  • Fixed CoreLib startup and reload not applying the configured language from config.yml.
  • Fixed Web Console glob child paths being opened as wildcard parent paths.
  • Fixed custom editor surfaces not always receiving the concrete file path.
  • Fixed nested list editor layout issues in complex config structures.
  • Fixed MiniMessage preview support for hex color tags.
  • Fixed item operation replay during Assembly rebuilds.

Refactored
  • Split Web Console styles into focused style modules.
  • Refactored Web Console document path resolution.
  • Refactored shared Web Console host exports for plugin extensions.
  • Refactored public API access around static facades and plugin bridges.
  • Refactored shared condition and item preview pipelines.

Improved
  • Improved Web Console layout, sidebars, field outline, and responsive behavior.
  • Improved config, GUI, action, variable, and list editor usability.
  • Improved localized file titles and descriptions in Web Console.
  • Improved runtime library and bStats handling through CoreLib.

Before Updating
  • Update CoreLib before other Emaki plugins.
  • Set language in plugins/EmakiCoreLib/config.yml, then restart or reload.
  • Back up data before using Web Console write or rollback features.

----------, Jun 16, 2026

◆ Emaki CoreLib v4.2.0 Release ◆
A cleaner foundation for scripts, runtime libraries, shared editors, and module integration.
━━━━━━━━━━━━━━━━━━━━

Highlights
  • Scripts can now use emaki.module("module") to safely access installed Emaki modules.
  • Added global JavaScript actions, placeholders, and controlled Bukkit event scripting.
  • CoreLib now provides the shared MythicMobs JavaScript mechanics: emaki_js, corelib_js, and emakicorelib_js.
  • Startup logs now tell you when versioned default config or language files are updated.

Quality Improvements
  • bStats is now managed once by CoreLib instead of being duplicated in every plugin jar.
  • Runtime libraries are centralized in CoreLib to reduce classloader conflicts.
  • Managed item sources now show friendlier display names for CraftEngine, ItemsAdder, Nexo, NeigeItems, MMOItems, and more.
  • Shared Web Console editors for actions, effects, and economy provider fields are more consistent across Emaki plugins.
  • Business-specific script examples now belong to their own plugins, keeping CoreLib focused on shared infrastructure.

Before Updating
  • If you maintain custom scripts, review the new emaki.module("module") style.
  • Update CoreLib before updating the rest of the Emaki series.

----------, Jun 5, 2026

◆ EmakiCoreLib v4.1.0 Release ◆
Built-in Web Console, Folia scheduler support, unified placeholder syntax, and more.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ New Features
  • Built-in Web Console: Manage all Emaki plugin configs through your browser! Includes GUI editor, item editor, source code editor with syntax highlighting, YAML preview, multi-language i18n, theme switching, file version control, search, and extension loading. Declarative registration system allows sub-plugins to add their own editors.
  • Folia Scheduler Support: Full compatibility with Folia servers. All async tasks now use a unified scheduler that works reliably in Folia environments.
  • Placeholder Syntax Unified: All placeholders now use the %variable% format consistently.
  • Random Character Variables: New random, weighted-random, and conditional character variables for dynamic lore and message text.
  • Equipment Slot Matching: Equipment slot matching with attribute/skill activation logic for precise equipment position control.
  • Recipe Completion Conditions: New condition system for post-completion recipe actions.
  • Item Component Inspection: New command to inspect item persistent data for debugging.
  • General Resource Files: Support for extracting resource files from JAR for template distribution.
Bug Fixes
  • Fixed Web Console loading CONFIG files as structured YAML via glob paths.
  • Fixed number input issues and improved session management.
♻️ Improvements
  • Refactored condition system with unified variable and action naming.
  • Unified async task scheduling with generic task handles.
  • Refactored item operation ledger and debug logging system.
  • Removed large amounts of redundant comments and deprecated code.
  • Optimized cache usage and code reuse across modules.
----------, Jun 3, 2026

◆ EmakiCoreLib 4.0.0 Release ◆
JavaScript Scripting Engine, Item Operation Ledger & New Actions
A major update bringing extensible scripting, reversible item modifications, and new built-in actions

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
New Features

  • JavaScript Scripting Engine — Execute custom .js scripts via the runjs action. Scripts can access player data, trigger context, item info, random utilities, shared state, and action dispatch. Powered by GraalJS with configurable timeout (default 1000ms), content-hash caching, and security sandboxing.
  • dropitem Action — Drop items at specified world coordinates with support for relative coordinates and all item source types (vanilla / CraftEngine / ItemsAdder / Nexo).
  • placeblock Action — Place blocks at specified world coordinates, supporting vanilla and custom blocks. Properly fires BlockPlaceEvent for compatibility with other plugins.
  • Item Operation Ledger — A reversible item name/lore modification system. Operations are stored in item PDC and can be precisely reverted individually or by namespace. Provides unified text modification infrastructure for gem socketing, strengthening, forging, etc.
  • EmakiAttribute Bridge API — Stable API for plugins that soft-depend on EmakiAttribute, supporting resource read/consume, attribute value queries, and damage pipeline invocation.
  • Enhanced Condition System — New none_of condition type and nested condition groups (type: group) for complex logic combinations.

Improvements

  • Config and language files now auto-merge new keys on upgrade — no manual editing required.
  • YAML loading errors now display specific error messages and locations in console.
  • Item text handling uses legacy format for better compatibility with ItemsAdder, MMOItems, etc.

Upgrade Notes

  • Config version updated to 4.0.0 with new script section (auto-merged on upgrade).
  • Script engine is enabled by default; disable with script.enabled: false in config.yml.
  • Script files go in plugins/EmakiCoreLib/scripts/ — subdirectories and examples are created on first startup.

----------, May 11, 2026

◆ EmakiCoreLib 3.5.1 Release ◆
Spigot MiniMessage Item Text Fix
Improved Adventure Component compatibility for Bukkit ItemMeta display names and lore

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Fixes

  • Fixed MiniMessage tags not rendering correctly in item display names and lore when written through CoreLib ItemTextBridge on standard Spigot API.
  • ItemTextBridge now converts Adventure Components into Spigot-compatible legacy section strings before calling Bukkit ItemMeta#setDisplayName and ItemMeta#setLore.
  • Existing item display names and lore are read back from legacy section strings into Adventure Components, keeping CoreLib's internal text pipeline consistent.

----------, May 4, 2026

◆ EmakiCoreLib 3.5.0 Release ◆
MythicMobs Action Support and Item Source Expansion
Core runtime improvements for actions, expressions, GUI items, and EmakiItem integration

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Highlights

  • New built-in castmythicskill action for directly casting MythicMobs skills from CoreLib action scripts.
  • Added MythicMobs as a soft dependency; missing MythicMobs fails safely without breaking startup.
  • Added EmakiItem item source support to the shared item source registry.
  • Improved GUI item building for custom item sources used by dependent modules.
  • Refined expression and numeric parsing through the new ExpressionRules split.
  • Removed deprecated cleanup behavior from resource synchronization to reduce upgrade side effects.

Upgrade Notes

  • Install MythicMobs before using the castmythicskill action.

----------, May 4, 2026

◆ EmakiCoreLib 3.4.0 Dev Update ◆
Custom Block Bridge, PDC API Refactor, and Item Source Cleanup
New block identification API for CraftEngine, ItemsAdder, and Nexo, plus reflection removal

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✦ Highlights ✦

  • ◆ New CustomBlockBridge interface — shared block identification API for CraftEngine, ItemsAdder, and Nexo.
  • ◆ ReflectivePdcAttributeGateway refactored to PdcAttributeGateway, now uses Bukkit ServicesManager instead of reflection.
  • ◆ All Reflective*ItemSourceResolver classes replaced with direct API calls.
  • ◆ CraftEngine item source resolver now listens to CraftEngineReloadEvent for automatic refresh.
  • ◆ ReflectiveSkillPdcGateway renamed to SkillPdcGateway.
  • ◆ Caffeine added to plugin.yml libraries for automatic download via SpigotLibraryLoader.

◆ Upgrade Notes ◆

No upgrade notes.

----------, Apr 28, 2026

◆ EmakiCoreLib 3.3.0 ◆
Unified Version Fields, Java 25, and Shared Runtime Cleanup
A foundation release that refreshes the Emaki runtime baseline and keeps the whole plugin suite easier to maintain

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✦ Highlights ✦

  • ◆ Versioned YAML resources now use the unified version key instead of separate config_version or lang_version style fields.
  • ◆ The build baseline moved to Java 25, with the shared CoreLib dependency line updated to 3.3.0.
  • ◆ Economy integration wording and soft-dependency metadata now target ExcellentEconomy while keeping Vault support available.
  • ◆ Action templates can be reused through @Template entries, making repeated success, failure, sound, message, and broadcast actions easier to maintain.
  • ◆ Caffeine-backed caching and several common runtime paths were cleaned up, including async helpers, expressions, GUI parsing, text bridges, and YAML utilities.
  • ◆ PlaceholderAPI, MMOItems, and CraftEngine integration points remain part of the shared runtime layer for downstream modules.

◆ Upgrade Notes ◆

  • ◆ Run this release on Java 25.
  • ◆ Migrate custom config_version or lang_version fields to version.
  • ◆ Update any old CoinsEngine deployment notes to the current ExcellentEconomy wording if your server uses that economy stack.
  • ◆ Consider moving repeated action lists into action templates for easier maintenance.

----------, Apr 25, 2026

◆ EmakiCoreLib 3.2.0 ◆
Structured Presentation And Item Source Refresh
A core-library release focused on cleaner display layering, unified vanilla source rules, and lighter runtime packaging

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✦ Highlights ✦

  • ◆ The legacy item-presentation editing chain, lore-search insertion helpers, and old edit-item action path were removed in favor of the structured presentation stack.
  • ◆ Item assembly now supports explicit layer removal, and the CoreLib namespace registry now includes the cooking layer for downstream rebuild and rollback flows.
  • ◆ Vanilla item and block sources are now normalized around minecraft-, mc-, v-, or bare identifiers; the old minecraft:item_id style is no longer accepted as a valid source input.
  • ◆ CoreLib now exposes a CraftEngine block bridge, while GUI previews and item-source services share the same vanilla material resolver to reduce parsing drift.
  • ◆ Item text bridging now preserves vanilla translation keys, adds stable effective-name helpers, and improves hover-text output for item-linked messages.
  • ◆ Adventure, MiniMessage, serializer, exp4j, and boosted-yaml runtime dependencies are now declared through Spigot libraries instead of the previous bundled packaging path, and YAML IO is consolidated around BoostedYaml.

◆ Upgrade Notes ◆

  • ◆ Migrate any remaining minecraft:item_id item or block source entries to minecraft-item_id, mc-item_id, v-item_id, or a bare vanilla id.
  • ◆ Custom configs that still rely on legacy edit-item or old lore-operation style display paths should be migrated to structured_presentation.
  • ◆ This build expects runtime library resolution through Spigot libraries, so first boot should be allowed to fetch or reuse the required dependency cache.
  • ◆ If you still carry old defaults-based data layouts, re-check them against the current bootstrap synchronization path instead of expecting legacy migration behavior.

----------, Apr 24, 2026

◆ EmakiCoreLib 3.1.0 Update ◆
Shared Runtime Foundation Refresh
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ Update Focus ◆
EmakiCoreLib 3.1.0 is a foundation-focused release for the Emaki plugin suite. It improves the shared runtime layer used by EmakiAttribute, EmakiForge, EmakiStrengthen, EmakiGem, and future Emaki modules.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✦ Added ✦
  • Shared Plugin Runtime — Added AbstractEmakiPlugin, AbstractConfigurableEmakiPlugin, and BaseAppConfig.
  • Reusable GUI Template Loader — Gameplay modules can now share one GUI loading foundation.
  • Inventory Item Utilities — Added shared inventory counting, matching, and removal helpers.
  • Player Session Map — Added safer per-player session tracking for GUI workflows.
  • Item Display Name Service — Unified display-name lookup across custom names, item names, and vanilla translations.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ Improved ◆
  • ◆ Refactored reflective item-source resolvers for CraftEngine, ItemsAdder, MMOItems, NeigeItems, and Nexo.
  • ◆ Added support for newer GUI syntax such as left-click sounds, right-click sounds, hidden tooltips, and tooltip display flags.
  • ◆ Tightened async GUI session switching to reduce stale-session issues.
  • ◆ Normalized vanilla item-source matching and item text bridging.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ Fixed ✓
  • ◆ Fixed older async GUI renders overwriting newer player sessions.
  • ◆ Fixed item text handling when itemName or vanilla translated names are used.
  • ◆ Fixed vanilla item-source matching when minecraft prefixes are written differently.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ Upgrade Notes ◆
  • ◆ Upgrade EmakiCoreLib together with all Emaki 3.1.0 gameplay modules.
  • ◆ Review custom GUI files if you customized button sounds or tooltip settings.
  • ◆ Re-check external item-source IDs if your server uses custom item plugins.
----------, Apr 16, 2026

EmakiCoreLib 更新日志 / Changelog
中文版
✨ 新增特性
  • 物品文本桥接: ItemTextBridge.java 新增
    • 提供跨版本文本 API 兼容性支持
    • 确保在不同 Paper/Spigot 版本间的文本显示一致性
  • MiniMessages 支持: MiniMessages.java 新增/增强
    • 新增 MiniMessage 格式解析支持
    • 提供更丰富的文本格式化能力
  • IndexedLineInsertActionParser: 新增 Lore 插入解析器
    • 支持从顶部/底部插入 Lore 行
    • 支持统计行插入模式
  • 生命周期框架: 新增抽象生命周期协调器
    • AbstractLifecycleCoordinator.java: 抽象基类
    • RuntimeComponents.java: 运行时组件抽象
  • 服务注册表: EmakiServiceRegistry.java 新增
    • 提供服务注册和查找功能
    • 支持服务依赖注入
  • YAML 抽象重构: 新增完整的 YAML 抽象层
    • YamlConfigLoader.java: YAML 配置加载器
    • VersionedYamlFile.java: 版本化 YAML 文件支持
    • YamlSection.java: YAML 节抽象接口
    • BoostedYamlSection.java: 增强型 YAML 节实现
    • MapYamlSection.java: Map backed YAML 节实现
    • SnakeYamlSupport.java: SnakeYAML 底层支持
  • Bootstrap 包: 新增 bootstrap 包结构
    • 提供插件启动引导支持
  • Entity 包: 新增 entity 包结构
    • 提供实体相关功能
  • Integration 包: 新增 integration 包结构
    • 提供第三方插件集成支持
问题修复
  • YAML 合并逻辑优化: 修复配置合并时的类型处理问题
    • 改进 mergeMissingValues 方法,使用 YamlSection 替代 ConfigurationSection
    • 优化版本比较逻辑,新增 compareVersions 方法
优化与改进
  • YAML 文件重构: YamlFiles.java 大量重构
    • 简化版本升级逻辑
    • 优化配置合并流程
    • 改进类型转换处理
  • 文本工具增强: Texts.java 优化
    • 新增文本空白检测方法
    • 优化文本处理性能
  • 配置版本升级:
    • config.yml: 2.3.0 → 3.0.0
    • lang/zh_CN.yml: 2.3.0 → 3.0.0
  • MessageService 优化: 重构消息服务
    • 优化消息发送逻辑
    • 改进文本格式化
♻️ 架构与底层
  • 核心服务重构: 多个核心服务类进行重构和优化
    • 改进服务注册和获取流程
    • 优化服务依赖管理
  • 依赖管理: 优化 Maven 依赖配置
    • 减少传递依赖冲突
    • 更新库版本
  • 代码格式化: 统一代码风格和导入格式
English Version
✨ Features
  • Item Text Bridge: ItemTextBridge.java added
    • Provides cross-version text API compatibility support
    • Ensures text display consistency across different Paper/Spigot versions
  • MiniMessages Support: MiniMessages.java added/enhanced
    • Added MiniMessage format parsing support
    • Provides richer text formatting capabilities
  • IndexedLineInsertActionParser: New Lore insertion parser
    • Supports inserting Lore lines from top/bottom
    • Supports stat line insertion modes
  • Lifecycle Framework: Added abstract lifecycle coordinator
    • AbstractLifecycleCoordinator.java: Abstract base class
    • RuntimeComponents.java: Runtime components abstraction
  • Service Registry: EmakiServiceRegistry.java added
    • Provides service registration and lookup functionality
    • Supports service dependency injection
  • YAML Abstraction Refactoring: Added complete YAML abstraction layer
    • YamlConfigLoader.java: YAML configuration loader
    • VersionedYamlFile.java: Versioned YAML file support
    • YamlSection.java: YAML section abstraction interface
    • BoostedYamlSection.java: Enhanced YAML section implementation
    • MapYamlSection.java: Map-backed YAML section implementation
    • SnakeYamlSupport.java: SnakeYAML low-level support
  • Bootstrap Package: Added bootstrap package structure
    • Provides plugin startup bootstrap support
  • Entity Package: Added entity package structure
    • Provides entity-related functionality
  • Integration Package: Added integration package structure
    • Provides third-party plugin integration support
Bug Fixes
  • YAML Merge Logic Optimization: Fixed type handling issues during configuration merging
    • Improved mergeMissingValues method, using YamlSection instead of ConfigurationSection
    • Optimized version comparison logic, added compareVersions method
Improvements & Optimizations
  • YAML File Refactoring: YamlFiles.java extensively refactored
    • Simplified version upgrade logic
    • Optimized configuration merging process
    • Improved type conversion handling
  • Text Utility Enhancements: Texts.java optimized
    • Added text blank detection method
    • Optimized text processing performance
  • Configuration Version Upgrade:
    • config.yml: 2.3.0 → 3.0.0
    • lang/zh_CN.yml: 2.3.0 → 3.0.0
  • MessageService Optimization: Refactored message service
    • Optimized message sending logic
    • Improved text formatting
♻️ Chores & Refactoring
  • Core Service Refactoring: Multiple core service classes refactored and optimized
    • Improved service registration and retrieval process
    • Optimized service dependency management
  • Dependency Management: Optimized Maven dependency configuration
    • Reduced transitive dependency conflicts
    • Updated library versions
  • Code Formatting: Unified code style and import formatting
----------, Apr 12, 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
----------, Apr 9, 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.
----------, Apr 8, 2026

[2.1.0] - 2026-04-08
Added
Forging Resource Editor Released
  • Added editor_gui and EditorGuiService, supporting in-game browsing, creation, and editing of three resource types: blueprints, materials, and recipes.
  • Added /emakiforge editor, edit, create, delete subcommands, along with the permissions emakiforge.editor, emakiforge.editor.delete, and emakiforge.editor.*.
  • The editor supports chat input, document tree browsing, recipe slot grid switching, writing item / output_item sources from the main hand item, and unsaved close confirmation.
  • Automatic backup of the original YAML is performed before saving, renaming, or deleting, followed by a hot-reload of forging resources upon operation completion.
GUI Template and Recipe Book Configuration Enhancements
  • The default forging GUI has been updated to a new layout, with clearer visual separation for the blueprint, capacity, materials, and confirmation areas.
  • Added the confirm_blocked virtual item and capacity_state text template. Clear blocking feedback is now provided when capacity limits are exceeded.
  • Added virtual_items.recipe_entry and multiple sets of state text to the recipe book. Unlock status, whether forged, and click hints are now all configuration-driven.
Improvements & Optimizations
Full Migration to CoreLib Item Source Service
  • ItemIdentifierService now delegates to EmakiCoreLib's ItemSourceService. Forge no longer maintains external item plugin bridges independently.
  • Removed Forge's direct compile-time dependencies and plugin.yml soft-dependencies on MMOItems, NeigeItems, and CraftEngine.
  • Item source availability and bridge timing are now uniformly managed by CoreLib. Forge retains only the business-side identification, matching, and hint logic.
Commands and Interaction Refactoring
  • The main command aliases have been adjusted from emforge / forge to eforge / ef.
  • The editor now supports resource locking to prevent simultaneous edits of the same resource by multiple administrators.
  • Deleting and renaming resources will first create a backup file on disk, reducing the risk of irreversible errors from misoperations during live server periods.
Default Template Detail Optimizations
  • forge_gui.yml now unifies capacity display, material slot hints, and result hiding instructions.
  • With the addition of virtual item templates to the recipe book pages, custom themes can now directly override text and display styles without modifying Java code.
Upgrade Notes
  • Requires EmakiCoreLib 2.1.0 or higher. The availability of external item sources should be verified based on the bridge status in CoreLib's startup logs.
  • If your scripts, menu buttons, or documentation still reference the old aliases forge / emforge, please update them to eforge / ef or the full main command emakiforge.
  • The resource editor's save and delete operations will generate backups under plugins/EmakiForge/backups/<type>/. It is recommended to include this in your server maintenance backup strategy.
  • If you are retaining an older custom forging template, please manually merge the new capacity_state text and the capacity over-limit blocking feedback logic.
----------, Apr 8, 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
----------, Apr 7, 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
----------, Apr 3, 2026

[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_message → sendmessage
    • play_sound → playsound
    • broadcast_message → broadcastmessage
    • send_title → sendtitle
    • send_action_bar → sendactionbar
    • give_money → givemoney
    • take_money → takemoney
    • set_money → setmoney
    • give_exp → giveexp
    • take_exp → takeexp
    • set_exp → setexp
    • set_health → sethealth
    • give_potion_effect → givepotioneffect
    • remove_potion_effect → removepotioneffect
    • clear_potion_effects → clearpotioneffects
    • spawn_particle → spawnparticle
    • run_command_as_player → runcommandasplayer
    • run_command_as_op → runcommandasop
    • run_command_as_console → runcommandasconsole
    • use_template → usetemplate
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
----------, Mar 31, 2026




Resource Information
Author:
----------
Total Downloads: 165
First Release: Mar 29, 2026
Last Update: Jun 5, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings