AutoEquipmentEnchant
Auto Equipment Enchant
This plugin allows equipment to automatically gain enchantments as they are used. A 'use' is defined differently for each item:
- Tools (pickaxe, shovel, axe) - by destroying blocks
- Weapons (sword, bow) - by damaging enemies
- Armour (helmet, chestplate, leggings, boots) - by being damaged by enemies
Configuration
The chance for each item to gain an enchant per 'use' is configurable. The default values are set to allow around 2 enchantments on average, with the exception of gold items, which should get around 4 on average. The actual value in the configuration is a chance, out of 100, of an enchantment being gained per 'use'.
Permissions
There are currently no permissions, but if it is required that only certain players can auto-enchant, then I can implement this.
Updates
When Minecraft updates, the enchantments may change, and it may take a little while before I can push through the new enchantments. However, the plugin should work fine. If an issue does occur, let me know and I will update ASAP.
The Future Of This Project
I have now started university, so my time is now much more limited than before. This, along with a severe drop in my Minecraft activity, means that my updates may be infrequent (more so than usual). I am not sure what is going to happen, whether I will be able to continue working on this or not. And of course, as a student, my funds are limited so I will have to look for a job at some point, which will limit my time even further.
This is perfect for a PvP Server Definitely adding it also suggestion make an ingame command that allows you to set the level upgrade cap so you can eventually get like prot 10 or sharp 10 by using the items
Edit: i tested it and it doesn't disappear in a 1.8.9 server
@Meindratheal
Destroying any block will result in a chance of receiving a enchantment. Players can plant seeds then break them for some fast enchantment farming.
[01:29:26] [Server thread/ERROR]: Could not pass event BlockBreakEvent to AutoEquipmentEnchant v0.6.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.PlayerInteractManager.breakBlock(PlayerInteractManager.java:263) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.PlayerInteractManager.dig(PlayerInteractManager.java:164) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:537) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.PacketPlayInBlockDig.a(SourceFile:53) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.PacketPlayInBlockDig.handle(SourceFile:8) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:157) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:667) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:258) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:558) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:469) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] Caused by: java.lang.IllegalArgumentException: n must be positive at java.util.Random.nextInt(Unknown Source) [?:1.7.0_67] at meindratheal.autoequipmentenchantment.AutoEquipmentEnchantment.addEnchantment(AutoEquipmentEnchantment.java:241) [?:?] at meindratheal.autoequipmentenchantment.AEEListener.onBlockBreak(AEEListener.java:64) [?:?] at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_67] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.7.0_67] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) [minecraft_server.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3116jnks] ... 15 more
I will take a look at it when I get the chance. However, I'm not sure how much time I will have to develop this, since I've started university. I need to make a proper list of what people have suggested, and whether they are feasible.
One of the reasons that I made this plugin was that it was simple. The configuration is narrowed down to just the important things, and I worry that adding too much will just clutter the config file.
Note: Turns out that chainmail support has been in it since I first released it, it's just not part of the default configuration. To enable it, just duplicate the "equipment.leather" node and its subnodes, and change the name from "leather" to "chainmail", and set the values as you require.
@Meindratheal
It would be nice to only allow specific blocks giving enchantments because atm a player can just break tones of leaves and receive lods o enchantments, adding to the config which enchantments work for what blocks.
@MineCraftMyph Chain armour support should be easy to add, so no problem.
@drorex This could probably be done relatively easily, but I'd have to learn a little more about Bukkit :P I could just add a new configuration node, maybe 'enchantableItems', and you could put other items into this list, and they'd be allowed to enchant. However, because of this, I'd have to add a way for items to get invalid enchantments (since, for example, the fishing rod can't normally enchant). For this, I'd probably add a second option, 'allowUnsafe', which would allow anything to gain enchantments not suited for it, and automatically treat this as true for other items.
Useful plugin, I have one suggestion:
Can you add an option to support more enchantments? In particular I want a small chance of items gaining new enchantments added via EnchantMore.
Permission support would be fantastic, please impliment this! :3
@Meindratheal
Thanks, I would love it if that would be possible.
+ I just love to see a awesome plugin get updated.
[Suggestion]
- Enchanting Levels Permission...
Limit what how many levels of enchantments the player receives.
Example: Group has enchant.limit.level.1
So that group can get any enchantment up to level 1.
Then it comes onto how many enchantments with:
enchant.limit.2 this means that the group can only get 2 enchantments per item.
Regarding the shooting self issue: This is a relatively simple fix, so I'll sort that out. Regarding configuring how to gain enchantments: This isn't a bad idea, but I disagree with allowing the wrong enchantment types (efficiency on a sword etc.). However, I can still add it (although it will take time).
On another note, I've added a permission and the ability to set enchantment weights manually. The only problem is that you will have to manually fix the configuration, as the nodes have changed slightly.
The Axe Enchantment wasn't working because you only gain Enchantments from chopping the trees were I was attacking the NPC.
But this means you can Enchant your bow by firing it into the air and getting it to hit yourself.
[SUGGESTION]
Would It be possible to add some sort of config to how an item can get enchanted, Example:
Gold_Axe
Deal_Damage: true #The Gold Axe would get a enchantment for Dealing Damage.
Wood_Chopping: false #The Gold Axe DOESN'T get a enchantment for Wood Cutting.
Mining: true #The Gold Axe would get a enchantment for Mining.
In this case could you enable Unsafe Enchants so the Gold Axe could have Sharpness for Dealing Damage to a Mob/Player etc.
Iron_Sword
Deal_Damage: true #Get Enchantments from Dealing Damage to Mobs/Players etc...
Wood_Chopping: true #Gain Enchants from chopping wood.
Mining: true #Gain Enchantments from mining.
In this case could you enable Unsafe Enchants so the Iron Sword could gain Efficiency II for Mining and Chopping Wood.
I'll look into this, thanks for the report!
[GLITCH/BUG]
- First, the Axe Enchantments don't work =(
- Second, when standing in a Non-PVP Zone getting hit at or hitting other players, or a NPC such as GlobalBank you still receive enchantments.
So you could just keep hitting a afk player in a Non-PVP Zone and still get enchantments.
Is there away to only receive the enchantment when damage is dealt? and not on use?
Would love to Donate soon =)
@Meindratheal
Just my rotten luck with silk touch then, lol.
I think that adding more customizability to this (such as custom items and weighting) would be a huge step in the right dirrection - I await the next version eagerly, when exams are over :)
Good luck with your exams!
Currently, there isn't a way to make this work for custom items, as the item list is hardcoded, but I'll look into this. As for the silk touch chance, it's exactly the same as a normal enchantment table (unless I screwed up, which is perfectly possible). I will be making the enchantment weights configurable though when I get the chance (it's exam season at the moment).
Is there anyway to make this work for custom items, such as the bronze tools from IC2? I've tried everything I can think of, but haven't found a way to make it work.
Also, anyway to turn down the likelyhood of getting silk touch? I've *never* had silk touch from an enchantment table, but on my server at the moment every single pick is getting silk touch as the first or second enchantment :( It is *really* annoying :P
It's planned for the next release, which shouldn't be too long.
Hey, I really like this idea! But if you could do the permissions? So only the VIP's on my server do get enchantments and the player won't.
Java updating depends on your OS, but just generally searching for "java 7" on Google should turn up some good results. In any case, version 0.5.1 is through, which should work on your version (let me know).
Your second point: what do you mean by an 'overall use system'? Do you mean like, after say 500 uses it gains a particular enchantment that you define, after 100 it gets another one etc? Choosing enchantments will be relatively simple when I implement a configuration for enchantment weights, as you just set the ones you don't want to have a weight of 0.
How will I be able to update my java to this 'later' version?