Recipe Finder
The lightweight recipe lookup and display plugin.
Ever forgotten the recipe for an item?
Now, with Recipe Finder, you can find the recipe of an item with as little effort as a single command!
Current Features:
/recipe <item name>
will display the recipes for all items that match the given item name./recipe
on its own will display the recipes of the item in your hand.- Multiple recipes will be scrolled through one by one.
- Clicking an item in a recipe will display the recipes of said item.
- Smelting recipes are also supported.
- Names are matched in such a way that commands such as
/recipe chestplate
will display the recipes for all types of chestplate. - The plugin hooks into the Bukkit/Spigot API, and hence is lightweight, fast and scalable.
- Any recipe registered on the server through the API should be visible to the plugin.
- Threading ensures that multiple users can access the recipe list simultaneously.
- Recipes for coloured wool and dyes also supported!
- Multiple languages and renaming of items is now fully supported!
- Memory efficient option available at the expense of name-familiarity
The interface starting from the command /recipe door
Commands:
Command | Description |
---|---|
/recipe <item name> |
Displays the recipes associated with the item with the given name. |
/recipe |
Displays the recipes associated with the item in your hand. |
/recipereload |
Reloads the plugin from config. |
Permissions:
recipe.lookup
: gives access to/recipe
.recipe.reload
: gives access to/recipereload
.
Configuration:
When you first start up the server with the plugin installed, a new folder will be generated in your 'plugins' directory that is called 'RecipeFinder'. Inside this folder you will find a file called 'config.yml'. This file is used to configure the Recipe Finder plugin. Inside the file you will see the following options:
Option | Meaning | Default Value |
---|---|---|
languages enabled: |
This option should only be used for server admins who have critical memory/performance requirements. This will disable the ability to rename items as well as change the language of the plugin. The name of the items in the lookup will default to the given API names, which can sometimes be obscure such as 'lightstone' and 'cloth leggings', however the plugin will not spend time parsing language files or store translations in memory. This option when set to false is more time and memory efficient therefore, at the cost of usability. | true |
language file: |
This refers to the language file, located inside the 'RecipeFinder/lang' directory, that you wish to use for translations or renaming of lookup names | en_US.default.lang |
If you wish to change the language of the plugin, or simply rename an item, create a copy of the file called 'en_US.default.lang' inside the 'RecipeFinder/lang' directory (or paste in your own) and change the names of the items to whatever values you see fit. Note that many of the options contained in the lang file are redundant, you are looking for entries only beginning in tile.
or item.
. Once you have done this, go into 'RecipeFinder/config.yml and change the language file:
option to be the name of your new language file.
If your server is still running whilst you change the language file, you can use the /recipereload
command to reload the config and update the plugin to reflect the changes that you just made.
important
The default en_US.default.lang file is maintained by the plugin and kept up to date, this means that if an update for the default language file is found the plugin will replace the en_US.default.lang file, meaning any changes you made to that file will be removed. It is therefore important that when changing the names of items, or changing the language entirely, that you use a language file name other than en_US.default.lang!
If you run into any issues with your config file or default language file, simply delete them and run /recipereload
and the plugin will generate the default files for you.
Compatibility
Although not tested with older versions of Craftbukkit/Spigot, newest versions of the plugin should be compatible with any version of Craftbukkit/Spigot, including 1.7*, 1.8.* as well as 1.9.* If you have any compatibility issues please let me know, and I can rectify this for you.
Features to hopefully be implemented in the future:
- Potion recipes.
- Firework recipes.
Source code:
- The source code for the project is available here for anyone interested.
Comments and suggestions for improvements are always welcome!
Also check out my server, at lostboys.game-host.org!
If timed properly this plugin will allow the duplications of items shown in the recipe GUI. To reproduce simply shift click an item and quickly hit escape. Can you fix this please? This is an amazing plugin!
i wrote a similar plugin, with refined searches and some additional features
https://dev.bukkit.org/projects/recipe-search
Is there anyway you could update to 1.12 items, please?
1.11.2 items can be picked from recipes of items which involve a furnace for example the potato from baked potato;s recipe.
@Olyol95 it supports also 1.11.2?
@Xevidos
No Problem... running spigot 1.9.2 with zpermission. (works also with 1.9)
After placing right permission everything works.
Also config-folder created without problems.
Is there something in your logfile while starting the Server ?
@Olyol95
In 1.9 spigot, the plugin doesn't create a config folder or file, and doesn't allow non ops to view recipies.
@CloudeLecaw
The plugin pulls the recipes from the server itself, so the 1.9 recipes are added, as are any other custom recipes that your server may have :)
At the moment the name matching is done via a crude heuristic based match on the "similarity" between the provided string and the name of the item. For example, if the item name is 'Golden Shovel', then 'golden shovel', 'goldenshovel', 'gold shovel' will all match as they are similar, however 'goldshovel' or 'golden spade' will not as they are not currently deemed to be a close enough match.
I'm looking to update the name matching when I have time, and to provide a more effective method of searching, as well as greater language options and aliasing support.
I hope that answers your question!
@Pinjosi
The 1.9 version of the plugin has been uploaded and should appear soon once it has been approved (though the 1.8 version should work OK but some of the item names may be a little strange) :)
wil there be an update for minecraft 1.9 ??
@Jayyx2
I'm glad that my plugin has been so useful to you!
Version 2.1.1 of the plugin should solve your issue :)
I am using Spigot 1.8.8 When starting the server there is an error message:
org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: org/noip/olyol95/recipefinder/RecipeFinder : Unsupported major.minor version 52.0 at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:198) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at java.lang.Thread.run(Unknown Source) [?:1.7.0_71] Caused by: java.lang.UnsupportedClassVersionError: org/noip/olyol95/recipefinder/RecipeFinder : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) [?:1.7.0_71] at java.lang.ClassLoader.defineClass(Unknown Source) [?:1.7.0_71] at java.security.SecureClassLoader.defineClass(Unknown Source) [?:1.7.0_71] at java.net.URLClassLoader.defineClass(Unknown Source) [?:1.7.0_71] at java.net.URLClassLoader.access$100(Unknown Source) [?:1.7.0_71] at java.net.URLClassLoader$1.run(Unknown Source) [?:1.7.0_71] at java.net.URLClassLoader$1.run(Unknown Source) [?:1.7.0_71] at java.security.AccessController.doPrivileged(Native Method) [?:1.7.0_71] at java.net.URLClassLoader.findClass(Unknown Source) [?:1.7.0_71] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at java.lang.ClassLoader.loadClass(Unknown Source) [?:1.7.0_71] at java.lang.ClassLoader.loadClass(Unknown Source) [?:1.7.0_71] at java.lang.Class.forName0(Native Method) [?:1.7.0_71] at java.lang.Class.forName(Unknown Source) [?:1.7.0_71] at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:64) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) [craftbukkit.jar:git-Spigot-5f38d38-12698ea] ... 6 more
Can you please fix it?
Thank you so much for your work on this. I no longer have to look these things up manually for my 7 year old! There are some issues I saw with it but nothing major, it gets the job done. Once again: THANK YOU!!!
Wuaaau dude, this is really useful plugin.
Works great on my 1.8.6 Spigot server, simple and easy.
Keep it up!
your plugin is fantastic, but i think it really needs a way to refine searches
... in es_ES the word "hierro" (iron) gave me 20 results, the word "piedra" (stone) 28 , and the word "madera" (wood) 48 ... cannot wait until the interface cycles 20 recipes to view mine, not even 28 or 48
this could be achieved with the inclusion of boolean operators, categories keywords, fulltext search, sub searches (same as boolean AND) or another (sql would help a lot with these) ... the plugin could present a list of selectable found items instead of cycle all of them .... and search again typing by hand, or with clickable text links (see undine mailer) or clickable items in a custom inventory (see recipesgui)
you could better use /recipe to display help instead recipe of held item ... most probable the item i hold in my hand i crafted myself and i know the recipe, anyway i could see it by typing the name shown when i select slot .. or you could reserve a word like "hand" to display recipe of item in hand (nothing=air give an error)
/recipe
recipe finder help:
find recipes ingame
/recipe %word1 +word2% category cat
/recipe material someItem
/recipe hand
/recipe wood acacia -fence slab% +category weapon
search gave 8 results
- wooden sword
- acacia wood door
- acacia wood slab
... etc
just ideas ... took that you want, talk, etc
@AT_HE
Thanks for the feedback, it's nice to have a different perspective on the plugin, and it's great to hear positive words about the plugin :)
I'll try and answer your questions as best I can in the order you asked them:
The way the plugin searches for items was a particular sticking point for me, as I originally also considered the idea of using regular expressions, however it adds a level of complexity and clutter into the searching process that I'm not sure would really benefit the user, however maybe I can look into providing a different method of lookup that is targeted more to solving that problem than the current algorithm :)
I believe that plugin uses PacketPlayOutChat objects containing serialised JSON strings, though I haven't had a look at the source code but I would imagine that this was the way it was achieved, and it may again be something worth looking into.
[Edit] After some research it appears I could produce the 3x3 crafting inventory using a custom inventory, however I am not sure I could make it appear as a crafting inventory (i.e. it would not have the arrow and product slot) but I shall look into this also.
Thanks for taking the time to give me some feedback, you made some really interesting points that I myself had not considered, and thank you also for your kind words regarding the plugin, hopefully I can take this feedback and improve this further :)
hi ... many thanks for your plugin ... looks like exactly i was looking for
i havent enough time for check deeply, at first it looks awesome but i have some questions..
back in the multilanguage thing
i want to use plugin in spanishes: spain, mexico and chile .. sometimes the same item recieve diffrent names, for example cobblestone in es_ES is called "roca" and in ex_MX is "piedra labrada"... so some people used to treat as "piedra labrada" wont find "roca" and visceversa
also you could treat search terms as regular expressions so if finds all possible combinations, for example if you dont remember the name of the tool shovel or spade but remember is made of wood, type "wood" and see wood planks recipe immediately, you wont have any chance of get the recipe you want ... should return a list of all terms and offer options to refine search (by categories or filters for example) ... of course i imagine wont be easy to achieve, but to dream costs nothing :)
sometimes you got an item and you want to know how useful it is .. you could find this with some "recipe material" or "recipe source" function ... and when you are navigating througth recipes, would be useful to have a "back" function too
almost forgot it .. there is a plugin named "undine mailer" that use TEXT LINKS on chat area, you point it and display a tooltip, you click it and open some things ... would be great to find how it works
some ideas ... thanks again for your plugin that i think is probably the best of its class
Please note only versions Recipe Finder 2.0 and higher support language configuration, if the file is not visible it is because it is still awaiting approval.