Sueta

custom-crafter-api

5.4.0

An advanced PaperMC crafting engine for building complex recipes with NBT-supported custom items.

·Plugin
  1. 5.4.0latestcustom-crafter-api 5.4.0Aug 2, 2026

    ⚠️ Breaking Changes

    * CMatter.isValidMatter(), CRecipe.isValidRecipe(), CraftUIDesigner.Baked.isValid(), and AllCandidateUIDesigner.Baked.isValid() no longer return Result<Unit>; they now throw IllegalStateException directly on failure and return nothing on success. * CMatter.firstFailedPredicate() and CRecipe.firstFailedRecipePredicate() now return kotlin.Pair<Int, CMatterPredicate> / kotlin.Pair<Int, CRecipePredicate> instead of IndexedValue. * AllCandidateUIDesigner.Baked.ungeneratedIconPlaceholderItem changed from the Kotlin function type (CRecipe) -> ItemStack to java.util.function.Function<CRecipe, ItemStack>. * Explainer's constructor parameter order changed from (name, verbosity) to (verbosity, name), since controlling the log level without naming the instance is the more common use case.

    ✨ New Features and Enhancements

    [Enhancement]* Improved Java interoperability across the public API by replacing Kotlin-only return types (Result, IndexedValue) and lambda parameter types with plain exceptions and java.util.function.Function.
    68 downloads
  2. 5.3.0custom-crafter-api 5.3.0Jul 26, 2026

    ⚠️ Breaking Changes

    [Dependency Removal] Removed the Choco-solver* dependency; shapeless matching now uses an in-house max-flow solver, so the org.chocosolver shaded relocation is gone. * CMatter.predicates changed from Collection<CMatterPredicate>? to List<CMatterPredicate>?, making predicate order significant. * CMatterImpl.defaultMatterPredicates() now returns List<CMatterPredicate> instead of Set<CMatterPredicate>. * CMatterPredicate.Context and CRecipePredicate.Context gained a trailing explainer parameter; Kotlin source compatibility is preserved, but binary compatibility is not.

    ✨ New Features and Enhancements

    [New Feature]* Added Explainer: an opt-in, thread-safe diagnostic recorder that reports why each recipe did or did not match during a search. [New Feature]* Added MatchGroup and CRecipe.matchGroups(), generalising shapeless matching from "every slot is mandatory" into a min/max bounded assignment. [New Feature]* Added ShapelessGroupRecipe: the shapeless counterpart of GroupRecipe, needing no Material.AIR placeholder to express an optional slot. [New Feature]* Added the CMatterPredicates and CRecipePredicates utility objects, providing the and, or, allOf, and nOf combinators. [New Feature]* Added named() and a name() default method on both predicate interfaces, so a predicate is reported by name instead of by index (combinators compose names automatically). [Enhancement]* CMatterPredicate.Context and CRecipePredicate.Context now expose an explainer field, letting a predicate record why it rejected an input. [Enhancement]* Added CMatter.firstFailedPredicate() and CRecipe.firstFailedRecipePredicate(), returning the first rejecting predicate instead of only whether one rejected. [Enhancement]* Search.search, Search.asyncSearch, PartialSearch.asyncPartialSearch, and VanillaSearch.search now accept an optional explainer. [Documentation]* Added the "Advanced Debugging for Recipe Search" page (EN / JA) and documented the Predicates utilities and predicate naming on the CRecipePredicate page.
    27 downloads
  3. 5.2.1custom-crafter-api 5.2.1Jun 9, 2026

    5.2.1

    ✨ New Features and Enhancements

    [Enhancement]* Added Javadoc so that Java users can browse API details in a familiar documentation format. [Enhancement]* Several functions can now be called from Java in a more intuitive way.
    75 downloads
  4. 5.2.0custom-crafter-api 5.2.0Jun 7, 2026

    5.2.0

    ⚠️ Breaking Changes

    * The method for resetting CustomCrafterAPI properties to their default values has changed. * hasFullCompatibility() has been deprecated. Use MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION, and VERSION_TYPE instead. * Several utility functions have been made private or relocated. * Passing a plugin instance when registering recipes is now recommended. * Several events are now non-cancellable.

    ✨ New Features and Enhancements

    [New Feature]* Added AllCandidateUIDesigner: the AllCandidateUI appearance can now be customized. [New Feature]* Added NameStrictLevel: recipe registration can now be restricted to prevent duplicate names. [Enhancement]* Version information is now more accessible via MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION, and VERSION_TYPE. [Enhancement]* Recipe registration and deregistration APIs have been improved; recipes can now be filtered by registering plugin. [Enhancement]* Added default implementations to CraftUIDesigner, reducing boilerplate for partial customization.
    21 downloads
  5. 5.1.0custom-crafter-api 5.1.0May 1, 2026

    5.1.0

    The minimum compatible version requirement rarely changes between updates. Using the latest release is recommended.

    ⚠️ Breaking Changes

    [Package Rename]* Several packages have been significantly renamed and reorganized. Projects that reference specific package paths will require import updates.

    ✨ New Features and Enhancements

    [New Feature]* Added AdjacentRecipe: a recipe that requires input items to be placed adjacent to one another — a weakly shape-constrained recipe type. [Enhancement]* Simplified constructors for several classes to reduce boilerplate in common use cases.

    🛠 Fix

    * Fixed an issue where item replacement after a craft did not work correctly when a customized crafting UI layout was applied. * Fixed a critical bug in shapeless recipe matching where a recipe slot with no valid candidates was silently skipped instead of causing the match to fail. This allowed invalid ingredient combinations to incorrectly succeed and prevented some inputs from being consumed.
    60 downloads
  6. 5.0.21custom-crafter-api 5.0.21Apr 26, 2026

    ✨ New Features and Enhancements

    [New Feature]* Added ReplaceableResultSupplier interface: writes items back into crafting UI slots after a craft, enabling ingredient transformation (e.g. returning a modified tool) and byproduct placement patterns. [New Feature]* Added ResultSupplier.Context.CallMode enum (CRAFT / ICON): allows supply() implementations to distinguish a real craft from an icon-generation call (e.g. in the AllCandidateUI display), replacing the old isMultipleDisplayCall field. [New Feature]* Added CraftInputInterruptEvent: fired when a player interacts with input slots or closes the CraftUI while a craft process is in progress. [New Feature]* Added PreventDoubleCraftEvent: fired when a player attempts to start a new craft while one is already running. [Enhancement]* Added PartialSearch API: asynchronous partial recipe match search for crafting hints and autocomplete suggestions. Supports both shaped and shapeless recipes. [New Feature]* Added CVanillaRecipe.fromTransmute(): converts a vanilla TransmuteRecipe into a CVanillaRecipe, enabling transmute recipes to be used with PartialSearch and other CustomCrafter features. Each ingredient's RecipeChoice is converted to a CMatterPredicate via RecipeChoice.test(), so NBT and exact-item constraints are preserved.

    🛠 Fix

    * Fixed a race condition in ONLY_FIRST search mode that could return an empty result even when a matching recipe existed. * Fixed isAsync() returning an inverted value in CMatterPredicate.Context and CRecipePredicate.Context. * CompletableFuture tasks now consistently run on virtual threads.
    20 downloads
  7. 5.0.20-p1custom-crafter-api 5.0.20-p1Apr 16, 2026

    🛠 Fix

    - UI processing order
    24 downloads
  8. 5.0.20custom-crafter-api 5.0.20Mar 26, 2026

    ✨ New Features and Enhancements

    [Enhancement]* Async interruption support [Enhancement]* Faster rendering in AllCandidateUI [Enhancement]* Folia support
    40 downloads
  9. 5.0.19custom-crafter-api 5.0.19Feb 9, 2026

    5.0.19

    ✨ New Features and Enhancements

    [Enhancement]* Search speed for shapeless recipes is now faster.

    🛠 Fix

    * Event internal fix
    577 downloads
  10. 5.0.18custom-crafter-api 5.0.18Jan 16, 2026

    5.0.18

    ✨ New Features and Enhancements

    [Enhancement]* MCKotlin-Paper is no longer required to run CustomCrafterAPI.
    91 downloads
  11. 5.0.17-p2custom-crafter-api 5.0.17-p2Jan 9, 2026

    5.0.17-p2

    Requires to run

    [MCKotlin-Paper 1.5.1-k2.2.10](https://modrinth.com/plugin/mckotlin/version/cTmS56Qc)

    🛠 Fix

    * Result item give fix
    35 downloads
  12. 5.0.17-p1custom-crafter-api 5.0.17-p1Jan 9, 2026

    Dependency

    - [Required] [MCKotlin-Paper (1.5.1-k2.2.21)](https://modrinth.com/plugin/mckotlin/version/DChEjX7z)

    5.0.17-p1

    ✨ New Features and Enhancements

    [Enhancement]* Add recipe relation map utility functions on CoordinateComponent.

    🛠 Fix

    * Page close error fix
    29 downloads
  13. 5.0.17custom-crafter-api 5.0.17Jan 8, 2026

    5.0.17

    ⚠️ Breaking Changes

    Refactored `Predicate** and **ResultSupplier` interfaces as functional interfaces (SAM**) and removed their default implementations. This allows for concise lambda expressions, but existing code relying on the previous inheritance structure will require updates. Removed internal utility and container classes, specifically `CRecipeContainer` and `InventoryUtil`*. Logic depending on these classes must be migrated to the new API structure. * The recipe evaluation system has been overhauled with the introduction of CRecipePredicate, which may require adjustments to how evaluation logic is invoked in your implementation. ---

    ✨ New Features and Enhancements

    [New Feature] Added `CRecipePredicate`*, a new system that allows for comprehensive evaluation across the entire recipe. This enables the implementation of highly flexible and advanced recipe validation logic. [New Feature] Added support for asynchronous operations*. This improves server performance by allowing heavy processing tasks to be handled off the main thread. ---

    🛠 Fix

    * Conducted internal cleanup by removing obsolete classes and optimizing interfaces to improve overall maintainability.
    24 downloads
  14. 5.0.16custom-crafter-api 5.0.16Dec 27, 2025

    Changelog

    5.0.16

    ⚠️ Breaking Changes

    The Enums used for configuring `CMatter` and `CRecipe` have been moved from standalone classes to nested classes* within their respective parent classes. This requires changes to how these Enums are referenced in existing code. * Several functions within the CustomCrafterAPI have been relocated to more appropriate classes based on their role. Users consuming the API should review their function calls and make necessary adjustments. ---

    ✨ New Features and Enhancements

    [New Feature]* Added a new feature that allows the customization of the recipe arrangement (layout) on the crafting screen. This enables more flexible UI design. (CraftUIDesigner) [Enhancement]* Enhanced Java interoperability for static functions and values. [Enhancement]* Users can now initialize several classes. ---

    🛠 Fix

    * We can now return correct answers for several search patterns.
    57 downloads
  15. 5.0.15-p2custom-crafter-api 5.0.15-p2Dec 5, 2025

    5.0.15(p1/p2)

    ⚠️ Breaking Changes / Important Dependency Change

    The MCKotlin-Paper plugin is now required* to be installed for the library to run, starting from this version. ---

    ✨ New Features and Enhancements

    [New Feature]* Added a new recipe that allows the use of air items as inputs. [Enhancement]* Subclasses of CRecipe can now override the required input item amount used during the recipe search process. [Enhancement]* Several default implementation classes have been made open to allow for extension through inheritance. [Other]* Added demonstration plugin code for the CustomCrafterAPI to the demo module.
    61 downloads

Similar projects

Plugin →