Skip to content

EmakiCoreLib

EmakiCoreLib is the shared runtime core for every Emaki Series business plugin. It does not provide a full gameplay loop by itself. Instead, it provides cross-plugin foundations: actions, GUI templates, item-source resolution, PDC helpers, item assembly, conditions, expressions, economy bridges, weighted random utilities, scheduler compatibility, and shared bStats runtime.

NOTE

Sectioning rule: this page documents capabilities that all plugins can reuse. Actions, APIs, configuration fields, and gameplay flows that are registered by Attribute, Forge, Strengthen, Cooking, Gem, Skills, Item, or Level belong to the corresponding plugin documentation.

Basic information

ItemValue
Version4.8.1
API jaremaki-corelib-api-4.8.1.jar
Runtime plugin jarEmakiCoreLib-4.8.1.jar
Main classemaki.jiuwu.craft.corelib.EmakiCoreLibPlugin
Java25
Paper API1.21.8-R0.1-SNAPSHOT
paper-plugin.yml api-version1.21.8
folia-supportedtrue
Hard dependenciesNone
Soft dependenciesVault, ExcellentEconomy, PlaceholderAPI, MMOItems, MythicMobs, ItemsAdder, Nexo, Oraxen, EcoItems, NeigeItems, CraftEngine, PacketEvents
Main command/emakicorelib (aliases /corelib, /emakicore)
Permissionsemakicorelib.admin, emakicorelib.reload

CoreLib must load first. Business plugins depend on its shared services. If CoreLib fails to start, fix CoreLib before debugging other modules.

Installation boundary

Install only runtime plugin jars on the server:

text
plugins/
├── EmakiCoreLib-4.8.1.jar
└── EmakiAttribute-4.8.0.jar / EmakiForge-4.8.0.jar / ...

Do not put emaki-corelib-api-*.jar into the server plugins/ directory. API jars are for third-party developers as Maven provided or Gradle compileOnly dependencies.

What CoreLib provides

Shared action system

The action system lets plugins run messages, sounds, particles, commands, economy operations, experience operations, temporary items, blocks, teleporting, and action templates from YAML. See Actions for syntax, control prefixes, CoreLib built-in actions, and the /corelib action list|run admin command.

Business plugins may append their own actions to the same registry. Level exp actions, Attribute stat actions, and Skills skill actions are documented on their own plugin pages instead of being centralized here.

GUI system

The GUI system provides menu templates, slot parsing, buttons, click handling, sessions, item-source resolution, and dynamic rendering foundations. Business plugins declare their own GUI files and runtime flows. See GUI.

Item Source

The Item Source system resolves Vanilla, CraftEngine, ItemsAdder, Nexo, Oraxen, EcoItems, MMOItems, NeigeItems, EmakiItem, and other item providers so recipes, materials, rewards, and GUI slots can use stable IDs instead of display names or lore. See Item Source.

Item Matcher

On top of item sources, a matcher (matcher) adds component, PDC, lore, and expression conditions to decide whether an incoming item counts as material. All nine modules share the same syntax at their input-matching points. See Item Matcher.

PDC and item assembly

CoreLib wraps Bukkit PersistentDataContainer and uses Assembly to merge layers written by different modules into the final item name and lore. Forge, Strengthen, Gem, Item, Attribute, and other modules use this chain to avoid overwriting each other. See PDC, Assembly, and Name & Lore Operations.

Shared gameplay events

CoreLib normalizes selected Bukkit / MythicMobs gameplay events into configuration event IDs reused by EmakiLevel experience sources and EmakiCodex advancement triggers. See Gameplay Event IDs for usable IDs and variables.

Conditions, expressions, economy, and weights

  • Condition: shared condition expressions and condition groups.
  • Expression: formulas for cost, chance, level, damage, and configuration values.
  • Economy: Vault / ExcellentEconomy providers and dynamic provider enumeration.
  • Weight: reusable tools for random pools, quality pools, reward pools, and pity systems.

Server owners / configuration maintainers

  1. Item Source: learn how to reference materials and rewards reliably.
  2. Item Matcher: narrow input matching further by component, PDC, and more.
  3. Actions: learn success/failure/reward/feedback calls.
  4. Condition: configure permission, item, state, and expression checks.
  5. Expression: write cost, chance, and numeric formulas.
  6. GUI: adjust menu layout and button behavior.
  7. The corresponding business plugin pages for actual gameplay configuration.

Third-party developers

  1. PDC: understand shared data boundaries.
  2. Assembly: understand multi-module presentation merging.
  3. The corresponding plugin API pages: call public APIs, not implementation classes.

Default runtime folder

text
plugins/EmakiCoreLib/
├── config.yml
└── lang/
    ├── zh_CN.yml
    └── en_US.yml

config.yml controls language, the GUI backend, shared gameplay events, action loops and action templates, and global Debug. Setting debug.global_all to true enables Debug output for every Emaki module that uses CoreLib's DebugLogger. Administrators can also toggle it temporarily with /corelib debug all on|off|status; a CoreLib reload restores the configured value. lang/ stores CoreLib messages. Business plugins generate their own folders; do not mix business configuration into CoreLib unless that page explicitly says so.