Sueta

EmakiForge | Blueprint Forging

4.8.0

Blueprint-driven forging where material combinations decide stats and quality rolls with a pity counter.

·Plugin
  1. 4.8.0latestEmaki Forge 4.8.0Aug 31, 2026
    Added
    - Legacy material and blueprint conversion command with preview, backups, conflict reporting, and explicit apply modes.
    Changed
    - Forge material and blueprint eligibility now uses CoreLib matchers while item_sources remains available for counting, construction, display, and audit identity.
    Breaking Changes
    - Migrate custom eligibility rules to matchers without removing item-source fields that still serve non-eligibility duties.
    Upgrade Notes
    - Back up the plugin directory, inspect the conversion preview, and stage-test every blueprint, material, capacity, quality, and failure-return path.
    15 downloads
  2. 4.7.0Emaki Forge 4.7.0Aug 11, 2026
    Added
    - The forge capacity slot lists what the recipe wants and how much you have placed. A new %blueprint_requirements% placeholder goes in the capacity_display slot lore of gui/forge_gui.yml, one material per line, a tick when the amount is met and a cross when it is not, followed by placed/required. The count is what sits in the forge GUI, not what is in the player's inventory. - Per-recipe grouping for that list when one blueprint is shared by several recipes: a header per recipe, at most 3 groups, and the rest collapsed into a single "N more recipes" line. The lists are deliberately not merged, because a recipe wanting iron and another wanting gold would both show as missing when satisfying either is enough. The same slot can also read %recipe_count%. - Editable wording for the checklist under gui.blueprint.*: no_recipe, recipe_group_header, requirement_satisfied, requirement_missing, more_recipes. - Multi-line lore expansion: a lore line holding nothing but one placeholder expands into as many lines as the value has entries. Keep %blueprint_requirements% on a line of its own. - A gui_template key on recipes, naming a template file under gui/ without the .yml, so a recipe can open with its own forge GUI. Left out, forge_gui is used as before. - console.config_precheck_issue_warn and console.config_precheck_issue_error message keys, used to colour precheck problem lines by severity.
    Changed
    - Actions use a new syntax, and most of it is rewritten for you. On first startup CoreLib rewrites the config files of every Emaki plugin under plugins/, once only. Each edited file keeps the original beside it with a .legacy-backup suffix. A line that cannot be converted leaves your config untouched and goes into a separate .v2-failed file, with the file and line listed in the console. - The three forge refresh actions are the only ones you need to rename by hand; automatic rewriting does not cover them. Drop the leading emaki: - emakiforge_refresh_held → forge_refresh_held - emakiforge_refresh_player → forge_refresh_player - emakiforge_refresh_all → forge_refresh_all - Forge's own variables need a var. prefix wherever recipes or config.yml use them, for example %forge_result_item_name% → %var.forge_result_item_name% and %forge_failure_reason% → %var.forge_failure_reason%. The old inline token <show_item> in the quality broadcast becomes %var.forge_show_item%, already applied in the new config.yml. GUI text and player placeholders such as %player% are unaffected. - Action names gain their underscores automatically: sendmessage → send_message, playsound → play_sound, broadcastmessage → broadcast_message. The bundled recipes/example_recipe.yml shows the converted form. - Console errors for an action line that failed to compile state the problem, its position in the line and the likely intended value, instead of an internal code. The file, recipe id, phase and line index still follow, and the wording comes from the language file. - Config precheck problem lines are coloured by severity across the whole line: red for error and fatal, yellow for warn, grey for info as before. Older language files missing the two new keys fall back to the previous template rather than printing bare keys. - Six startup and reload console lines changed from white to grey for consistency with the other Emaki plugins. - For developers: EmakiForgeApiProvider is removed, and available(), apiVersion(), pluginName() and isReady() are replaced by EmakiForgeApi.status() returning ApiStatus. New catalog() (recipes, recipe, materialById, materialByItem, matchRecipe, validate, previewResult, mastery, accepting), operations() (forgeAsync, openForgeGui, openRecipeBook, viewingRecipeBook, refreshItem, refreshPlayer) and extensions() (reserved, currently empty) accessors return degraded implementations when the plugin is absent instead of throwing. Return values are unified as EmakiResult, with FailureKind separating a disabled subsystem from a missing plugin. New model types: ForgeInputs, ForgeOutcome, ForgeRecipeView, ForgeMaterialView, ForgeBlueprintView, ForgeValidation. ForgeStartEvent and ForgeCompletedEvent document their thread semantics. EmakiForgeApi.Bridge and ForgeExtensions are @ApiStatus.NonExtendable. This is a breaking API release with no legacy signatures or transitional compatibility.
    Removed
    - JS scripting, including the forge success-rate rules and result hooks it provided. There is no automatic conversion, but both have config equivalents: success_rate and failure_outcomes for the odds, and the pre / success / failure lists under a recipe's actions section plus result.success.actions for rewards. The bundled scripts/examples/forge_success.js sample is gone as well. - The old emakiforge_-prefixed action names and the bare-variable placeholder form; neither is kept as an alias.
    Notes
    - Update EmakiCoreLib to 4.7.0 first. - Back up your whole plugins/EmakiForge/ folder before upgrading, especially recipes/ and gui/. - Three things need doing by hand: renaming the three refresh actions, adding the var. prefix to Forge variables, and rewriting JS success-rate or reward scripts as recipe config. Everything else is rewritten for you. - Showing the material checklist requires adding a %blueprint_requirements% line to the capacity_display slot lore in gui/forge_gui.yml. An older GUI file still forges fine, it just shows no checklist. - Recipe structure, blueprints and player forge mastery data are unchanged and need no migration. - After updating, run /emakiforge reload and /emakiforge debug stats to confirm the registered recipe count matches expectations, then open the forge GUI and check the checklist.

    Emaki Forge v4.6.0

    MineBBS 更新日志

    破坏性变更与必要迁移
    - 【破坏性】配方 result 结构调整且不再兼容旧格式:原 result.item_sources、result.meta_actions.name_actions、result.meta_actions.lore_actions、result.actions 需改写为 result.success.outputs[].item_sources 以及 result.success.name_actions、result.success.lore_actions、result.success.actions。插件只读取 success;缺失时该配方不会报错,但也不会产出任何物品,所有自定义配方必须迁移。 - 【破坏性】GUI 槽位物品结构改为嵌套组件:原 item: "<MATERIAL>" 搭配 display_name、lore、hidden_components: [tooltip],现改为 item.source 搭配 item.components.custom_name、item.components.lore、item.components.tooltip_display.hide_tooltip。所有自定义 gui/*.yml 必须迁移。 - 【破坏性】插件描述文件从 plugin.yml 迁移到 paper-plugin.yml,其中的 commands: 段已移除(命令改为运行时注册)。不再支持纯 Spigot,必须使用 Paper 或 Paper 分支。 - 【移除】浏览器端 Web Console 层整体移除:web-console.yml、web-extensions/ 以及 web-console/ 前端项目。此前通过浏览器修改配置的服主需要直接编辑 YAML。 - 【移除】管理端配方编辑器模板 gui/editor_gui.yml 已删除,它唯一的入口就是被移除的网页编辑器。
    新增功能
    - 新增三个可配置动作,可用于任意动作链:emakiforge_refresh_held、emakiforge_refresh_player、emakiforge_refresh_all。 - 新增 /emakiforge debug stats(别名 status),输出运行时与配方加载报告:generation、文件数/解析数/跳过数/注册数/重复数、问题与警告、耗时、来源状态。 - 配置预检与配方加载诊断(目录创建失败、id 为空、id 重复、加载失败)现已可本地化;玩家可见的运行时状态提示(重载中、无可用配方、加载失败、能力缺失、索引未就绪、已关闭、会话过期)同样可本地化。 - 新增对 EmakiItem 的可选软依赖;未安装该插件时,EmakiAttribute 对接会降级运行,不再直接失败。
    重载与结算可靠性
    - 重载改为原子操作:候选运行时在后台构建,只有在不存在阻断性问题时才整体安装。失败时继续由原运行时提供服务;被后续重载取代的重载会被报告为已过期。 - 重载汇总数字改为取自本次重载自身的结果,并发重载不会再报出混合的计数。 - 锻造结算加入明确的提交边界,已过期的完成流程不会二次返还已消耗的输入。 - 配方书绑定打开时取得的运行时快照,重载期间翻页不会混用不同 generation 的数据。 - GUI 模板由独立加载器读取,并纳入重载候选校验。 - 消息前缀更换为新的品牌渐变配色。
    修复
    - /emakiforge reload 此前无条件回报成功并吞掉失败,现在会回报失败并附带详情(general.reload_fail 消息键此前存在但从未被发送)。 - 重载回复改为在发送者自身的执行域上送达,这是 Folia 上的正确行为所必需的。
    运行环境与兼容性
    - api-version 由 1.21 提升到 1.21.8,仅支持 1.21.8 及以上版本。 - 构建基座由 spigot-api 改为 paper-api,使用本插件 API 的开发者需要同步切换编译基座。 - Java 目标版本仍为 25,folia-supported: true 保持不变,权限集保持不变(use/book/reload/debug/admin)。 - 移除了跨插件的强制 API 版本门禁,混用小版本略有差异的 Emaki 插件不再在启动阶段被阻止。
    升级说明
    - 需要 EmakiCoreLib 4.6.0。 - 升级前请备份 recipes/ 与 gui/ 目录,并按上述结构迁移全部自定义配方与 GUI 模板。 - 升级后建议执行一次 `/emakiforge re
    27 downloads
  3. 4.6.0Emaki Forge 4.6.0Jul 27, 2026
    Added
    - Three action-chain actions: emakiforge_refresh_held, emakiforge_refresh_player, emakiforge_refresh_all. - /emakiforge debug stats (alias status) reporting generation, files, parsed, skipped, registered, duplicates, issues, warnings, elapsed time, and source state. - Localizable config precheck and recipe-load diagnostics (directory creation failure, blank id, duplicate id, load failure) plus localizable player-facing runtime state messages (reloading, no recipes, load failed, capability missing, index not ready, closed, session expired). - Optional soft dependency on EmakiItem, so the EmakiAttribute integration degrades gracefully when that plugin is absent instead of hard-failing.
    Changed
    - Reload is atomic: a candidate runtime is built in the background and installed only when no blocking problems exist. A failed reload keeps the previous runtime serving, and a superseded reload is reported as stale. - Reload summary numbers come from that reload's own result, so concurrent reloads no longer report mixed counts. - Forge settlement has an explicit commit boundary, so a stale completion no longer returns already-consumed inputs a second time. - The recipe book binds to the runtime snapshot taken when it was opened, so paging during a reload cannot mix generations. - GUI templates are loaded by their own loader and participate in reload candidate validation. - Message prefix switched to a new brand gradient. - api-version raised from 1.21 to 1.21.8; only 1.21.8+ is supported. The build base moved from spigot-api to paper-api, so API consumers must switch their compile base. Java target stays 25, folia-supported: true and the permission set (use/book/reload/debug/admin) are unchanged. - Cross-plugin hard API version gating was removed, so mixing slightly different Emaki minor versions is no longer blocked at startup.
    Fixed
    - /emakiforge reload used to report success unconditionally and swallow failures; it now reports failure with detail (the general.reload_fail message key existed but was never sent). - Reload replies are delivered on the sender's own execution domain, which is required for correctness on Folia.
    Removed
    - The browser-based Web Console layer (web-console.yml, web-extensions/, the web-console/ frontend project). Owners who edited config through the browser must edit YAML directly. - gui/editor_gui.yml, the admin recipe-editor template, whose only entry point was the removed web editor. - Backward compatibility for the old recipe result structure: result.item_sources, result.meta_actions.name_actions, result.meta_actions.lore_actions and result.actions become result.success.outputs[].item_sources and result.success.name_actions / lore_actions / actions. Only success is read; if it is missing the recipe silently produces nothing, so all custom recipes must be migrated. - The flat GUI slot item structure: item: "<MATERIAL>" with display_name, lore and hidden_components: [tooltip] becomes item.source with item.components.custom_name, item.components.lore and item.components.tooltip_display.hide_tooltip. All custom gui/*.yml must be migrated. - The commands: section, as the descriptor moved from plugin.yml to paper-plugin.yml and commands register at runtime. Plain Spigot is no longer supported; Paper or a Paper fork is required.
    Notes
    - Requires EmakiCoreLib 4.6.0. - Back up recipes/ and gui/ before updating, then migrate all custom recipes and GUI templates to the structures above. - After updating, run /emakiforge reload and /emakiforge debug stats to confirm the registered recipe count matches expectations, then verify the forge GUI and recipe book.
    25 downloads
  4. 4.5.0Emaki Forge 4.5.0Jul 14, 2026
    Added
    - Forge item refresh actions for held item, player inventory, and all online players. - Manifest v2 Web Console integration. - Command suggestions after /emakiforge or /eforge .
    Improved
    - Consolidated recipe result structure toward result.success.outputs/actions and related branch fields. - Improved recipe loading and default examples. - Aligned with the Paper API / paper-plugin.yml 1.21.8+ baseline.
    Notes
    - Update with the matching CoreLib release. - Breaking: Action aliases were removed; use canonical action IDs. - Migrate older flat result fields to result.success.* when needed.
    21 downloads
  5. 4.4.0Emaki Forge 4.4.0Jun 29, 2026
    Added
    - Public Bukkit events: ForgeStartEvent (cancellable) and ForgeCompletedEvent (with success, result item, and quality info). - JavaScript extensions for forge result hooks and forge rules via emaki.module("forge"). - Config precheck on startup and reload.
    Improved
    - Hardened the prepared forge cache by cloning preview items.
    Notes
    - No breaking config changes.
    43 downloads
  6. 4.3.0Emaki Forge 4.3.0Jun 16, 2026
    Added
    - Forge script module access through emaki.module("forge"). - Forge-owned script examples. - Shared condition system support. - Updated Web Console registration.
    Fixed
    - Fixed default condition alignment. - Fixed item source display/identification consistency. - Fixed unstable old API access expectations.
    Refactored
    - Static facade + Bridge API model. - Assembly namespace registration. - Script module lifecycle. - Recipe loading and item identification.
    Improved
    - Better default resources and Web Console metadata. - Better integration with CoreLib item sources and conditions.
    14 downloads
  7. 4.2.0Emaki Forge 4.2.0Jun 5, 2026
    Forge v4.2.0 is a cleanup and integration update. Forge now owns its script entry, script examples, and Assembly namespace more clearly.
    Highlights
    - Forge script module access through emaki.module("forge"). - Forge-owned script examples.
    Improved
    - Forge registers its own Assembly layer namespace. - CoreLib-aligned bStats, runtime dependency handling, and versioned resource notices.
    Notes
    - Use with the matching CoreLib release.
    24 downloads
  8. 4.1.0Emaki Forge 4.1.0Jun 2, 2026

    EmakiForge v4.1.0

    Quality pity system, player signatures, Web console editor, and a completely refactored forge pipeline.
    ---
    ✨ New Features
    #### Quality Pity System After a streak of forges without a high-tier result, the system now guarantees a better quality outcome on your next attempt. No more endless bad luck — the pity mechanic has your back. #### Player Signature Every forged item now proudly displays the name of the player who created it, giving each piece of equipment a personal touch and a unique sense of ownership. #### Web Console & GUI Editor EmakiForge is now fully integrated with the Web management console. Edit forge recipes and GUI configurations directly in your browser. Both the forge interface and recipe book have been completely redesigned for a better player experience. #### Forge Validation Service A new pre-forge validation step ensures that all conditions are met before the forge operation proceeds, preventing invalid forge attempts. #### Failure Resolution A dedicated failure handling service provides flexible multi-tier penalty configurations — customize what happens when a forge attempt fails. #### Preparation Phase Material checking, consumption, and preview have been separated into their own preparation stage, making the forge flow clearer and more maintainable. #### Result Post-Processing Additional actions can now be executed after a forge completes — trigger skills, send messages, or run custom logic. #### Performance Recorder A new performance monitoring feature lets server admins track forge operation performance.
    ♻️ Improvements
    - The main forge service has been extensively refactored, with each stage now having a clear, single responsibility. - The material model has been simplified for more intuitive recipe configuration. - The forge GUI and recipe book have been redesigned for a significantly improved user experience. - The async executor has been optimized for faster forge response times.
    11 downloads
  9. 4.0.0Emaki Forge 4.0.0May 11, 2026

    EmakiForge 4.0.0 Release

    This release introduces a ledger-based reversible name/lore modification system, PAPI placeholder support, and unifies the effect configuration format.
    New Features
    - Name/Lore Action System: Recipes and quality configs support name_actions / lore_actions fields. Forging can directly modify item names and lore with actions like append_suffix, prepend_prefix, prepend, append, insert_below, replace_line. All operations tracked via ItemOperationLedger for precise revert capability. Material effects also support type: "lore_action" / "name_action". - PAPI Placeholders: %emakiforge_recipe_count% (loaded recipe count) and %emakiforge_last_crafted% (player's last crafted recipe ID). - Enhanced Forge Audit: Forged items store complete audit data in PDC: recipe ID, quality, multiplier, timestamp, material signatures, and output source.
    Improvements
    - Unified effects list format with type field (variables / ea_attribute / es_skill / name_action / lore_action). - Material item sources unified to item_sources: [...] list format. - Example recipe fully rewritten with comprehensive field coverage and detailed comments. - Config and language files auto-merge new keys on upgrade.
    Breaking Changes
    - structured_presentation removed — replaced by name_actions / lore_actions. - Quality config item_meta.structured_presentation → item_meta.name_actions / item_meta.lore_actions. - Material item field → item_sources: [...] list format. - Skill effect type: "skill" → "es_skill", skills → es_skills. - Old example recipe flame_sword.yml replaced by example_recipe.yml.
    Upgrade Notes
    - Migrate structured_presentation to name_actions / lore_actions in existing recipes. - Migrate material item fields to item_sources list format. - Config version updated to 4.0.0 — new entries are auto-merged on upgrade. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)
    30 downloads
  10. 3.5.0Emaki Forge 3.5.0May 4, 2026

    EmakiForge 3.5.0 Release

    This maintenance release improves player data handling around kick events and synchronizes the module with the CoreLib 3.5.0 dependency line. - Added player kick event handling for forge player data flows. - Removed deprecated lifecycle cleanup calls. - Updated dependency alignment to CoreLib 3.5.0. - Synchronized plugin, config, and language versions to 3.5.0.
    Upgrade Notes
    - Existing recipes, GUI configuration, and permission nodes remain compatible. - Test player quit and kick scenarios if you use external data synchronization. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)
    23 downloads
  11. 3.4.0Emaki Forge 3.4.0Apr 28, 2026

    EmakiForge 3.4.0 Dev Update

    This dev update connects EmakiForge more deeply to CoreLib's structured text config system. Forge GUI text and result presentation content can now use richer config objects, including randomized text and nested variables. - PDC attribute writing: ForgePdcAttributeWriter now uses PdcAttributeGateway instead of reflection. - Structured GUI text: Forge GUI labels and text values can evaluate object-based text configs. - Presentation content improvements: layer snapshot values, replacements, content, patterns, and anchors can use richer text input. - Random lore foundation: Forge result displays can use CoreLib random_text and nested variable behavior. - Cleaner parsing: Forge material parsing was moved into ForgeMaterialParser. - Stable entry points: existing fromConfig methods remain available.
    Upgrade Notes
    No upgrade notes. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)
    12 downloads
  12. 3.3.0EmakiForge 3.3.0Apr 25, 2026

    EmakiForge 3.3.0

    EmakiForge 3.3.0 is a maintenance-focused release for server owners who already use the current file-based forging resource workflow. It adds PlaceholderAPI output for player forging progress, removes the old in-game resource editor path, and keeps forging output aligned with the current attribute naming and versioned resource style. - PlaceholderAPI support: %emakiforge_total_crafts%, %emakiforge_craft_count_<recipe>%, %emakiforge_has_crafted_<recipe>%, and %emakiforge_guarantee_<key>% are now available when PlaceholderAPI is installed. - Legacy editor removal: the old editor, edit, create, delete, and input command path is no longer part of the current runtime. - Focused commands: the supported command surface centers on forging, the recipe book, reload, and recipe listing. - Attribute naming cleanup: result attribute writes continue using the current non-EA-prefixed naming. - Unified version fields: default config and language resources use version. - Runtime cleanup: material planning, quality calculation, result item generation, GUI rendering, and error handling were tightened.
    Upgrade Notes
    - Use Java 25. - Update any admin guide that still references the removed editor commands. - Install PlaceholderAPI if you want to use the new forging placeholders. - Keep custom config on the current version field and non-EA-prefixed attribute names. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)
    11 downloads
  13. 3.2.0EmakiForge 3.2.0Apr 24, 2026

    EmakiForge 3.2.0

    EmakiForge 3.2.0 is the release that brings the recipe editor and the recipe schema back into full alignment with the code that actually runs. Administrators get a cleaner in-game editing flow, earlier validation for bad configs, and default resources that finally match the real parser contract instead of leaving hidden mismatches behind. - The editor input flow is command-based now. Pending editor input is submitted through /emakiforge input (content|cancel) instead of the older chat-event path, and the editor logic is now split across dedicated renderer, interaction, and field-resolution components. - The recipe schema is fully tightened. forge_capacity lives at the root, result output is defined through result.output_item, and structured display output follows structured_presentation. - Invalid configs fail earlier. The loader now rejects legacy target_item usage and validates condition_type during load time, which makes broken recipes much easier to diagnose. - Default resources match the parser now. Sample recipes, comments, and zh_CN feedback strings were updated to reflect the real runtime behavior. - Forge display output stays on the newer structured path. This reduces leftover maintenance cost from older display compatibility branches.
    Upgrade Notes
    - Replace legacy target_item output fields with result.output_item. - Move forge_capacity to the recipe root. - Prefer structured_presentation for custom result display definitions. - Use /emakiforge input for in-game editor submissions. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)
    17 downloads
  14. 3.1.0EmakiForge 3.1.0Apr 16, 2026

    EmakiForge Changelog

    [3.1.0] - 2026-04-16

    Added
    - Added ForgeMaterialUsagePlanner to centralize required/optional material batching, capacity cost/bonus calculation, and unconsumed input return logic for more predictable forge resolution. - Adopted CoreLib's AbstractConfigurableEmakiPlugin, BaseAppConfig, and shared GuiTemplateLoader so Forge now shares the common config and GUI-loading foundation.
    Improved
    - Reworked EmakiForgePlugin, ForgeLifecycleCoordinator, and ForgeRuntimeComponents so PDC attribute registration, service exposure, and CoreLib assembly feedback wiring follow one consistent startup path. - Hardened interactions in the forge station, recipe book, and editor by covering keyboard clicks, drag behavior, held-item validation, and session-state management. - Updated config.yml, gui/*.yml, and language resources so button sounds, hidden tooltips, and GUI structure follow the newer CoreLib GUI syntax.
    Fixed
    - Fixed inconsistent optional-material batching, capacity bonuses, and leftover input return behavior when multiple matching materials were supplied together. - Fixed edge cases in item identification, recipe matching, and editor dirty-state handling to reduce false input mismatches and lingering editor state. - Fixed the timing of PDC attribute registration so Forge keeps writing external attribute data reliably after reloads and dependency rewiring.
    18 downloads
  15. 3.0.0EmakiForge 3.0.0Apr 12, 2026

    📦 EmakiForge 更新日志 / Changelog

    中文版

    ✨ 新增特性
    - ForgePdcAttributeWriter: 新增 PDC 属性写入器 - 提供持久化数据容器属性写入功能 - 支持物品 NBT 数据的持久化存储 - EditableResourceType 增强: 扩展可编辑资源类型支持 - 新增更多资源类型的编辑支持 - 改进资源类型转换逻辑 - ForgeLookupIndex: 新增强化查找索引 - 提供高效的配方和材料查找 - 优化查找性能 - 配方系统增强: Recipe.java 优化 - 新增配方验证逻辑 - 改进配方加载错误处理
    🐛 问题修复
    - BootstrapService 删除: 删除不再需要的引导服务 - 由 CoreLib 的统一引导机制替代 - 简化插件启动流程 - MessageService 删除: 删除冗余的消息服务 - 由 CoreLib 的统一消息服务替代 - 减少代码重复 - LanguageLoader 删除: 删除语言文件加载器 - 由 CoreLib 的统一加载机制替代 - 简化语言文件管理

    English Version

    ✨ Features
    - ForgePdcAttributeWriter: New PDC attribute writer - Provides persistent data container attribute writing functionality - Supports persistent storage of item NBT data - EditableResourceType Enhancements: Extended editable resource type support - Added support for more resource types - Improved resource type conversion logic - ForgeLookupIndex: New forge lookup index - Provides efficient recipe and material lookup - Optimized lookup performance - Recipe System Enhancements: Recipe.java optimized - Added recipe validation logic - Improved recipe loading error handling
    🐛 Bug Fixes
    - BootstrapService Deletion: Removed unnecessary bootstrap service - Replaced by CoreLib's unified bootstrap mechanism - Simplified plugin startup process - MessageService Deletion: Removed redundant message service - Replaced by CoreLib's unified message service - Reduced code duplication - LanguageLoader Deletion: Removed language file loader - Replaced by CoreLib's unified loading mechanism - Simplified language file management
    12 downloads
  16. 2.2.0EmakiForge 2.2.0Apr 9, 2026

    EmakiForge Changelog

    \[2.2.0] - 2026-04-09

    Added
    #### Recipe files now own blueprints, materials, and target items together - recipes/*.yml can now define target_item, blueprint_requirements, materials, and optional_material_limit directly, so the release no longer depends on separate default blueprints/ and materials/ directories. - Inline recipe materials can now declare capacity cost, stat contributions, name / lore actions, and capacity bonus directly, and the sample flame_sword.yml has been fully migrated to the new schema.
    Improved
    #### Forge validation and GUI flow now follow the recipe model end to end - Material validation now matches inputs directly against recipe-defined required and optional materials by item source, which keeps fixed materials, optional materials, capacity limits, and capacity bonus checks consistent. - Default GUI wording, reload summaries, and command help now revolve around the "recipe" concept, so players and admins no longer need to reason about the old blueprint / material directory split. - Forge continues to delegate all external item-source availability to EmakiCoreLib, keeping only business-side matching, capacity calculation, and interaction feedback locally.
    Fixed
    - Legacy keys such as required_materials, optional_materials, gui, and top-level forge_capacity are now rejected during parsing so old configs cannot be half-loaded into an inconsistent state. - Optional-material validation now blocks items that do not belong to the current recipe earlier in the flow, reducing follow-up errors caused by wrong materials slipping through.
    Upgrade Notes
    - If you still use the old blueprints/ and materials/ config structure, migrate it to the new inline recipes/*.yml format before upgrading. - Default data release and list/editor flows now work around the recipes directory only, so do not rely on the removed default blueprint or material sample files. - This version should be paired with EmakiCoreLib 2.3.0, and CoreLib startup logs should be treated as the source of truth for external item-source bridge readiness.
    Known Issues
    - The default template still does not show random-result previews. This limitation remains intentional to prevent reroll abuse.
    11 downloads
  17. 2.1.0EmakiForge 2.1.0Apr 7, 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.
    Known Issues
    - The default template still does not display random result previews. This is a design limitation retained to prevent farming for random results.
    17 downloads
  18. 2.0.0EmakiForge 2.0.0Apr 3, 2026

    EmakiForge Changelog

    [2.0.0] - 2026-04-04

    Added
    #### Forging Results Integrated into CoreLib Assembly Pipeline - Forged products are now uniformly constructed through the EmakiItemAssemblyService, no longer relying solely on the legacy process of directly modifying ItemMeta. - Recipe results, material entries, and quality entries are compiled into assembly-layer snapshots and written into the final product. - result.meta_actions now supports name modification and Lore modification, making it easier to define product display rules directly at the recipe level. - Added forging-layer audit data, recording recipe ID, quality, material signature, forging time, and output source. #### Assembly Feedback and Lore Search Hints - Added ForgeAssemblyFeedbackHandler, which synchronously reports Lore search-and-insert failures, regex errors, and configuration errors to the console. - Players will also receive direct prompts during actual forging if they encounter invalid Lore search configurations. #### Asynchronous Caching and Persistence - Added PlayerDataCache; player forging history and pity counters are now managed by a concurrency-safe cache. - PlayerDataStore is now integrated into the CoreLib asynchronous YAML saving pipeline. - Automatic saves, player-offline saves, and plugin-shutdown saves will all wait for pending write tasks to complete, reducing the risk of historical data loss. - ForgeService added a pre-forge cache and prepareForgeAsync(...) to reduce redundant calculation overhead.
    Changed
    #### GUI and Recipe Experience - The default forging GUI no longer displays random product previews, preventing repeated刷取 of random quality and entry results through previews. - The default target item slot has been changed to a "result hidden" placeholder description, with interface text updated accordingly. - The recipe book now uniformly uses configuredOutputSource() to parse the result source when displaying result items. #### Recipes and Validation Logic - Recipe added configuredOutputSource() and requiresTargetInput() for unified output source determination. - MaterialValidationService rewritten the material normalization and validation logic to prevent disguising required materials and塞入 optional slots. - RecipeMatchingService optimized error priority; when a recipe fails to match, a more reasonable first failure reason is now given. - Blueprint capacity, material capacity bonuses, and optional material whitelist/blacklist are now uniformly结算 within the same validation process. #### Example Resource Updates - Default blueprint and material examples have been switched from external item IDs to vanilla items, lowering the barrier to entry for running out-of-the-box. - Example blueprints added forge_capacity, making capacity sources more intuitive. - Example recipe flame_sword.yml changed to use vanilla diamond_sword as base material, any_of blueprint requirements, whitelist-style optional materials, and the result.meta_actions写法. - YAML indentation examples for quality broadcast actions have been corrected.
    Upgrade Notes
    - Requires EmakiCoreLib 2.0.0 or higher. - If you use custom recipes, it is recommended to explicitly declare the result source: - When there is a fixed product base material, use target_item.item or result.output_item. - When name/Lore modifications are needed, prioritize writing them in result.meta_actions. - The default GUI intentionally hides result previews; if your old workflow relied on the "preview first, then confirm" interaction, you need to evaluate whether to keep the old template. - If you still use the old forging process of "player places target item for processing", please key inspection the target slot interaction and custom GUI templates before upgrading.
    Known Issues
    - Random results do not provide product previews in the default template; this is a design trade-off, not a rendering fault.
    18 downloads
  19. 1.10.0EmakiForge 1.10.0Mar 31, 2026

    EmakiForge Changelog

    [1.10.0] - 2026-03-31

    New Features
    #### Material Quality Modification Mechanism * Added ForgeMaterial.QualityModifier record to support influencing forging quality through material effects. * Supports two modification modes: * force: Forcibly specifies a quality tier, overriding random and pity mechanisms. * minimum: Sets a quality floor, taking the higher value compared to the random result. * Added ForgeQualityModifierResolver service to uniformly process quality modification logic. * The quality_modify effect can now be added in material definitions:
    effects:
      - type: quality_modify
        mode: force  # or minimum
        tier: perfect   # quality tier name
    #### Item Refresh Service * Added ForgeItemRefreshService, supporting automatic refresh of forging attributes for player inventory and dropped items. * Added ForgeItemRefreshListener, listening to the following events to trigger refresh: * Player joins server (PlayerJoinEvent) * Player clicks inventory (InventoryClickEvent) * Player drags inventory (InventoryDragEvent) * Player drops an item (PlayerDropItemEvent) * Player picks up an item (EntityPickupItemEvent) * Supports batch refresh for online players, single player inventory refresh, and dropped item refresh. * The refresh process recalculates quality modifications and updates item metadata. #### Material Contribution Record * Added ForgeMaterialContribution record, representing contribution information of forging materials. * Includes material ID, quantity, slot, category, sequence, and other information. * Provides toAuditMap() and toSignatureData() methods for auditing and signing.
    Improvements & Optimizations
    #### Quality Calculation Flow Optimization * QualityRollPlan record structure changes: * Added rolledTier: Randomly rolled quality tier. * Added finalTier: Final quality tier after applying modifications. * Added forceApplied: Whether a force modification was applied. * PreparedForge record structure changes: * Added rolledQualityTier: Random quality tier. * Added forceQualityApplied: Whether forced application occurred. * Improved quality calculation logic to support material modifier participation. #### Quality Tier Comparison Refactoring * QualitySettings added helper methods: * findTier(String name): Find a quality tier. * tierIndex(String name): Get the index of a quality tier. * tierIndex(QualityTier tier): Get the index of a quality tier. * hasTier(String name): Check if a quality tier exists. * higherTier(QualityTier first, QualityTier second): Compare and return the higher quality tier. * Improved quality tier lookup logic, reducing redundant calculations. * Optimized quality configuration parsing performance. #### ForgeMaterial Enhancements * Added qualityModifiers() method to get the list of material quality modifiers. * Added definitionSignatureData() method to generate material definition signature data. * Improved material effect parsing to support quality modification effects. #### ForgeService Improvements * Added findMaterialById(String materialId) method. * Added resolveMaterialQualityModifiers() method to parse material quality modifiers. * Improved forge preparation flow, integrating quality modification calculation.
    Configuration Changes
    #### Configuration File Updates * Action IDs in configuration files have been updated to camelCase format. * Example recipe configurations have been updated accordingly.
    Code Improvements
    #### EmakiForgePlugin * Added itemRefreshService() accessor. * Improved plugin lifecycle management. #### ForgeLifecycleCoordinator * Integrated item refresh service initialization. #### ForgeRuntimeComponents * Added itemRefreshService component. #### RecipeLoader * Improved recipe loading logic. #### ForgeExecutionService * Improved forge execution flow. #### ForgeLayerSnapshotBuilder * Optimized layer snapshot building logic. #### ForgeLookupIndex * Added findMaterialById() method. * Improved material lookup performance.
    Usage Notes
    #### Material Quality Modification * To use the material quality modification feature, you need to add the quality_modify effect in the material definition. * The effect data must include the mode (force/minimum) and tier (quality name) fields. * Force mode overrides pity mechanisms; use with caution. * Minimum mode takes the higher value compared to the random result, suitable for pity scenarios. #### Item Refresh Service * The item refresh service is enabled by default and will automatically refresh upon relevant events. * The refresh process recalculates quality modifications and updates item metadata. * May cause performance overhead in scenarios with a large number of items; adjustment based on server load is recommended. #### Action ID Migration * Action IDs in configuration files need to be migrated from underscore_case to camelCase format. * Affected configurations: * Quality actions in config.yml * Custom recipe configurations #### Compatibility * Requires EmakiCoreLib 1.11.0 or above. * The quality modification feature is optional and does not affect existing recipe configurations. * Maintains backward compatibility with older configuration files. #### API Changes * QualityRollPlan record structure changed with added fields. * PreparedForge record structure changed with added fields. * QualityCalculationService constructor added new parameters. * The above changes may affect external plugins directly using these APIs.
    Known Issues
    * The item refresh service may cause performance overhead in scenarios with a large number of items.
    19 downloads
  20. 1.9.0EmakiForge 1.9.0Mar 30, 2026
    11 downloads
  21. 1.8.1EmakiForge 1.8.1Mar 29, 2026
    13 downloads
  22. 1.8.0Emaki Forge 1.8.0Mar 29, 2026
    16 downloads
  23. 1.7.0Emaki Forge 1.7.0Mar 29, 2026
    9 downloads
  24. 1.5.0Emaki Forge 1.5.0Mar 28, 2026
    13 downloads
  25. 1.2.0Emaki Forge 1.2.0Mar 27, 2026
    12 downloads

Similar projects

Plugin →