Lifesteal Enchantment


The plugin is made primarily for developer usage as it doesn't do much on its own. It does however provide very easy access into creating custom enchantments that look like normal enchantments and can be added through both the enchanting table and programmatically! Now developers can make new enchantments such as life steal even with very little code!

Don't want to code your own enchantments? Visit EnchantmentPack for a large collection of enchantments!


Silly Enchantment
(a lv5190 enchantment)

  • An extendable class for plugins for simple setting up of enchantments
  • An abstract CustomEnchantment class for quick enchantment creation
  • Automatic effect activation when the enchanted item hits something
  • Automatic enchanting table integration
  • Enchantments are easily added onto any item
  • The max level of enchantments is that of an integer variable
  • Large enchantment levels should probably be avoided though (above is a good reason why)
  • Any item can use the enchantments (torches, signs, you name it)
  • Enchantment effects can be for attacking, defending, breaking blocks, equipping, unequipping, or mix of them all!
  • Any enchantment can be completely disabled by editing the config
  • Configurable weights, max levels, conflict groups, and item sets for all enchantments
  • All items can be used in enchanting tables if they have an enchantment bound to them as of v3.0!
  • Anvils can now handle custom enchantments very similar to any vanilla enchantment (v4.0)
  • Randomly generated names can be applied to enchanted items! (You can turn this off)
  • Permissions per enchantment (with v4.10)


New Enchantment Table Mechanics

For an in-depth explanation on the new mechanics for the enchantment table (because it needed some to get every item to work), go here
Thanks to Diemex for coming up with this idea :)


A config file is generated as new enchantments are added. Adding more enchantments later will simply automatically add onto the config with its default values the next time you reload your server. All changes you make will override the enchantment values. You can edit them while the server is running and reloading the server will apply them.

The config allows you to change the following things:

  • weight: chance of getting the enchantment from a table
  • items: the items that can receive the enchantment from a table
  • enabled: whether or not the enchantment can be obtained and used
  • table: whether or not the enchantment can be obtained in the enchantment table
  • group: the conflict group of the enchant - items in the same group will conflict unless its the default group
  • max: the maximum level for the enchantment
  • base: the minimum modified enchantment level that can get the enchantment
  • interval: the amount of modified enchantment levels above the base it takes to get the next tier

    Vanilla enchantments cannot be completely disabled, although you can stop them from being received in the enchantment table.

    Disabled custom enchantments will no longer work on items that had received it before disabling it.


  • /enchantapi list [page] - Providing the page gives a detailed list while no page just shows you the complete list
  • /enchantapi reload - Reloads the plugin data
  • /enchantapi book - gives you a book with descriptions for every enchantment
  • /enchantapi add <enchantName> [enchantLevel] - Supports vanilla names such as "sharpness" as of v4.0!
  • /enchantapi stats <item> <level> - Displays probabilities for every possible enchantment for the item at the given level (item name or item ID)
  • /enchantapi graph <item> <enchant> - Displays a graph for probabilities of the enchantment on the item over all 30 levels (item name or item ID)
    Yes, you do have to include spaces for the addenchant command with the enchantment name!
    Note: the graph takes 3-5 seconds to generate because it generates 3,000,000 samples in order to get reliable results!

    graph command


  • EnchantmentAPI.list - access to the list command
  • EnchantmentAPI.book - access to giving yourself a description book
  • EnchantmentAPI.admin - access to adding enchants to items, reloading the plugin, and viewing statistics
  • EnchantmentAPI.table - access to custom enchantments from the table
  • EnchantmentAPI.names - access to random names from enchanting (needs table as well)

    Version 4.10 permissions
  • EnchantmentAPI.enchant - access to all enchantments in the table (default is true)
  • EnchantmentAPI.enchant.enchantName - access to the enchantment in the table (replace 'enchantName' with the name of the enchantment with all lowercase letters and no spaces)

    Version 4.11 permissions
  • EnchantmentAPI.enchant.vanilla - access to all vanilla enchantments (default is true)
    Note, with this permission added, removing the permission EnchantmentAPI.enchant will still leave players with access to vanilla enchantments. You must remove both for them not to have the access!

Javadocs, Source Code, and Tutorials


Javadocs are found here
Thanks to JefferiesTube for the space for the javadocs!

Source Code




  • Losing items in the enchanting table? Try deleting your config files as they are probably outdated
  • If the you start getting loading problems that point to EnchantPlugin saying that the class cannot be loaded, try adding this line to your plugin.yml:
depend: [EnchantmentAPI]

Example Enchantments


I have created a forum for this that you can submit ideas, projects you are working on, and bugs to. Its completely optional but it might help organize what's going on with this project :)

Special Thanks

  • zag09 for finding several bugs and making suggestions
  • JefferiesTube for the Javadocs space and the bountiful suggestions
  • Diemex for cleaning up my sloppy code

