
EmakiForge
Recipe-driven forging with quality tiers, material effects, and in-game editor
33
0
EmakiForge 3.1.0
release16 апреля 2026 г.EmakiForge Changelog
[3.1.0] - 2026-04-16
Added
- Added
ForgeMaterialUsagePlannerto 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 sharedGuiTemplateLoaderso Forge now shares the common config and GUI-loading foundation.
Improved
- Reworked
EmakiForgePlugin,ForgeLifecycleCoordinator, andForgeRuntimeComponentsso 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.
EmakiForge 3.0.0
release12 апреля 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.javaoptimized- 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
EmakiForge 2.2.0
release9 апреля 2026 г.EmakiForge Changelog
[2.2.0] - 2026-04-09
Added
Recipe files now own blueprints, materials, and target items together
recipes/*.ymlcan now definetarget_item,blueprint_requirements,materials, andoptional_material_limitdirectly, so the release no longer depends on separate defaultblueprints/andmaterials/directories.- Inline recipe materials can now declare capacity cost, stat contributions, name / lore actions, and capacity bonus directly, and the sample
flame_sword.ymlhas 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-levelforge_capacityare 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/andmaterials/config structure, migrate it to the new inlinerecipes/*.ymlformat before upgrading. - Default data release and list/editor flows now work around the
recipesdirectory 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.
EmakiForge 2.1.0
release7 апреля 2026 г.[2.1.0] - 2026-04-08
Added
Forging Resource Editor Released
- Added
editor_guiandEditorGuiService, supporting in-game browsing, creation, and editing of three resource types:blueprints,materials, andrecipes. - Added
/emakiforge editor,edit,create,deletesubcommands, along with the permissionsemakiforge.editor,emakiforge.editor.delete, andemakiforge.editor.*. - The editor supports chat input, document tree browsing, recipe slot grid switching, writing
item/output_itemsources 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_blockedvirtual item andcapacity_statetext template. Clear blocking feedback is now provided when capacity limits are exceeded. - Added
virtual_items.recipe_entryand 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
ItemIdentifierServicenow delegates toEmakiCoreLib'sItemSourceService. Forge no longer maintains external item plugin bridges independently.- Removed Forge's direct compile-time dependencies and
plugin.ymlsoft-dependencies onMMOItems,NeigeItems, andCraftEngine. - 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/forgetoeforge/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.ymlnow 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.0or 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 toeforge/efor the full main commandemakiforge. - 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_statetext 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.
EmakiForge 2.0.0
release4 апреля 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_actionsnow 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. PlayerDataStoreis 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.
ForgeServiceadded a pre-forge cache andprepareForgeAsync(...)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
RecipeaddedconfiguredOutputSource()andrequiresTargetInput()for unified output source determination.MaterialValidationServicerewritten the material normalization and validation logic to prevent disguising required materials and塞入 optional slots.RecipeMatchingServiceoptimized 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.ymlchanged to use vanilladiamond_swordas base material,any_ofblueprint requirements, whitelist-style optional materials, and theresult.meta_actions写法. - YAML indentation examples for quality broadcast actions have been corrected.
Upgrade Notes
- Requires
EmakiCoreLib 2.0.0or 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.itemorresult.output_item. - When name/Lore modifications are needed, prioritize writing them in
result.meta_actions.
- When there is a fixed product base material, use
- 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.
Создатели
Детали
Лицензия:GPL-3.0-only
Опубликован:3 недели назад
Обновлён:2 дня назад
