HavenRecipes - Vanilla-like Custom Recipes [1.18 - 1.20.4] icon

HavenRecipes - Vanilla-like Custom Recipes [1.18 - 1.20.4] -----

Make custom recipes using the vanilla crafting system in minecraft.



Issues:██████████████ https://github.com/Valorless/HavenRecipes/issues
Dependency: █ █ █ ███ █ https://www.spigotmc.org/resources/valorlessutils.109586/

[​IMG]
[​IMG]
[​IMG] [​IMG]
About
Make custom recipes using the vanilla crafting system in minecraft.
Using these recipes, you can make uncraftable items craftable, or even make unique special items.

Special things you can add, which you can't using the vanilla system:
  • Enchants
  • Attributes
  • CustomModelData
  • Permissions
  • NBT Tags
  • Use pre-made items
Using HavenRecipes' advanced recipes, you can pre-make items in-game, export them using /havenrecipes export, and use them directly in the recipe!
[​IMG]
Exporting your currently held item, will generate a file.
Inside this file, is a big string of text; we use this text inside the recipe.
Code (YAML):
############################################################
# +------------------------------------------------------+ #
# |                  Advanced Recipe                     | #
# +------------------------------------------------------+ #
############################################################

# All fields except for 'enabled', 'shape' and 'ingredients' are optional, and can be removed.

### Template Recipe
enabled
: true
# Whether the shape matters like crafting a sword, or doesn't matter like crafting sticks.
# Types: SHAPED / SHAPELESS
recipe-type
: SHAPED
# You can change the crafted item to a custom item, by exporting it as json, and putting it here.
# You can export any item by holding it, and using '/havenrecipe export'
# NOTE: Not all NBT data is accepted by the vanilla system, and may result in an empty recipe.
custom-item
: ' { "==": "org.bukkit.inventory.ItemStack", "v":3700, "type": "DIAMOND_SWORD", "meta": { "==": "ItemMeta", "meta-type": "UNSPECIFIC", "display-name": "{\"extra\ ":[{\"bold\ ":false,\"italic\ ":false,\"underlined\ ":false,\"strikethrough\ ":false,\"obfuscated\ ":false,\"color\ ":\" #FB8E1D\",\"text\":\"V\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FB841B\",\"text\":\"e\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FB7A19\",\"text\":\"r\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FB7017\",\"text\":\"y \"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FC6515\",\"text\":\"D\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FC5B13\",\"text\":\"e\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FC5111\",\"text\":\"c\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FC470E\",\"text\":\"e\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FC3D0C\",\"text\":\"n\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FC330A\",\"text\":\"t \"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FC2908\",\"text\":\"S\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FD1E06\",\"text\":\"w\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FD1404\",\"text\":\"o\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FD0A02\",\"text\":\"r\"},{\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false,\"color\":\"#FD0000\",\"text\":\"d\"}],\"text\":\"\"}","lore":["{\"text\":\"\",\"extra\":[{\"text\":\"Indeed Decent.\",\"obfuscated\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"color\":\"gray\",\"bold\":false}]}"],"enchants":{"DAMAGE_ALL":7,"DURABILITY":10}}}'
# How the recipe is layed out in the crafting table.
# Use X for air/nothing.
shape
:
- NNN
- NEN
- NNN
ingredients
:
N
:
  material
: NETHERITE_BLOCK
E
:
  material
: ENDER_EYE
 
This string contains all information about the item, and will be converted into an item by the recipe system.

Using CustomModelData and a server resourcepack to apply textures, we can create new types of items, such as copper.
Default copper cannot be used for anything but decorations, and lightning rods.
So doing this, allows us to create Armor and Tools from Copper.
(Or other materials like Crying Obsidian)
[​IMG]

I've created an example of how to make this.
Download: https://github.com/Valorless/HavenRecipes/tree/main/CustomItemExamples/HavenRecipes%20-%20Copper%20Items

Since we cannot change durability on items by any means, I'm using Unbreaking 2 to give the Gold base additional durability, while still remaining below Iron.

Disclaimer: Due to Minecraft limitations, we cannot change Armor textures without using mods such as Optifine or other CIT mods.

Commands

- /havenrecipes export - Exports the item currently held.
- /havenrecipes reload - Reloads config.yml, lang.yml & all recipes.

All commands can be shortened to /hrecipe & /hr

Permissions
- havenrecipes.* - Gives all HavenRecipes permissions.
- havenrecipes.export - Allows you to export items.
- havenrecipes.reload - Allows you to reload the plugin.

Dependency
My plugin requires the utility library plugin ValorlessUtils v 1.5.3.173 or newer to function.
It's 100% free, and works with all my plugins.
I created ValorlessUtils with the purpose of making my plugin development shorter and easier.
In the case of HavenRecipes, HR sets up the recipes from the recipe files, and feeds it to ValorlessUtils, which does the rest of the work.
In addition, VU also does most of the job with utilities and config files. (Which also include the recipe files)

Why not just have it all in HavenRecipes?
Simple: size, updates, and time.
The size of all my plugins would skyrocket, especially if you use multiple of my plugins.
I'd have to update all my plugins, when I make changes or fixes to a function.
And the time it would take to add and implement these functions, is greater than just implementing them.

While I do have some functions such as my Lang class. (The one fetching and parsing values from lang.yml)
Most of my commonly, and sometimes niche used functions, become a part of ValorlessUtils, to be used now or later, by myself and potentially others.

Plugin Support
HavenRecipes supports PlaceholderAPI.
[​IMG]

Disclaimer
Since HavenRecipes uses the vanilla crafting system, you cannot define ingredients, such as amount or custom names.
If you want this, you can check out CustomRecipes by MehBoss

I helped with the development of this plugin, and can confirm it's a good plugin and developer.

Please if you discover any bugs, or the plugin isn't right for you.
Please do not leave a bad review. Instead message me and I'll fix the bug.
[​IMG]
Resource Information
Author:
----------
Total Downloads: 172
First Release: Feb 4, 2024
Last Update: Mar 9, 2024
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings