RecipeManager
RecipeManager 2
Complex recipes made easy !
Features
NOTE: I will refer to some .html files in here, those files can be found in your /plugins/RecipeManager/ folder after you load the plugin the first time. The html files will also be updated automatically on new versions.
- Add new recipes (or remove existing ones):
- Shaped or shapeless recipes with optionally multiple results
- Furnace (+ Blast Furnace and Smoker) recipes with optional custom cook time and optional special fuel
- Fuel recipes with custom burning time or even random time from specified range
- Anvil, Brewing, Campfire, Stonecutting, and Compost recipes
- NEW: Grindstone and Cartography recipes with configuration for disabling default functionality
- See 'basic recipes.html' for more info.
- Making recipes more special with flags, featured flags:
- @permission to limit a recipe (or result) to specific permission node(s)
- @remove, @restrict and @override to remove/restrict/override existing recipes, including Minecraft recipes.
- @ingredientcondition to make extra requirements from ingredients like enchantments, ranged data values, stack amounts, etc
- @keepitem to keep an ingredient from using up and optionally damaging it in the process
- @modmoney/@reqmoney and their experience and level counterparts to require/give/take money/exp/level from crafter
- @cooldown to limit the usage of the recipe
- And a lot more, see 'recipe flags.html' for all of them including documentation.
- Flags can also be added to results to make them more special, some featured result flags:
- @cloneingredient to clone an ingredient's features over to the result, like data value, amount, enchantments, etc
- @itemname and @itemlore to edit a result's display name and description with colors
- @potionitem and @fireworkitem to design your custom potions and fireworks
- @getrecipebook to get a RecipeBook as result, ones generated by this plugin with recipes in them
- And a lot more, see 'recipe flags.html' for all of them including documentation.
- Flexible recipe files to add your recipes in:
- You can use any kind of spacing and letter casing you want in recipe files, also supports comments
- Design your file names and folder structure as you want in the 'recipes' folder
- Auto-generated recipe books with high customization:
- Pick which recipes to be added and to what volume
- Re-arrange them as you like
- Books that players have are automatically updated when edited by admin and reloaded
- For more information see 'recipe books.yml' file.
- Other features:
- Local documentation files for ease, the .html files that will be generated the first time you run the plugin
- Customizable settings, messages and item/data/enchant aliases in their respective YML files
- Supports Vault for economy and permission groups
- API for plugin developers, custom events and utility methods for most features
Installing or updating
- Download the latest version of the plugin
- Place the RecipeManager.jar file in the plugins folder and start/restart the server
- Now the plugins/RecipeManager/ folder is created which contains configuration files (.yml) and documentation files (.html)
Using the plugin
- Run the plugin at least once to allow the .html files to be generated, then start with 'basic recipes.html'.
- Plugin settings can be configured in "plugins/RecipeManager/config.yml"
- When you're done editing, type rmreload in server console to reload everything without a server restart.
- Commands and permissions can be found in 'commands & permissions.html' file.
Changelog
In the jar file, auto-extracted when first ran to plugins/RecipeManager/changelog.txt and on GitHub.
Having problems, found bugs ?
If you have any issues or found some bugs, please create a ticket. But first you should check other tickets if the issue has already been reported and then check out the Discord server below to ask for help.
Note: I don't support any previous versions other than the absolute latest, so if you used an older version, update and test again.
Source code
Source code is on github, feel free to look at it, improve on it and provide feedback: https://github.com/haveric/RecipeManager2 If you need, you can use code from my project but please provide credits to haveric and THDigi.
Support project
If you find my plugins useful and want to help support future development and faster updates, please consider donating and fueling my need for coffee:


