EnchantmentAPI

Lifesteal Enchantment

Overview

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!

Features

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)

Statistics

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 :)

Config

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.

Commands

  • /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

Permissions

  • 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

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

Source Code

Github

Tutorials

Troubleshooting

  • 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

Forum

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 crunchycamsta crunchycamsta Apr 23, 2016 at 15:44 UTC - 0 likes

    Is it possible to disable the random enchantment names in the table? Such as when enchanting a sword it says efficiency or power.

  • Avatar of Tallone55 Tallone55 Apr 21, 2016 at 07:21 UTC - 0 likes

    Players can get around disabled enchantments by applying books via anvil. Is there a fix for this?

  • Avatar of vanthoi vanthoi Apr 13, 2016 at 02:21 UTC - 0 likes

    How to fix error 1.9.2 : Spam consoler and lag:
    http://pastebin.com/XrfBNKub
    Thanks!

  • Avatar of loly110 loly110 Apr 03, 2016 at 15:37 UTC - 0 likes

    I got some enchant idea's.

    Xp Steal: (Sword, Axe) Max Lvl: 5 Steal's Xp from another player when you hit them.

    Aura: (Chestplate) Max Lvl: 4 Everyone within 4-8 blocks of you receive slowness depending on the Aura Level.

    Mob Bomb: (Bow) Max Lvl: 3 Has a chance to spawn a random mob when you shoot a player.

    Life Link: (Leggings) Max Lvl: 4 If the enchant is maxed (4) it has a 40% chance of killing the other player when you die.

    Position Holder: (Boots) Max Lvl: 5 The higher the level the more better of chance to not get any knock back.

    Metal Head: (Helmet) Max Lvl: 5 Has a chance to gain resistance for 5-10 seconds depending on the level.

    Op Enchants,

    Explosure: (Chestplate) Max Lvl: 4 Has a chance to make a explosion on every player within 5-20 blocks, depending on level, dealing huge amounts of damage

    Oblivion: (Sword, Axe) Max Level: 1 Has a 1/1000000 chance to bring hell to a player. (Insta KO)

    Rage: (Sword, Bow, Axe) Max Level: The damage increases every time you hit a player and if a player hits you the damage increase is reset.

    (Quick Escape) (Boots) Max Lvl: 3 Has a chance to give you speed 4 and invincibility(When your invincible people can't hit you and you can't hit them either) so you can escape.

    :D Hope some of these enchants will be added to enchant pack :D

  • Avatar of GenocGamer GenocGamer Apr 01, 2016 at 15:32 UTC - 0 likes

    can someone give me the image of the config file?

  • Avatar of val59000 val59000 Mar 31, 2016 at 18:27 UTC - 0 likes

    How to complete disable the table feature.

    I want to add enchantements programatically.

    I set "Custom Enchantments.table" to false in the config but it still enchants items with random names and still show a book placeholder.
    Is it possible to completely disable the fact that the plugin is overriding the enchantement table ? Is it possible to only use the vanilla enchantment table ?

    Edit :

    I found a workaround, I needed to add the negative permission :
    -EnchantmentAPI.table

    But I also add to clone the code and fix a NPE in the code in EListener.java
    Line 402 the update code is now :
    http://pastebin.com/dhwsdHPe

    Thanks

    Last edited Apr 02, 2016 by val59000
  • Avatar of MayorOfBukkit MayorOfBukkit Mar 30, 2016 at 11:19 UTC - 0 likes

    @firelancer120: Go

    You are a retard.

    Anyways, great plugin. Thanks for the API. Switching from lores to enchants tonight ! :D

    XD

  • Avatar of firelancer120 firelancer120 Mar 26, 2016 at 21:07 UTC - 0 likes

    so ya curropts your server world. so great and fun to play with and the enchants are great but only use it if youv literally beaten your game and dont mind it getting fucked

  • Avatar of Aceakita Aceakita Mar 26, 2016 at 19:39 UTC - 0 likes

    Is it possible to make it so books that get enchanted turn into "enchanted_book" so it can be used on an anvil with another item? The anvil doesn't see "book" as a "echanted_book" even if it is enchanted. Or is there someway to fix this?

    http://topg.org/image/260615/50273.gif

  • Avatar of Eniripsa96 Eniripsa96 Mar 25, 2016 at 07:49 UTC - 0 likes

    @pavelkf8: Go

    Update the plugin to 4.28

    BFAK:86513,955c39aa0fd005d53a0df93f256769ca83f60e42d36afbeaf01fab5fcc205630My Plugins: SkillAPI | Parties | MCCore | StopGen | EnchantmentAPI | EnchantmentPack

Facts

Date created
May 31, 2013
Category
Last update
Mar 24, 2016
Development stage
Release
Language
  • enUS
License
MIT License
Curse link
EnchantmentAPI
Reverse relationships
2
Downloads
58,295
Recent files

Authors