Like the project?

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of pavelkf8 pavelkf8 Nov 26, 2015 at 15:17 UTC - 0 likes

    how disable custom enchantments in a table and display book with "Placeholder\Unenchantable" in slot a table?

    Last edited Nov 26, 2015 by pavelkf8
  • Avatar of GoldenEagle1995 GoldenEagle1995 Nov 25, 2015 at 23:43 UTC - 0 likes

    Hey, the anvils are allowing people to duplicate -.- fix that asap pls

  • Avatar of xvrlee xvrlee Nov 25, 2015 at 13:19 UTC - 0 likes

    pls update pls update pls update pls update

  • Avatar of mat41997 mat41997 Nov 19, 2015 at 06:47 UTC - 0 likes


    [07:41:33] [Server thread/ERROR]: Could not pass event EnchantItemEvent to EnchantmentAPI v4.27
    	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at protocolsupport.server.container.ContainerEnchantTable.a(ContainerEnchantTable.java:136) [ProtocolSupport.jar:?]
    	at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1739) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at net.minecraft.server.v1_8_R3.PacketPlayInEnchantItem.a(SourceFile:22) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at net.minecraft.server.v1_8_R3.PacketPlayInEnchantItem.a(SourceFile:8) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_66]
    	at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_66]
    	at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:772) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:711) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:614) [server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	at java.lang.Thread.run(Unknown Source) [?:1.8.0_66]
    Caused by: java.lang.NullPointerException
    	at com.rit.sucy.enchanting.EListener.onEnchant(EListener.java:389) ~[?:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
    	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_66]
    	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[server.jar:git-PaperSpigot-0d986bb-18fbb24]
    	... 16 more

    I love spam

  • Avatar of JackOrmondroyd JackOrmondroyd Nov 02, 2015 at 19:14 UTC - 0 likes

    Really nice plugin, really like this. Was somewhat hard to find; hidden away, but glad I did.

    One problem I am coming across is that if a player for example enchants a lv30 sword in the table twice, they will often come with custom enchants however if they want to combine them, they cost a ridiculous amount of lvls 100+

    Anvils also do not happen to work upon installation of this plugin.

    I also was wondering if it was possible to disable the equipping of the Life enchant for a certain amount of time, like a cooldown because players at the moment can just spam equip it and not die.

    Last edited Nov 15, 2015 by JackOrmondroyd
  • Avatar of skyzophrenic skyzophrenic Oct 27, 2015 at 04:32 UTC - 0 likes

    can any1 code enchants for this plugin? I need a dev to make a new weekly enchant every week on my server, I can provide the idea of what to make i just need someone that knows how to code it. I will provide a dev. rank on my server aswell as the highest paid rank. This is not a commitment just if you feel like helping plz (plz plz plz plz plz) do! :D

  • Avatar of MasterClaus MasterClaus Oct 16, 2015 at 10:03 UTC - 0 likes

    Sometime the console spams these error lines and I dunno why
    I'm using spigot 1.8.8, with EnchantmentAPI anf EnchantmentPack:

    4:52:18 CH [WARNING] [EnchantmentAPI] Task #170743 for EnchantmentAPI v4.27 generated an exception
    4:52:18 CH java.lang.NullPointerException
    4:52:18 CH 	at com.rit.sucy.Anvil.AnvilMechanics.getBaseCost(AnvilMechanics.java:137) ~[?:?]
    4:52:18 CH 	at com.rit.sucy.Anvil.AnvilMechanics.updateResult(AnvilMechanics.java:77) ~[?:?]
    4:52:18 CH 	at com.rit.sucy.Anvil.AnvilMechanics.updateResult(AnvilMechanics.java:120) ~[?:?]
    4:52:18 CH 	at com.rit.sucy.Anvil.AnvilTask.run(AnvilTask.java:46) ~[?:?]
    4:52:18 CH 	at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot_server.jar:git-Spigot-fdc1440-53fac9f]
    4:52:18 CH 	at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot_server.jar:git-Spigot-fdc1440-53fac9f]
    4:52:18 CH 	at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:722) [spigot_server.jar:git-Spigot-fdc1440-53fac9f]
    4:52:18 CH 	at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot_server.jar:git-Spigot-fdc1440-53fac9f]
    4:52:18 CH 	at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:653) [spigot_server.jar:git-Spigot-fdc1440-53fac9f]
    4:52:18 CH 	at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:556) [spigot_server.jar:git-Spigot-fdc1440-53fac9f]
    4:52:18 CH 	at java.lang.Thread.run(Unknown Source) [?:1.8.0_60]
  • Avatar of mcgavyn mcgavyn Oct 12, 2015 at 03:50 UTC - 0 likes

    @ligar08: Go

    Download both Enchantment Pack and Enchantment API, then drop all the jar files into your plugin folder.

  • Avatar of skyzophrenic skyzophrenic Oct 10, 2015 at 20:27 UTC - 0 likes

    Can some one please post more packs? or enchants ;-;

  • Avatar of ligar08 ligar08 Sep 26, 2015 at 20:31 UTC - 0 likes

    How exactly do you add the enchantmentpack to enchantmentapi? I searched up how to and couldn't find a defined way


Date created
May 31, 2013
Last update
Jun 27, 2015
Development stage
  • enUS
MIT License
Curse link
Recent files