You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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#registerIngredientType() will no longer accept registrations onEnable() and instead throw an exception. These calls should be made onLoad()