EnchantableBlocks
EnchantableBlocks (formerly EnchantedFurnace) adds effects for enchantments on blocks! Currently only furnaces are supported.
Get It Now
Builds are available on BukkitDev or in the releases.
Development builds are available for use at your own risk on AppVeyor in the Artifacts tab.
Features
Per-World Focus
All features are configurable per-world. Want an OP world? Not a problem. Want to disable blocks for a vanilla world? Absolutely. All block settings can be controlled by per-world overrides, falling through to default values when not specifically configured.
Enchantment Table Enchanting
EnchantableBlocks offers vanilla-style enchantment table usage for supported blocks. Disable certain enchantments, determine your own conflicts (i.e. silk touch/fortune), or modify enchantability either globally or for a specific world set.
Permission can be granted or denied per-implementation or as a whole. More specific overrides always take precedence.
Nodes are available as follows:
<plugin name>.enchant.table.<block name>
- Permission to enchant a specific block implementation by a plugin in an enchanting table
- Ex:
enchantableblocks.enchant.table.enchantablefurnace
- Note that this is not per-material! I.e.
enchantablefurnace
covers 3 material types.
<plugin name>.enchant.table
- Permission to enchant all block implementations by a plugin in an enchanting table
- Ex:
enchantableblocks.enchant.table
<plugin name>.enchant
- Permission to enchant all block implementations by a plugin in any enchantment source
- Ex:
enchantableblocks.enchant
Anvil Enchanting
EnchantableBlocks offers vanilla-style enchantment and combination for supported blocks in anvils. Supported blocks can be combined with either a matching block or an enchanted book to increase enchantment levels. Uses vanilla combination rules - higher level takes precedence, equal levels yield an increase of 1 level up to the level cap. The enchantment level cap is configurable per-enchantment. Enchantments can be disabled to prevent transfer, though this won't remove them from the base item. Conflicts are also determined separately for maximum configurability.
Permission can be granted or denied per-implementation or as a whole. More specific overrides always take precedence.
Nodes are available as follows:
<plugin name>.enchant.anvil.<block name>
- Permission to enchant a specific block implementation by a plugin in an anvil
- Ex:
enchantableblocks.enchant.anvil.enchantablefurnace
- Note that this is not per-material! I.e.
enchantablefurnace
covers 3 material types.
<plugin name>.enchant.anvil
- Permission to enchant all block implementations by a plugin in an anvil
- Ex:
enchantableblocks.enchant.anvil
<plugin name>.enchant
- Permission to enchant all block implementations by a plugin in any enchantment source
- Ex:
enchantableblocks.enchant
Enchantments
Furnaces
See the wiki for furnace enchantments.
Videos
A basic overview of features is available from shop1126.
Alternate English video courtesy of MusicTechnician.
Portuguese video courtesy of AbsintoJ.
Thank you all!
Permissions
- Please refer to the wiki.
Config
- Please refer to the wiki.
Finally found some time for testing. Conversion works right, fixed a couple issues, that sort of thing. That the issue with worlds being loaded later on is fixed and the efficiency improvements I've made are working perfectly.
Edit: 8 hours on a live server with no issues later, 1.4.0 is uploaded!
Alright, Thank you for the update. I look forward to the 1.4.0 update!
@REMLIK1
That is due to a 1.8 change. I will not be fixing it until after I'm done with 1.4.0, which will allow me to fix anvil tags being cleared by placing the furnace, among other things.
Since there is a serious known issue with furnaces not loading for worlds loaded after EnchantedFurnace, a status report:
1.3.11
+ Added disabled_worlds config option (good for creative worlds, etc.)
+ Reduced i/o on enable/disable, should improve performance slightly
= Rebalanced fortune calculation to better match vanilla output for higher levels
1.4.0 (Entirely untested)
+ Changed storage format (again) - Allows for more efficient function + enchantment expansion
+ Load/Unload furnaces as chunks are loaded and unloaded to greatly increase performance. This has a side effect of fixing issues with worlds not being loaded when the plugin loads.
While the code itself is done, the changes have potential to entirely wipe saved furnaces and break most functions, so it'll take some time testing.
Is the Anvil furnace enchanting method completely disabled? I can do it with an OP player, but as a normal player, I cannot take the enchanted furnace out of the anvil. I have applied both permissions to the regular players too.
@rodrigogarciama
Argh, that could do it. I've been meaning to rework it to load furnaces by world and listen for load/unloads. For whatever reason, on my own server Multiverse loads worlds well before EnchantedFurnace so I haven't noticed that before. I'll see what I can do, but it'll involve reworking the way furnaces are stored, so it'll take a bit.
Edit: If you want a quick and dirty fix, pop open EnchantedFurnace.jar and edit plugin.yml. Adding
should do the trick as a temporary fix.
@Jikoo_K
Oh, sorry, it's here: http://pastebin.com/a0CLK3e0. I've been searching in Google* and maybe I get problems beacause the plugin loads before than Multiverse worlds.
Edit again: In world "world" works Ok but on plotworld,like in the log fails to load :D
@rodrigogarciama
Going to need more information than that. A paste of startup logs would be a help, maybe a paste of your furnaces.yml
@buitacristian
Two furnaces cannot be combined because of Bukkit limitations. I can't edit the level cost of anvil combination without using version-specific stuff, which I won't do. Because enchantments do not ordinarily belong on or affect furnaces, combination cost for 2 furnaces is always 0.
Combining in an anvil is not recommended at all because furnaces do not preserve anvil work tags, meaning that if you want to combine 3 books into your furnace, all you'll need to do is place and break it after each book to keep cost at 1 level of exp per. I believe 1.8 also broke removing the result from the anvil, and I'm not inclined to fix it because the API currently lacks the features required to make it work well.
Hey , I would like some help , I would like to use this plugin on my server, I am actually using it at this moment. But I hate that I can't combine furnaces in anvil , only in gamemode is possible . I have tryed everything , permissions and stuffs . Can you please help me ? I really want my friends to use it ...It's not a public server , it's just a server for fun , so I am bagging you , can you help me ?
@nj2miami
All of my other plugins are open source. I do not obfuscate my work. The Bukkit API itself is GPL, though CB is currently being contested. It is legal to apply another license to software built for the API, not to any modifications of the API.
Why would an open source coder obfuscate anything, anyway? That would discourage assistance. Did you mean closed source? Perhaps to prevent decompiling.
Yes, I was inspired by another plugin that didn't function. It broke, and I coded my own from scratch. I did not use any of the author's work when writing mine. The only reason I even found the original was because I was searching for a plugin that did exactly what it did. I do not thing it's unreasonable to ask that others not modify and redistribute my work in this single instance. Decompiling a dev build to make sure there's nothing shady going on? Sure, whatever, understandable, that's why I didn't make a fuss of it.
Furthermore, I'm decently active over on Spigot when time allows. If you look up Jikoo, you'll find I post almost exclusively in Plugin Development, assisting the community. Please do not point fingers wildly and blindly.
@Jikoo_K
"Also, in the future, please bear in mind that this plugin is all rights reserved."
I do find this comment a little funny, since I am not even sure this is an applicable license. It is built on open source software, using 1.8 which is contested openly, for a game you do not reserve rights on, so I am fairly sure you cannot "reserve rights" on your work. I also find is a tad funny that open source coders find it necessary, perhaps due to ego, to somehow obfuscate their code.
On top of that you are "inspired" by an existing mod with the exact same name and still tag the "reserved rights" tag on yours? *smh*
This is a coding community for the most part and many find great benefit from sharing their code with others.
@lululombard
You're not entirely correct, I'm afraid. The release version you were having issues with did not contain that check at all, I added it for more accurate information about what was going wrong. This is from 1.3.10 and prior:
Yeah, I did check the length of the wrong variable, but the underlying issue hasn't really been solved, it just magically disappeared - you are somehow succeeding with the exact same split that was failing for you before.
@Jikoo_K
I know, sorry for the decompiling. I was just trying to fix that. In fact, the real problem is not at the split, but with the lenght check. You must chech the lenght of the array, not of the string ;)
@lululombard
Good call, but it doesn't actually explain the issue you had before. If you decompile the release version you were using, you'll find that the split is using a comma, there is just less error handling. Whatever issue you had is not resolved, which doesn't sit well with me, but if you want to table it, so be it. I'll swap it back to a comma split in the mean time as there's no evidence as to what was actually wrong.
Also, in the future, please bear in mind that this plugin is all rights reserved.
@Jikoo_K
Well, I didn't tryed this, cause I've uncompiled your plugin and fixed it just at this point, and now working very well :
The most important point was "loc.length" instead of "s.lenght()" ;)
Thanks for all the support you gave me :)
@lululombard
I've updated the split regex again. If you would, please try out the latest dev build not approved by BukkitDev staff.
@Jikoo_K
Thanks for the update. I still getting problems with that update : http://pastebin.com/wWtz8J9S
And here's mine furnaces.yml file : http://pastebin.com/aHwXbVVm
Thanks :)
@MysticCity
I would recommend that you offer enchanted furnaces in some form of shop then - your usage case sounds like I'd need to hook Vault and offer a configurable cost per level of enchantment or something, which would definitely take me a while at my current reduced output rate.
@Jikoo_K
atm we have the problem that we dont have the normal exp bar.
so we cant enchant the Furnaces without the exp
@MysticCity
Possibly, but commands like that are often better left to other plugins. If I did implement something similar, I would not be allowing enchanting up to 32767 like Essentials does, for instance.