Alchema icon

Alchema -----

In-world cauldron crafting, witchcraft and sorcery



Performance & API Refinements
Changelog
  • More complex recipes will now take priority over less complex recipes in the cauldron
    • Recipe complexity depends on item quantity (though this may change in the future. This is a test)
    • For example, if you have two recipes, one that takes 2 emeralds and 1 stone, another that takes 1 emerald and 1 stone, if 5 emeralds and 3 stone are thrown into the cauldron, the first recipe will trigger twice and the second will trigger once
      • This behaviour was previously dependent on registration order. Complexity ensures that the most complex recipe is crafted first
  • Added /alchema saverecipe which allows server owners to save one (or more) default recipe(s) that otherwise would not be automatically generated
    • This command makes the process simpler when new default recipes are added to Alchema and no longer requires an admin to copy/paste new recipe files from GitHub.
    • Tab completion will ensure that all available recipes are displayed and easy to save
    • Trailing wildcards are supported, meaning /alchema saverecipe concrete/* will save all recipes under the default concrete directory.
    • Permission: alchema.command.saverecipe. Default op
  • A new example_item.json will be generated in the root Alchema folder demonstrating all available options for items in Alchema's recipes files
  • Improvements to the efficiency of recipe searching. May be slightly more performant
  • Improvements to the efficiency of hash-based lookups for recipe and recipe ingredient objects
API Changelog
  • Many utility classes were removed in favour of ChocoCommons, a new library containing otherwise identical classes, just under a new package, wtf.choco.commons.*
  • GSON is no longer publicly accessible in Alchema. It was never meant for public use
  • Added 2 new methods to do with recipe complexity in the CauldronRecipeRegistry
    • CauldronRecipeRegistry#getApplicableRecipe(List<CauldronIngredient>, boolean) : CauldronRecipe
    • CauldronRecipeRegistry#getApplicableRecipes(List<CauldronIngredient>) : List<CauldronRecipe>
  • Added CauldronRecipe#getComplexity() : int
  • CauldronRecipeRegistry#registerIngredientType() will no longer accept registrations onEnable() and instead throw an exception. These calls should be made onLoad()
----------, Feb 26, 2021
Resource Information
Author:
----------
Total Downloads: 2,358
First Release: Dec 25, 2020
Last Update: May 16, 2022
Category: ---------------
All-Time Rating:
7 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings