▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/EmakiForge
EmakiForge

EmakiForge

Recipe-driven forging with quality tiers, material effects, and in-game editor

18
0

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/*.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.

EmakiForge 2.1.0

release7 апреля 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.

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

EmakiForge 1.10.0

release1 апреля 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.

EmakiForge 1.9.0

release30 марта 2026 г.

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:GPL-3.0-only
Опубликован:2 недели назад
Обновлён:2 дня назад
Главная