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:
In reply to tanisou:
As of the latest release, there is full support for that with
Example:
In reply to Ryan_plays_mediocrely:
This is great! Is it also possible to use this flag with ingredients?
In reply to bufhimat:
Yes, see @ingredientcondition with the attribute custommodeldata
I want to remove the minecart crafting recipe. How would I do that?
In reply to dan123yal:
I can not go into many details due to last time I did it it was over 2 year ago. (I did it on 1.9.4 server)
simply there is a plugin command to extract all recipe to unuse folder in recipes.
then you can use/edit that as you want if you want to keep something.
now to the part to remove vanilla recipe. It's somewhere in config
In reply to dan123yal:
pIaybabe has the right idea, but I'll fill in the details.
Start my using /rmextract to get all the vanilla recipes exported to 'plugins/RecipeManager/recipes/disabled/<some file>.txt' and open that with an editor. Search for the recipe you want to find, which in this case is:
Copy that over to a file at 'plugins/RecipeManager/recipes/<your recipe file>.txt' and modify it with @remove such as:
That will then remove the minecart recipe once the server is started/reloaded.
If you're new to the plugin, I'd recommend looking at some of the html files within 'plugins/RecipeManager/' to get a better start, specifically the 'basic recipes.html', 'advanced recipes.html', and 'recipe flags.html'. As always though, feel free to ask if you have any other questions.
Just wanted to let everybody know that v2.15.0 has just been released (sitting in the approval queue atm, see github if you can't wait). It's been a long push, but we're finally here! Some quick info on the update:
I tried to make everything backwards compatible, but I focused on 1.12, 1.13, and 1.14. Was able to test all the way back to 1.8.8 though and it seems to be working, although I didn't get too in depth with anything there.
In 1.13 and 1.14, there are some major changes. Durability/data is no longer allowed in an ingredient (You can still use the ingredientcondition flag if you need to, but data is largely unsupported now, except for tools/weapons). For now, you will get warnings that can be ignored, but I'd recommend converting them over. "item aliases.yml" mostly contains 1.13 id conversions so that you may not even need to update anything from old id formats (but again, I'd recommend you do)
Instead though, you can define multiple ingredients per slot, which allows for much greater freedom in building recipes. Note that the combinations will still have to be unique across all recipes, but it should be much easier to define a large group of recipes that can accept more materials.
I did my best to get rid of the restrictions that occurred with shift clicking recipes. You should now be able to shift click craft to your heart's content. Speaking of hearts, max_health and other attributes is finally here in 1.13/1.14. See the ItemAttribute flag.
There are new recipe formats for campfire, blasting, smoking, and stonecutting, although stonecutting doesn't have support for flags yet and some of these behave a little strangely on /rmreload. I'd highly recommend restarting your server after making recipe changes for the best experience.
I'm sure there's a lot more that I'm missing, but I hope you guys enjoy and look forward to seeing what everybody can do with RecipeManager going forward. Thanks again for all the support along the way and look out for some new things coming along soon.
Finally, for those interested in some nerd stats. This update included 131 commits, 328 changed files with 46,792 additions and 38,425 deletions. (There may have been a restructure or two along the way)
Just a quick status update as it's been a while. I've been pushing pretty hard the last couple weeks and I am nearing a release in another week or two if everything goes correctly.
The current dev versions appear to fully support 1.12 through 1.14 (including new recipe support for some of the new blocks in 1.14)
The main things I have left are:
1.13 has been one of the most painful updates I've ever worked on, but I hope once this update gets completed, releases should return to a somewhat normal schedule. I appreciate all of your support as well as your patience with this update.
In reply to Ryan_plays_mediocrely:
thx!! can't wait to fill in lot of item I premade in my world xD.
BTW how it going with new text system? Im were looking forward for the translate
(not plugin translate... it ah.... in-game text thing relate to resource pack)
any way I grad to see you again!
In reply to pIaybabe:
I'm not sure what you mean by new text system. Can you provide an example or try clarifying that?
In reply to Ryan_plays_mediocrely:
display:{Name:"{\"translate\":\"item.wooden.dagger\"}}
display:{Name:"{\"text\":\" Wooden Dagger\",\"color\":\"white\",\"italic\":false}}
these 2 nbt show the same result but the "translate" will work another way around
if will find lang.yml in resourcepack and get the text from there.
resourcepack\assets\minecraft\lang\en_us.json
in json -> "item.stone.dagger":"§rStone Dagger"
but with the translate it can also translate into other lang which very helpful on my local lang
resourcepack\assets\minecraft\lang\th_th.json
in json -> "item.stone.dagger":"§rMY NUDDLE LANG HERE"
In reply to pIaybabe:
I wasn't aware this was a thing, but I'll look into it and see if it's possible.
I'm trying to make a recipe for an evoker spawn egg that uses vex and villager spawn eggs in the recipe, but I can't get it to work; I don't even know if it's possible.
This is the recipe I'm trying to make:
emerald + emerald block + emerald
vex egg + villager egg + vex egg
iron ingot + totem of undying + iron ingot
Can someone help me out here?
In reply to Entity587:
Sorry for the late reply, seems there is just some naming issues with the materials:
If you run into other issues like this, take a look at "name index.html" in your RecipeManager folder and reference the "Material List" and the "Entity Type List"
Project Update: I know you guys are frustrated about the lack of 1.13 updates. I'm frustrated I haven't been able to work on it as much as I want. Real life hasn't slowed down like I had hoped it would by now, but I am still going to set aside some time to devote to plugin development again. An initial update may still take a long time, so I appreciate your patience.
If you rely on this plugin for your server, please send me a pm as I'd love to hear from you and how you're using the plugin and I know it would give me an extra boost of motivation to get back into this.
If you are a plugin developer or know someone who is and wants to help out, please feel free to reach out. I've been running this thing so long by myself and as I'm sure you've all seen, it's not always sustainable. I'm always open to contributors and ideas.
Just a quick update since I've had a lot of people message me. Where's the 1.13 update?
I've been a lot busier in real life the last year so it has made it harder to focus on updates here. I spent a lot of that time writing Mock tests to help prevent bugs getting re-introduced and maintain stability across releases. Unfortunately, 1.13 is a massive update for RecipeManager and most of those tests no longer work due to internal api changes.
I have no intention of abandoning this project, but I also don't know how quickly I can get a release out that maintains the stability/functionality the old versions had. I should have put this message out sooner and for that I am sorry.
If there are plugin developers out there who think they might be interested in helping out, please pm me as I would appreciate any help.
I'll try to make sure updates happen here more often, but I'd ask everyone at this point to please be patient. This will be one of the biggest updates for RecipeManager we've ever had due to everything that has changed and it's going to take quite a bit of time and effort.
In reply to haveric:
So... Plugin abandon? It been a while.
Hello!
When using a friend's recipemanager configurations (their recipes basically), the game parses none of them and throws this error in console:
[00:25:36 INFO]: [RecipeManager] Error while reading recipe files! (key)
[00:25:36 WARN]: java.lang.IllegalArgumentException: key
[00:25:36 WARN]: at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122)
[00:25:36 WARN]: at org.bukkit.NamespacedKey.<init>(NamespacedKey.java:72)
[00:25:36 WARN]: at haveric.recipeManager.recipes.BaseRecipe.getNamespacedKey(BaseRecipe.java:93)
[00:25:36 WARN]: at haveric.recipeManager.recipes.CombineRecipe.toBukkitRecipe(CombineRecipe.java:174)
[00:25:36 WARN]: at haveric.recipeManager.recipes.CombineRecipe.toBukkitRecipe(CombineRecipe.java:26)
[00:25:36 WARN]: at haveric.recipeManager.recipes.BaseRecipe.getBukkitRecipe(BaseRecipe.java:124)
[00:25:36 WARN]: at haveric.recipeManager.recipes.ConditionEvaluator.getRecipeFromMap(ConditionEvaluator.java:99)
[00:25:36 WARN]: at haveric.recipeManager.recipes.ConditionEvaluator.recipeExists(ConditionEvaluator.java:46)
[00:25:36 WARN]: at haveric.recipeManager.recipes.CraftRecipeParser.parseRecipe(CraftRecipeParser.java:110)
[00:25:36 WARN]: at haveric.recipeManager.recipes.RecipeFileParser.parseFile(RecipeFileParser.java:54)
[00:25:36 WARN]: at haveric.recipeManager.RecipeProcessor.run(RecipeProcessor.java:102)
[00:25:36 WARN]: at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:63)
[00:25:36 WARN]: at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52)
[00:25:36 WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22)
[00:25:36 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[00:25:36 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[00:25:36 WARN]: at java.lang.Thread.run(Unknown Source)
[00:25:36 INFO]: [RecipeManager] If you're using the latest version you should report this error at: http://dev.bukkit.org/server-mods/recipemanager/create-ticket/
On his server, the recipes work fine, and checking the configuration files, they are indeed correctly written. They aren't parsed, and don't work on my server.
Hello! I have a problem when I try to use multiple items with same ingredient condition in my recipe.
craft
iron_ingot
iron_ingot
stick
= 340
@name <gray>Craft: <yellow>Mechanical Sword
@ingredientcondition iron_ingot | name §7Mechanical Blade | lore §7A mechanical blade with | lore §7wire that can be connected | lore §7to a power source to increase | lore §7its power.
@ingredientcondition iron_ingot | name §7Mechanical Blade | lore §7A mechanical blade with | lore §7wire that can be connected | lore §7to a power source to increase | lore §7its power.
@ingredientcondition stick | name §1Mechanical Handle | lore §7A mechanical handle with a | lore §7mechanical heart as power | lore §7source.
@command /mm i give {player} MechanicalSword
Here I'm trying to craft an item using two items of the same type, with the same name and lore. And it seems not to work at all, no matter what I try. Is it just not supported?