Jikoo / EnchantableBlocks

A Bukkit plugin adding effects for enchantments on blocks.
https://dev.bukkit.org/projects/enchantableblocks
9 stars 2 forks source link
bukkit bukkit-plugin java minecraft

EnchantableBlocks

Build Quality Gate Status Coverage Reliability Rating

EnchantableBlocks is a Bukkit plugin adding effects for enchantments on blocks.

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:

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:

Block Functions

The only currently block is the EnchantableFurnace, which supports Furnace, Blast Furnace, and Smoker blocks.
Please see the wiki for functions.

For Developers

Contributing

That's awfully decent of you. Here's a quick list:

Implementing

Want to write your own EnchantableBlock implementation? All you need to do is implement the block functionality and register it with the EnchantableBlockRegistry (obtainable from the EnchantableBlocksPlugin instance) on startup. EnchantableBlocks will handle creation, destruction, loading, saving, and enchanting for you.
An example implementation can be found in this package.