◆ 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.