[1.9-1.16] Custom Recipes and Crafting (CraftEnhance)
There's also a discord now! https://discord.gg/8xYEbft
More detailed info is written in the github wiki, so make sure to check that out too.
And also, Donations are really appreciated! I've put alot of my spare time into developing this opensource plugin. So maybe consider buying me a nice cup of coffee! :)
CraftEnhance is the first plugin that allows crafting with all custom items. It's very unique. Try and see how awesome it is! It's compatible with basically every bukkit or spigot version.
Create recipes with all custom items
This means you can add recipes with enchantments, custom names, a durability, potions or anything you can think of that exists in the game.
Full GUI support.
Editing recipes, creating recipes, viewing recipes and ordering the recipes in the viewer GUI are all possible through inventory GUIs.
Middle click to edit.
Opening the editor for a recipe is not done through a command, but done through a simple middlemouseclick on a recipe in the recipe viewer. This does require a permission.
Set permissions for a recipe.
In order to completely let server owners be owners of their server, permissions for the custom recipes exist. People that don't have the permission for a custom recipe, can't craft or see it. The 'seeing' part can be configured.
Edit items in-game.
To make cool recipes an item editor is needed. This item editor allows users to set colored lore, set colored names, set the durability, add enchantments, add itemflags or even set the localizedname of items. And for the record: itemflags are the things that allow you to hide enchantments or attributes on items!
Full tab completion support!
I personally think this is an obligated feature to have in the 1.13 update of Minecraft. No more remembering all commands, just the first few letters of a few basic ones.
Creating recipes is easy and done through GUI's. Here's a quick video where everything is explained.
Making the custom items for your precious recipes is also really easy to do as explained in this video.
SoulStriker has also kindly made a showcase for this plugin:
These are all the command you need when using this plugin. If something is between [these brackets], it means it's an optional part of the command. If something is between (these backets) it's not optional.
/ceh
Just use autocompletion on this command! Oh and by the way, it's short for CraftEnHance.
/recipes
View the available custom recipes in a GUI. You can also use the /ceh viewer command if you're really feeling like typing this longer command.
/ceh createrecipe [key perms]
Create a new custom recipe with a generated key by default. This will open a recipe editor GUI. You can leave the perms empty, but if you wanna set a permission, you also gotta set a key!
/ceh reload
Reload everything!
/ceh specs (key)
Shows the specifications of the recipe with the specified key. You can find the key of a recipe by middle clicking it in the recipe viewer to open the editor for it where the key is displayed.
/ceh setpermission (key) (permission)
Set the permission of the recipe with the specified key to the specified permission. Again, you can find the key of a recipe in the editor.
/ceh changekey (oldkey) (newkey)
Simply changes the key of a recipe to "newkey"!
/ceh cleanitemfile
Cleans the items.yml file meaning that it'll remove all saved unused items from the file. I wouldn't recommend to use this because it doesn't affect performance of your server much or at all.
/edititem
This is the basic command for editing items. Please use tab completion on this.
/edititem name [name]
Edit the name of the item in your main hand. Make sure that you use all the colors you want!
/edititem durability [1-100]
Set the durability of the item in your main hand to [1-100]% of it's max durability.
/edititem enchant [enchant] [lvl] [enchant] [lvl][..]
Set your specified enchantments to your held item. It removes all enchants and then adds the specified ones.
/edititem itemflag [itemflag] [itemflag] [..]
Toggle the specified itemflags on your held item. This are the available itemflags:
HIDE_ATTRIBUTES |
Setting to show/hide Attributes like Damage
|
---|---|
HIDE_DESTROYS |
Setting to show/hide what the ItemStack can break/destroy
|
HIDE_ENCHANTS |
Setting to show/hide enchants
|
HIDE_PLACED_ON |
Setting to show/hide where this ItemStack can be build/placed on
|
HIDE_POTION_EFFECTS |
Setting to show/hide potion effects on this ItemStack
|
HIDE_UNBREAKABLE |
Setting to show/hide the unbreakable State
|
/edititem lore [line_number] [lore]
Set the specified line of the lore of your held item to be the specified tekst. The tekst section can be left empty if an empty line needs to be added.
The permissions are configurable!
However, these are the default permissions. You can also look these up in the config.yml file.
craftenhance.edit
/ceh createrecipe, /ceh cleanitemfile, /ceh orderrecipes, /ceh setpermission, /ceh specs, /ceh changekey. This is also the permission required to middleclick recipes to open the editor.
craftenhance.view
/ceh viewer, /recipes.
craftenhance.edititems
All commands that start with /edititem.
Alongside the config.yml, 3 other files will be created: guitemplates.yml, recipes.yml and items.yml.
guitemplates.yml
You can fully customize all the gui's that you see using this file. I think they're faily self-explanatory given the preset files, so I'll only go over the basics. "fill-space" is a range of slot indexes where items can get filled, like the recipes in the recipes viewer. "template" specifies the items that are put into the inventory. Make sure that those don't overlap with fill-space. In template the buttons are also made.
"buttons" specifies where the buttons are located, where the value is the type of the button. Please refer to the preset file to see your options.
recipes.yml
You can manually make or edit all your recipes in here. The recipes use item keys of items in the items.yml file. However, because all recipes can be created through gui's, I'll not go over this more in-depth.
items.yml
Items are stored here with a unique key. This is also managed by the plugin, so there's no real need to touch this.
config.yml
Some of the messages and permissions are stored in here. One of the important settings is whether you want people to see a recipe that they don't have permissions to.
In reply to severalswearwords:
Sorry, but that version is just too old to support.
Ok I have a huge question. Is there any way to make crafts work with any durability? Or maybe like half durability or above? (2nd choice is preferable one)
In reply to smalllbuddy:
Yeah you can create recipes with durability! The plugin even includes a way of setting the durability of items.
I have a small chain of recipes, similar to enchanted items in Hypixel Skyblock, that goes
5 diamonds -> 1 enchanted diamond
9 enchanted diamond -> 1 enchanted diamond block
I have them reversable too so you can get 9 enchanted diamonds from the enchanted diamond block, but this disables the regular recipe of a diamond block to 9 diamonds. Can you fix that?
In reply to eilrahcrrodmc:
That should work. I'll have to test your cases to try and fix that. A workaround is to manually add those recipes as custom ones so they don't get overwritten.
How do I to let anyone do /recipes? If I need to give people permissions, how do I do that? I'm VERY confused
In reply to smalllbuddy:
You need to give your players the "ceh.view" permission.
Just paste that in your permissions.yml file of your server.
In reply to DutchJellydev:
Ok so the problem was, since I'm new to bukkit, I didn;t know how to give permissions. I found out that you need a plugin to do that XD thank you!
Is there a way to edit/delete a recipe you make?
In reply to eilrahcrrodmc:
Yeah! Middleclick the recipe in the /recipes GUI! I might add some item lore to make this more obvious.
In reply to DutchJellydev:
Thanks!
There's one issue I've found:
Other than that, Amazing plugin!
In reply to ThizThizzyDizzy:
Thanks for pointing out that weird bug. I'll look into it.
A solution for the time being is to use the /edititem command like: /edititem name &fCustom Stick.
In reply to DutchJellydev:
/edititem causes an exception
I'm using craftbukkit. It seems this plugin is referencing BungeeCord ChatColor?
[08:37:49] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'edititem' in plugin CraftEnhance v2.3.4
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:148) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at org.bukkit.craftbukkit.v1_14_R1.CraftServer.dispatchCommand(CraftServer.java:689) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.PlayerConnection.handleCommand(PlayerConnection.java:1590) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1444) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.PacketPlayInChat.a(SourceFile:37) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.PacketPlayInChat.a(SourceFile:9) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(SourceFile:144) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(SourceFile:118) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.MinecraftServer.aX(MinecraftServer.java:867) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:860) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeAll(SourceFile:103) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:843) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:784) [craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]
Caused by: java.lang.NoClassDefFoundError: net/md_5/bungee/api/ChatColor
at com.dutchjelly.craftenhance.itemcreation.ItemCreator.setDisplayName(ItemCreator.java:59) ~[?:?]
at com.dutchjelly.craftenhance.commands.edititem.DisplayNameCmd.handlePlayerCommand(DisplayNameCmd.java:29) ~[?:?]
at com.dutchjelly.craftenhance.commandhandling.CustomCmdHandler.handleCommand(CustomCmdHandler.java:90) ~[?:?]
at com.dutchjelly.craftenhance.CraftEnhance.onCommand(CraftEnhance.java:94) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
... 17 more
Caused by: java.lang.ClassNotFoundException: net.md_5.bungee.api.ChatColor
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_221]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:135) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:81) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_221]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_221]
at com.dutchjelly.craftenhance.itemcreation.ItemCreator.setDisplayName(ItemCreator.java:59) ~[?:?]
at com.dutchjelly.craftenhance.commands.edititem.DisplayNameCmd.handlePlayerCommand(DisplayNameCmd.java:29) ~[?:?]
at com.dutchjelly.craftenhance.commandhandling.CustomCmdHandler.handleCommand(CustomCmdHandler.java:90) ~[?:?]
at com.dutchjelly.craftenhance.CraftEnhance.onCommand(CraftEnhance.java:94) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[craftbukkit-1.14.4.jar:git-Bukkit-2012f1e]
... 17 more
In reply to ThizThizzyDizzy:
Oh well.. I'll fix that too then!
In reply to DutchJellydev:
Thanks! :D
hi when i use the recipe creator every time i click on save changes delete reset recipe and previouse page i pick up the block and my console says always| Could not pass event InventoryClickEvent to CraftEnhance v2.3.2| ?
In reply to Xdivvel666:
Make sure to use the latest version, 2.3.2 is outdated! I think that'll resolve your issue.
I absolutely love! This plugin. Its just so simple and easy to use. I couldn't ask for anything more except, the plugin randomly stopped working and my server wouldn't even be a thing without the plugin. I have so many dang recipes that i don't want to lose. Please help I need this plugin.
In reply to nerdysquirtlerl:
I sent you a PM so we can resolve this.