-
View User Profile
-
Send Message
Posted Nov 16, 2015@YukioJon
Can you provide all of your recipes so that I can test against them to see if there is something misconfigured or conflicting? I should have a chance tonight to actually test this to see what might be going wrong.
-
View User Profile
-
Send Message
Posted Nov 12, 2015@haveric
Ah, thanks very much, I didn't realize you could define different results based on ingredient conditions for the same shape, I thought it was percents only.
-
View User Profile
-
Send Message
Posted Nov 12, 2015@Jikoo_K
The first part about lores being first is interesting and I'll look into how that might work.
The second part is that you can only define a recipe with the same ingredients once. Because of this, you have to create one recipe, with multiple results such as this:
-
View User Profile
-
Send Message
Posted Nov 12, 2015I'm looking into using your plugin to allow users to craft an enchantment-style lore onto items, however, I've run into a couple setbacks.
My most minor complaint is that I can't choose what position the lore is added. I'd prefer it to be first in the list in case of other lore to better mimic enchantments.
More importantly, there's more than one type of fake enchantment to add in this manner - things may already have some lore, but not the lore that is being added. However, I don't want duplicate fake enchantments.
I created 2 recipes which should cover all cases:
The first recipe properly allows any diamond pick with lore that does not contain the words "Tunnel Bore" but does not accept any diamond pick without any lore. The second would cover the rest of the cases in which I want to add lore - if it worked. In console, I get "Fatal: Recipe already created with this plugin, file: enchants" when the second recipe is loaded.
Any advice, or is it just not possible to do what I'm trying to do?
-
View User Profile
-
Send Message
Posted Nov 11, 2015@xH3LLRAIZ3Rx
That plugin hooks into CraftBukkit and uses reflection to accomplish that, not the Bukkit API.
-
View User Profile
-
Send Message
Posted Nov 10, 2015@haveric
uhh yes it is? http://dev.bukkit.org/bukkit-plugins/head-items/
-
View User Profile
-
Send Message
Posted Nov 10, 2015@xH3LLRAIZ3Rx
Using textures is not possible with the Bukkit API. You have to use a real minecraft account at this time.
-
View User Profile
-
Send Message
Posted Nov 9, 2015can you add Custom Skull Food Recipes? where you specify Texture ID from heads.freshcoal.com
-
View User Profile
-
Send Message
Posted Nov 6, 2015@haveric
I hadn't thought of using the "@cloneingredient" flag, I assumed it didn't also clone the condition. Thanks for the pointer.
On the repeating recipes, I was seeing if I could create a crude alchemy system since the "brewing" recipes are experimental IIRC. Something like:
combine
@ingredientcondition long_grass:0 | lore <green>Earth
@ingredientcondition red_rose | lore <gold>Fire
potion:0 + long_grass:0 + red_rose
potion:0
@name Brewed Potion
However, instead of looking for only "red_rose" with the lore of "fire", it can look for any item with said lore. So that say a "dirt" can be used in place of the "long_grass:0", since they both have the "earth" element.
-
View User Profile
-
Send Message
Posted Nov 5, 2015@Nuchiha
Keeping an ingredient's condition is easy enough. Take a look at the @cloneingredient flag in "recipe flags.html"
The second part, using any item (or a variant of items) is something that I'd like to add at some point, but also adds a greater chance of conflicts in recipes. I have ideas for how to handle this, but haven't gotten to it yet.
For the time being though, if you want to add a lot of recipes using a varying ingredient, you could try adding duplicate flags to the top of the file (which should get applied to all recipes in that file) which might at least reduce the amount of copying needed.
If you do go down the route of repeating the recipes, please send me what you create so that I can see how I might be able to improve or simplify the recipe creation.
-
View User Profile
-
Send Message
Posted Nov 5, 2015First I wanted to say thanks. This plugin is some really impressive stuff, it's simple but the uses for it are limitless. I've been messing around with it for three days now with all sorts of ideas. As far as I know this is the first plugin of it's kind.
I do have two problems I've ran into though. As far as I know there's no way for an item to keep it's condition if it's apart of the result. IE, crafting a sword with an echanted book and keeping it's previous condition while getting the enchantment. Am I missing something or is it not possible?
The second was if there's a way to have a recipe use any item w/ an appropriate name or lore. IE, a recipe requires a stick and any item with the lore "example". One work-around I considered was repeating the recipe for each possible combination, but it takes much time.
-
View User Profile
-
Send Message
Posted Nov 3, 2015@thu468
I assume you're asking about having two ingredients of a recipe be the same item. In that case, you can use the needed attribute of @ingredientcondition as such:
The needed attribute sets the number of ingredients that need to match the condition. By default, it will try to match to all of a given type, but needed makes it so you only need that many. Unfortunately, this also makes it so the ingredients can be placed in any order, but it is a small tradeoff for now.
For coal, you can use the data attribute of @ingredientcondition.
-
View User Profile
-
Send Message
Posted Nov 3, 2015@haveric Is it possible to make a recipe that use two different type of diamond? with two different name and lore but same minecraft ID Also i cant seem to have same item but different meta id with name and lore. Like having coal:1 and coal:0
-
View User Profile
-
Send Message
Posted Nov 3, 2015@haveric
Ok so the error stop. and it doesnt look like anything else is going wrong
-
View User Profile
-
Send Message
Posted Nov 3, 2015@haveric
Ok thanks will do
-
View User Profile
-
Send Message
Posted Nov 3, 2015@thu468
Just sent you a PM with a link to a test version. Please try it out and let me know if it fixes your issues.
-
View User Profile
-
Send Message
Posted Nov 3, 2015@thu468
As a temporary solution, you could revert to v2.6 as this was before those events were added. You'll lose any new flags and bugfixes, but until I get a chance to fix this, it's probably your best bet.
-
View User Profile
-
Send Message
Posted Nov 3, 2015@haveric
Ok thanks its like spaming my console a lot
-
View User Profile
-
Send Message
Posted Nov 3, 2015@thu468
I don't offer support over skype, but I will take a look tonight to see if I can replicate this. I have an idea based off the error you provided, but will need to test it.
-
View User Profile
-
Send Message
Posted Nov 3, 2015It seem that i was missing this part at the bottom here
[11:58:26 ERROR]: Could not pass event RecipeManagerFuelBurnRandomEvent to RecipeManager v2.6.2 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at haveric.recipeManager.Events$1.run(Events.java:1105) [RecipeManager.jar:?] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:726) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:367) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:657) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45] Caused by: java.lang.NullPointerException at haveric.recipeManager.Events.afterBurn(Events.java:1127) [?:?] at sun.reflect.GeneratedMethodAccessor1411.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) [?:1.8.0_45] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) [Spigot-1.8.7.jar:git-Spigot-d2856ae-8f0f4ed] ... 11 more