1.20 Changes & NMS Removals
Smithing Recipe Changes
Smithing Recipes created in previous versions of CC will be loaded and converted.
By default, they will require the Netherite Upgrade Template to work. So similar to Netherite upgrade recipes.
You can edit the recipe using the in-game editor and remove the template, so that the recipe works without any template.
- Smithing Recipes can have empty ingredients now. Leave the slot in the editor empty for that.
Crafting Recipe Changes
The crafting system got a complete overhaul again.
Crafting Recipes will register two Bukkit recipes now:
- Display recipe, that contains the ingredients with NBT and may be sent to the client's recipe book.
- Placeholder recipe, that contains the ingredients without NBT and is never send to the client.
Due to the placeholder recipes, it may override vanilla recipes, which then no longer work!
In that scenario, you need to create a custom recipe that is the same as the vanilla recipe and has a lower priority as the other custom recipe.
Campfire Recipe Changes
Campfire recipes are now completely based on Spigots API and no longer use any NMS code like in previous CC versions.
There are no breaking changes here, and it may even work more flawlessly than previously.
Item Type Merge Adapter
The item type merge adapter allows recipes to change the type of the result stack depending on an ingredient.
This is useful for repair/transform recipes, and other similar recipes, where the type of the ingredient should determine the result type.
The ID of the merge adapter is customcrafting:item and acts similar to the other merge adapters, with the difference that it only ever uses the first targeted ingredient slot.
For example, you could create a recipe that converts swords into axes:
Code (YAML):
# HOCON format
target
{
mergeOptions
:
[
{
slots
:
[ 4
]
adapters
:
[
{
key
:
"customcrafting:item"
typeMappings
{
# Maps the sword types of the ingredient to a type for the result stack
wooden_sword = wooden_axe
stone_sword = stone_axe
iron_sword = iron_axe
golden_sword = golden_axe
diamond_sword = diamond_axe
}
}
]
}
]
}
For the recipe to work, it of course needs to allow all the different variants of items.
You can do that by shift + right-click on ingredient slots!
This is not meant to replace type specific recipes like for boats, doors, etc.
For those it is still required to create separate recipes, because this can only ever target a single ingredient!
Recipe Book Editor Overhaul
Realiable Editing & Saving
When opening the Editor, it copies the current state of the Recipe Book, and you'll edit the copy from there.
(In comparison, prior to this update, you'd edit the original config directly)
When saving it, it creates a recipe_book_backup.conf of the current config.
It then saves the copy to the recipe_book.conf, which overrides the current config.
Overview Improvements
Each Category/Filter listed has an extra configure button below it that allows you to edit it, or move it to the left/right, to change the order of the categories/filters.
Future Improvements
This is plainly a redesign and bug fix update of the editor.
It still does not cover all the settings available in the recipe_book.conf, so editing the file is still the preferred way.
Recipe Book Improvements
With this update, you can finally properly sort recipes inside categories and/or filters. Plus, the Creative Inventory Categories are back and updated to the latest 1.19.4 categories. To get them to work, you need the new Recipe Book Config.
New Recipe Book Config
You can view the new recipe_book.conf on GitHub.
To use it on your server, you may need to delete your current recipe_book.conf and recipe_book.json to generate it, or replace the contents of the file manually.
Make sure to stop the server, then delete the config/s. Then start the server and it should generate the new config. Additionally, now the old recipe_book.json gets renamed to recipe_book.conf if that doesn't exist yet, instead of keeping both versions.
Separate Category Title Property
Each category can now have both a name and title property. The name is the name of the item in the main menu of the recipe book, while the title is the inventory title when the category is open. If title is unspecified, it uses the name instead.
Sorting
There is no GUI editor for this, so it must be configured via the recipe_book.conf. Each category and filter can have a sort property, that contains the sort behaviour settings.
Changelog
- Added support for empty ingredients in smithing recipes
- Added Crafting and Cooking placeholder recipes, that represent the recipe without NBT ingredients.
- Added docs to cooking listeners and manager adapters
- Added ICustomVanillaRecipe#toPlaceholder function to create the placeholder keys
- Added Campfire Listener to replace NMS system
- Updated Recipe Book Smithing Recipe Menu to 1.20
- Updated Smithing Recipes to handle templates in 1.20
- Updated Smithing Recipe Creator to support 1.20 templates
- Updated paper-api to 1.20
- Updated to WolfyUtils 4.16.12
- Fix buggy behaviour (like flickering and duplication) in crafting tables
- Removed the NMS based crafting system in its entirety
- #286 – Fix GUI Item Input Buttons deleting stacks on certain interactions
- #292 - Add Item Type Merge Adapter
- #290 - Fix Disappearing Ingredients When Using Recipe Book Recipe Completion
- #294 - Recipe Book Editor Overhaul
- #276 - Only Load Recipes/Items from visible & valid Files
- #275 - Collecting Grindstone results is no longer ignored in some cases
- #277 - Fixed Oraxen Durability incompatibility
- #279 - Improve Crafting Matrix Shrink Logic
- #269 - Add Missing Fields to recipe_book.conf & Don't save on shutdown
- #270 - Reduce Shapeless Recipe Check Memory Allocation
Full Changelog: v4.16.7.2...v4.16.8.0