Enchantment Solution icon

Enchantment Solution -----

The All-In-One Custom Enchanting Plugin!




Fixes:
  • Fix for NullPointerException in EnchantmentWrapper preventing loading ES in some circumstances
----------, Jun 1, 2024

Fixes:
  • Fix for issue with new enchantments not being found
----------, May 30, 2024

Additions:
  • Enchantments:
    • Added Breach, Density, and Wind Burst mace enchantments
    • In Level 50 system, Density goes up to level 6 and Wind Burst goes to level 5
    • Made Breach and Density mutually exclusive and conflict with Smite, Bane of Arthropods, Bane of Anthropoids, and Quick Strike
  • Enchantment Locations:
    • Added Trial Chamber enchantment location for Wind Burst enchantment
      • Currently does not work
Changes:
  • Break.yml:
    • Added Copper Grate, Chiseled Copper, Copper Bulb, Chiseled Tuff, Polished Tuff, and Tuff Bricks to break.yml for use with enchantments like Height/Width/Depth++
  • ESDebug:
    • Add most exceptions to debug.yml
    • Now generates a debug.yml file and a debug.zip file
      • debug.yml includes basic information including when it was generated, plugins on server, activated compatibilities and debug messages sent from Enchantment Solution
      • debug.zip includes debug.yml and all major files in the EnchantmentSolution folder
    • Modified en_us to include references to debug.zip
  • Enchantments:
    • Stone Throw:
      • Added Breeze to list of mobs Stone Throw affects
    • Transmutation:
      • Added Turtle Scute to drops
        • Scute already in list, but 1.20.5 changed name of this item
      • Added Glow Ink Sac to drops
      • Lowered chance of Ink Sac dropping
        • Lowered chance added to Glow Ink Sac
Fixes:
  • Fix for issues with potion effects and potion effect enchantments in certain Minecraft versions
  • Fix for Silk Touch having Looting as conflicting enchantment instead of Fortune
  • Fix for Quick Strike conflicting with Smite but not vice-versa
  • Fix for /esdebug sending message to wrong sender in certain instances
----------, May 30, 2024

*Due to data pack changes, Advancements are currently not available in 1.20.5. Please give extra time to update this as I do not have any more time for the next week to finish this.

Changes:
  • Enchantments:
    • Renamed all vanilla enchantments in RegisterEnchantments to be named like their vanilla counterparts (rather than legacy values)
    • Sharpness, Smite, Bane of Arthropods, and Bane of Anthropoids can now go onto axes in the enchanting table by default
  • Support:
    • Updated support for 1.20.5 changes
Fixes
  • Fix for tamed animals without an owner causing issues with Pacified
  • Fix for the vanilla Enchanting Table not recognizing custom enchantments when seeing if an item can be enchanted
  • Fix for Lapis Lazuli being taken from the enchanting table even in creative mode when using vanilla enchanting table
  • Fix for the grindstone not properly recognizing "take enchantments"
----------, Apr 25, 2024

Fixes:
  • Fix for ESWG Flags issue with equipping/unequipping items
----------, Mar 6, 2024

Additions:
  • Permissions:
    • Added permission enchantmentsolution.anvil.allow-invalid-enchantments
      • Allows players with this permission to add invalid enchantments to items i.e. adding Protection to Swords and Sharpness to Hoes
    • Added permission enchantmentsolution.anvil.ignore-anvil-permissions
      • Allows players to get higher level enchantments despite the permissions set up in enchantments.yml
      • This will not allow players to combine levels higher than the max level set in enchantments.yml
    • Added permission enchantmentsolution.anvil.allow-conflicting-enchantments
      • Allows players to add enchantments to items that already have a conflicting enchantment on it i.e. adding Sharpness and Smite on one sword
    • Added permission enchantmentsolution.anvil.allow-higher-levels
      • Allows players to keep higher level enchantments on items when using the anvil above max level
    • Added permission enchantmentsolution.anvil.combine-levels-all
      • Allows players to combine levels on items and books to get higher level enchantments (i.e. Protection I + Protection I = Protection II)
      • Defaults to true
      • If true, ignores permissions enchantmentsolution.anvil.combine-levels-books and enchantmentsolution.anvil.combine-levels-items
    • Added permission enchantmentsolution.anvil.combine-levels-items
      • Allows players to combine enchantments on items such as swords, pickaxes and tridents to be higher levels (i.e. Sharpness I + Sharpness I = Sharpness II)
      • Defaults to true
      • If false, can still combine levels on books unless enchantmentsolution.anvil.combine-levels-books is false
    • Added permission enchantmentsolution.anvil.combine-levels-books
      • Allows players to combine enchantments on books and enchanted books (i.e. Protection I + Protection I = Protection II)
      • Defaults to true
      • If false, can still combine levels on items unless enchantmentsolution.anvil.combine-levels-items is false
  • Configuration:
    • Added anvil.repair_from_final to config.yml
      • Defaults to false
      • If true, an items repair cost will be uncounted in an anvils total repair cost, and the only thing that matters is the rarity of the enchantments on the item at the end and whether the item is being repaired by materials or the item
Changes:
  • Anvil:
    • Changed the method by which anvils add enchantments to one easier to follow and including all above permissions
  • Configuration:
    • Removed anvil.no_upgrade_books_to_non_books, anvil.no_upgrade_non_books, and anvil.no_upgrade_books
      • Each of these are now by player using the permissions above
  • Permissions:
    • Removed enchantmentsolution.anvil.god, enchantmentsolution.anvil.demigod, and enchantmentsolution.anvil.demigod-books
      • Each of these permissions were not easily understood, thus were changed and expanded with the newer permissions
Fixes:
  • Fix for item cost being incorrectly higher on items and incorrectly lower on books
  • Fix for Irene's Lasso having problems being recognized in certain situations
  • May break older Irene's Lasso items; will be fixed and animals kept upon reenchanting
----------, Mar 4, 2024

Fixes:
  • Fix for the Grindstone not properly recognizing custom enchantments
  • Fix for small issue with Anvil not recognizing custom enchantments
  • Fix for the Minigame type not properly recognizing custom enchantments
----------, Feb 3, 2024

Changes:
  • Re-added the VanishListener to apply proper lore when missing
Fixes:
  • Fix for the Anvil that allowed applying books and items that did nothing for the original item
  • Fix for items enchanted with only Knockup from adding more enchantments via the Enchanting Table
  • Fix for lore being removed from items when modifying with EnchantmentSolution
  • Fix for registering Swift Sneak causing issues for versions below 1.19
----------, Jan 13, 2024

Fixes:
  • Fix for Anvil not combining enchantments correctly
  • Fix for Grindstone not removing enchantments correctly
  • Fix for Grindstone not dropping experience
----------, Jan 2, 2024

Additions:
  • Enchantments:
    • Allow for ChatColors to be used with Custom Enchantment names
      • Added due to removal of enchantment glint and allowing more customization
Changes:
  • API:
    • API changes to match the new changes to Enchantments
  • Enchantments:
    • Custom enchantments no longer receive enchantment glint due to changes in Spigot
      • All enchantments (including vanilla ones) now have a custom wrapper class to search for them locally vs through the Bukkit Enchantment class
  • Persistence:
    • Modifications to the Persistence functions to coincide with the removal of Bukkit Enchantment support
  • Vanish:
    • Temporarily remove the VanishListener as unaware how much change is needed to support the new enchantment limitations
Fixes:
  • Fix for experience orbs not dropping in certain situations
  • Fix for swords having incorrect enchantability values limiting enchantment levels/multiple enchantments on them
----------, Dec 30, 2023

Changes:
  • Anvil:
    • God Anvil:
      • If using god-anvil or similar permissions, allows players to upgrade enchantment levels in the anvil above allowed levels
      • Not allowed if "No Upgrade" settings set to true in config.yml
  • Compatibility:
    • Upgraded JobsReborn support to latest version
    • Upgraded McMMO Overhaul support to latest version
    • Upgraded VeinMiner support to latest version
    • Updated Quests support to latest version
Fixes:
  • Fix for certain methods of getting enchantments not returning when they should be
  • Fix for bad attributes and potion effects staying on players when spam equipping/unequipping items
  • Fix for Deepslate Coal Ore not working with Height++/Width++/Depth++ and similar enchantments
  • Fix for breaking unbreakable blocks (such as Void Walker obsidian) being unbroken after other plugins have handled breaking them
  • Fix for searching for loot in items that do not have loot tables from giving errors
----------, Dec 21, 2023

Fixes:
  • Fix for vanilla enchantments being removed from item on equipping
----------, Jun 18, 2023

Additions:
  • Added support for 1.20

Changes:
  • Updated support for all 1.19 versions
  • Changed the way Enchanting works slightly for support with 1.20.1
    • Should be no major issues with this - please report ASAP if you have any problems
  • Removed permission "enchantmentsolution.abilities.lower-levels"
    • Caused too much confusion with users for it to be worth having
    • Have plans to change this feature again in the future

Fixes:
  • Fix for Swift Sneak not working properly
----------, Jun 18, 2023

Changes:
  • Enchantments:
    • Life Drain:
      • No longer halves damage when applied to items
      • Fast tracked this change due to confusion with Life Drain
Fixes:
  • If cannot get BlockSound for whatever reason, check for null to prevent constant errors
  • Fix for getting and setting repair cost on 1.16.5
----------, Jun 21, 2022

EnchantmentSolution Version 2.5.5

Changes:
  • Rename Anvil GUI now shows the proper translated string as the menu title rather than always "Repairing"

Fixes:
  • Fix for version checker believing 1.18.2 is a higher version than 1.19.0
  • Fix for Swift Sneak not being properly initialized in 1.19
  • Fix for AttributeListener cause IndexOutOfBoundsExceptions in certain circumstances
  • Fix for getRepairCost in 1.19
  • Fix for anvil GUI issues in 1.19
----------, Jun 15, 2022

Enchantment Solution Version 2.5.4:

Additions:
  • Configurations:
    • Added "Recovery Compass" to extra_enchantables in enchantments.yml
  • Enchantments:
    • Added the code for Swift Sneak enchantment to be included in 1.19+
  • Enchantment Locations:
    • Added the Deep Dark location for enchantments
    • Will override items with Swift Sneak in loot chests to specified enchantments
  • Language:
    • Added Spanish localization (thanks Devilcasters)
Changes:
  • Advancements:
    • Added Warden to "Super Effective" advancement in 1.19+
    • Removed check for "Not Very Effective..." and "Super Effective" that only allows swords
    • Added frogs to "Not That Kind," "Wildlife Conservation," and "Free Pets"
  • Bukkit Version:
    • Removed all obsolete version code to match 1.16+ support only
  • Enchantments:
    • Detonator:
      • Updated to delay explosion until after damage by default
      • Delay reduced to 0 ticks, from 1 tick
    • Gaia:
      • Added Mangrove Trees to Gaia
        • Since Mangrove Leaves do not drop propagules in vanilla, chance for Gaia dropping propagules is 0.1% compared to 2% for other trees dropping saplings/fungus
  • Events:
    • SmelteryEvent:
      • Removed isFortune and setFortune from event; will now use vanilla drops
      • Keeps the small amount of extra Netherite Scrap from Smeltery + Fortune
Fixes:
  • Fix for Smeltery not keeping the correct number of drops when breaking
  • Fix for Green Thumb not working with Cocoa Beans
  • Fix for Drowned applying multiple times to mobs when hit
----------, May 29, 2022

Additions:
  • Configurations:
    • Added anvil.no_upgrade_books to config.yml
      • Prevents two books with the same enchantment level from enhancing that level by 1 through the anvil
      • Defaults to false
    • Added anvil.no_upgrade_non_books to config.yml
      • Same as above but between two items (pickaxes, axes, bows, fishing rods, etc.)
      • Defaults to false
    • Added anvil.no_upgrade_books_to_non_books to config.yml
      • Same as above but between an item and a book (combining enchantments onto books)
      • Defaults to false
    • Added loots.allow_no_enchantments to config.yml
      • When generating items with Enchantment Solution, if no enchantments can be generated, it will prevent generation of enchantments
      • Current behavior is false; if ES does not have valid enchantments to generate, it falls back on vanilla behavior
      • Defaults to false


Changes:
  • Generate Enchantments:
    • Prevent spam when items do not properly generate enchantments
    • Can still be seen when debug is set to true in config.yml

Fixes:
  • Fix for items with both custom and vanilla enchantments causing /esfix to act like the item was broken and continuously "fixing" it
----------, Feb 2, 2022

Fixes:
  • Fix for IndexOutOfBoundsException while changing armor
  • Fix for NullPointerException when Smeltery breaks blocks it can't smelt
----------, Jan 21, 2022

Fixes:
  • Fix for memory leaks when using certain enchantments, causing them to break
  • Fix for modifying Illager banners preventing raids from happening
----------, Jan 16, 2022

I have been working hard on Hard Mode and a bunch of other large projects with this mod, but the final pieces are taking much longer to put together than I realized. Since I wanted to release a major update before the end of this year, I threw this together in about a week. Just a bit more content while I work on completing this plugin's final goal. Enjoy!

** Please note that changes to Enchantments will only take effect if you reset its settings in enchantments.yml or remove enchantments.yml to let it regenerate.

Additions:
  • Advancements:
    • Added 10 new advancements
      • Animal Tamer: Tame an animal with Whipped
      • Animal Abuse: Kill an animal with Whipped
      • YEET: Throw a player to their death with Fling
      • Flying Bacon: Throw a pig saddled with a player using Fling
      • Useless: Place a light block next to a torch with Flash
      • Four Horsemen: Kill a mounted Skeleton Rider with Lancer
      • Apocalypse Now: Kill 100 humanoid creatures with Bane of Anthropoids
      • Sparkling Fortune: Receive extra diamond ore with Rare Earth
      • Silver Horde: Create a small army of silverfish with Curse of Infestation
      • Poseidon's Bane: Kill a drowned or guardian with Javelin
  • Enchantments:
    • Added 8 new enchantments
      • Bane of Anthropoids: (Swords and Axes Enchantment) Higher damage when attacking living human-like mobs and players (Incompatible with Sharpness, Bane of Arthropods, Smite, and Quick Strike)
      • Curse of Infestation: (Pickaxe Enchantment) Mined items become their infested counterpart if it exists
      • Flash: (Fishing Stick Enchantment) Places and updates light blocks (Incompatible with Wand and Moisturize)
      • Fling: (Fishing Stick Enchantment) Knocks mobs towards the attacker (Incompatible with Irene's Lasso and Whipped)
      • Javelin: (Trident Enchantment) Higher damage when throwing trident (Incompatible with Riptide and Lancer)
      • Lancer: (Trident Enchantment) Riding mobs increases damage against other mobs (Incompatible with Javelin)
      • Rare Earth: (Pickaxe Enchantment) When mining deepslate ore variants, gain a regular ore variant of the block as well (Incompatible with Silk Touch)
      • Whipped: (Fishing Stick Enchantment) Chance to tame or severely damage tameable animals (Incompatible with Irene's Lasso and Fling)
  • Events:
    • Added the BaneOfAnthropoidsEvent
      • Extends the ESEntityDamageEntityEvent
      • Simple event
    • Added the ESBlockPhysicsEvent
      • Extends the ESBlockEvent
      • Adds BlockData and Player of the block event
    • Added the FlashBreakEvent
      • Extends the ESBlockBreakEvent
      • Simple event
    • Added the FlashPlaceEvent
      • Extends the ESBlockPlaceEvent
      • Adds the light level of adding the block; default 1
    • Added the FlashUpdateEvent
      • Extends the ESBlockPhysicsEvent
      • Adds the current light level and new light level of the block
    • Added the FlingEvent
      • Extends the ModifyVectorEvent
      • Simple event
    • Added the InfestationEvent
      • Extends the ESBlockDropAddItemEvent
      • Simple event
    • Added the JavelinEvent
      • Extends the ESEntityDamageEntityEvent
      • Simple event
    • Added the LancerEvent
      • Extends the ESEntityDamageEntityEvent
      • Simple event
    • Added the RareEarthEvent
      • Extends the ESBlockDropAddItemEvent
      • Simple event
    • Added the WhippedTameEvent
      • Extends the ESEntityDamageEntityEvent
      • Simple event
    • Added the WhippedTortureEvent
      • Extends the ESEntityDamageEntityEvent
      • Simple event
Changes:
  • Compatibility:
    • Remove EnchantmentSolutionLegacy support
      • This plugin was deleted a while ago. If you still use it, please update to 2.4.15 before updating beyond that
    • Remove old Minecraft version compatibility:
      • Remove compatibility for versions 1.13-1.15 completely
      • Remove compatibility for versions 1.16-1.16.4
      • Remove compatibility for versions 1.17
    • Updated all compatibility plugins to current versions as of 12/10/21
      • McMMO Legacy and Overhaul, Quests, Vein Miner, Jobs Reborn, etc.
  • Enchantments**:
    • Infinity:
      • Added compatibility to Hoes and Shovels for use with Frosty/Zeal/Splatter Fest
    • Irene's Lasso:
      • Can now be found in the enchantment table by default
      • Now incompatible with Whipped and Fling
      • No longer incompatible with Wand
    • Moisturize:
      • Changed tool used from Shears to Fishing Stick (Carrot on a Stick, Warped Fungus on a Stick)
      • Now incompatible with Flash and Wand
    • Soulbound:
      • Modified its large array of enchantment locations to just be "Enchantable"
      • Allows Shields to be enchanted (rather than given through Anvil only)
    • Streak:
      • Will no longer do more damage against a mob that does not have the streak
    • Thorns:
      • Updated enchantment description to account for double durability damage being fixed in 1.16.2
    • Wand:
      • Can now be found in the enchantment table by default
      • Now incompatible with Flash and Moisturize
      • No longer incompatible with Irene's Lasso
  • Item Break:
    • Will now only load once during server load
  • Mob Heads:
    • Added 1.17 mob heads to Beheading
  • Sounds:
    • Added 1.17 and 1.18 sounds to Height++/Width++/Depth++
Fixes:
  • Fix for issue with enchanting table GUI reloading too quickly, causing old enchantments to appear instead of new ones
  • Fix for Smeltery giving Cobbled Deepslate when breaking Deepslate
----------, Dec 12, 2021

NOTE: Irene's Lasso contains a data change that makes previous mobs captured with Irene's Lasso disappear. Please make sure all animals stored with Irene's Lasso are removed before updating to this version.


Changes:
  • Enchantments:
    • Irene's Lasso
      • Now allows most NBT data to be saved
      • Should save data from other plugins onto animals in Irene's Lasso
    • Saving Enchantments:
      • Disabled enchantments will not be null with RegisterEnchantments::getCustomEnchantment() method
      • Enchantments not registered with EnchantmentSolution will become a SnapshotEnchantment with RegisterEnchantments::getCustomEnchantment() method
----------, Aug 7, 2021

Fixes:
  • Fix for Memory Leaks with mining enchantments
  • Fix for external enchantments still causing null pointer exceptions
  • Fix for version error with 2.4.14
----------, Jul 28, 2021

Changes:
  • Enchantments:
    • Overkill:
      • Reduced cooldown of usage from 4 ticks to 3
        • Player can shoot 5-6 arrows a second instead of 4-5
      • Reduced projectile speed from 40% to 25%
      • Added ability to use Spectral Arrows and Tiped Arrows
Fixes:
  • Fix for Irene's Lasso not saving in 1.17 and 1.17.1
  • Significantly reduce login time using ES
----------, Jul 27, 2021

Fixes:
  • Fix for NullPointerException in VanishListener
----------, Jul 12, 2021

Fixes:
  • Slightly improve performance of VanishListener and player login events
  • Fix for enchantments from other plugins causing NullPointerExceptions on moving
----------, Jul 12, 2021

Changes:
  • Allow Gaia to break Azalea and Flowering Azalea Leaves

Fixes:
  • Fix for 1.17 anvil compatibility not working properly
----------, Jun 26, 2021

Additions:
  • Config:
    • Added multi_block.delay_on_timeout
      • If while running HWD the tick turns over to the next one, skip this number of ticks
      • Keeps the server from overrunning despite asynchronous breaking of blocks
      • Default is 5 ticks
Changes:
  • NMS:
    • Added explicit 1.17 support
    • Removed redundant NMS code
      • Chest loot will no longer require NMS
Fixes:
  • Fix for anvil listener setting the result item twice
  • Fix for anvil listener failing when the vanilla result item is null
  • Fix for potential issue with breaking blocks with HWD/Gaia
  • Fix for Dark Oak Wood not turning into charcoal with Smeltery
----------, Jun 16, 2021

Changes:
  • Misc.:
    • Purpur Block and Purpur Pillar can now be broken with Height/Width/Depth and placde with Wand
    • New custom villager trades will now increase/decrease in price correctly

Fixes:
  • Fix for /estest adding information to items when used
  • Fix for /estest throwing a NullPointerException when lore is null
  • Fix for ES not overriding anvil correctly
----------, Jun 2, 2021

Additions:
  • Configurations:
    • Added "multi_block.testing" to config.yml
  • Enchantments:
    • Height/Width/Depth:
      • Added a testing option for these enchantments
      • Set multi_block.testing to true for this function
      • Test for servers where players lose ability to use Height/Width/Depth or for those with lag issues from these enchantments

Changes:
  • Anvil:
    • Change to vanilla anvil to allow other plugins to change the item
      • Allows for chat colors in item names with CMI
  • Configurations:
    • Changed default value of "multi_block.async" to true
  • Enchantments:
    • Smeltery:
      • Changed Nether Gold Ore to give Gold Ingots

Fixes:
  • Fix for Nether Gold Ore not giving extra items with Fortune and Smeltery
  • Fix for IndexOutOfBoundsException with Curse of Contagion
  • Fix for the level 3 enchanting slot requiring a higher level than the level 4 slot
  • Fix for default enchantments still having the English usage in the Enchanting Table
----------, May 29, 2021

Fixes:
  • Fix for large memory usage/lag issues with certain enchantments
----------, May 21, 2021

Fixes:
  • Fix for ItemBreakType checking files too many times on servers.
----------, May 21, 2021

Changes:
  • Enchantments:
    • Gaia:
      • Can now breaking wood, stripped logs, and stripped wood of all tree types
----------, May 15, 2021

Fixes:
  • Fix for the vanilla enchanting table not taking experience and lapis anymore
----------, Apr 29, 2021

Changes:
  • Commands:
    • RemoveEnchant:
      • Can now do /removeenchant Curses to just remove curse enchantments from an item

Fixes:
  • Fix for ItemBreakType using too much memory
----------, Apr 29, 2021

Additions:
  • Events:
    • ESEnchantItemEvent:
      • Basic event
      • Extends EnchantItemEvent
      • Will prevent ES event calls for enchanting possibly throwing errors
    • GenericWalkerBlockEvent:
      • Basic event
      • Extends WalkerBlockEvent
      • To be used with enchantments added with the API
    • GenericWalkerDamageBlockEvent:
      • Basic event
      • Extends WalkerDamageBlockEvent
      • To be used with enchantments added with the API
  • Interface:
    • Added interfaces for people using the API to easily create their own enchantments with similar functionality
    • Register new interfaces using the InterfaceRegistry
    • Current Interfaces:
      • WalkerInterface (For Magma Walker and Void Walker)
Changes:
  • Async Block Breaking:
    • Re-added option for synchronous block breaking
    • Currently, asynchronous block breaking is causing issues for many people, and every "fix" doesn't work. Need to rethink asynchronous block breaking in the future.
      • Gaia still works through asynchronous block breaking; only Height/Width/Depth is reverted.
    • Asynchronous block breaking is set to false by default again
  • Compatibility:
    • Updated mcMMO to 2.1.196
    • Updated all other compatibilities to latest version
    • Begin adding material compatibility for 1.17
  • Enchanting:
    • Added extra debug checks to determine if issues occurred with enchanting and which GUI was used
    • Enchantments in the Enchanting Table will try to reset no matter any issues with enchanting
  • Enchantments:
    • Moisturize:
      • Can now extinguish soul campfires
  • EnchantmentUtils:
    • Added method to get EnchantmentLevel of a specific enchantment from an item
  • Enchantment Abilities:
    • Updated way ItemBreakType, ItemPlaceType, ItemMoisturizeType, etc. find the correct information on which blocks can be used with certain actions
      • Should have no effects on users' ends
  • MMOItems:
    • When debugging an item using /estest, will now add the Item Type and Item Type Set in the lore
  • Startup:
    • Added Minecraft API Version to list of information sent on startup
    • Added ItemBreakType to be initialized in the load phase to reduce lag on first block break
Fixes:
  • Fix for version.bukkit using the incorrect information in debug.yml
  • Fix for permissions not being checked correctly (tried to use default_enchantments, custom_enchantments instead of enchantmentsolution)
----------, Apr 25, 2021

Changes:
  • Commands:
    • Reload:
      • Will now send a message warning against overriding changes made using the /esconfig menu
      • Using /esreload confirm will override the warning and replace the files' contents with what is currently saved in the filesystem
    • EnchantRemove:
      • Fix command permission to reflect what's in plugin.yml (enchantmentsolution.command.enchantremove)
  • Debug:
    • Added a way to send higher level debug messages to sendDebug
    • Added a debug.yml file to extras
      • Does not save, but stores information on messages sent from ES or child plugins to console
      • Should prevent issues with /esdebug becoming too slow in the last few releases
  • Enchanting:
    • Now throws an EnchantItemEvent when used
    • May throw errors - check esdebug logs if having issues
    • Saves EnchantingTable enchantments by player to save time finding and removing generated enchantments for players
  • Enchantments:
    • Height++/Width++/Depth++:
      • Slowed down breaking time of blocks from every tick to every 3 ticks
      • Breaking blocks every tick overloads the server and makes it believe it is inoperable
  • Versions:
    • Added explicit support for 1.16.5

Fixes:
  • Fix for duplicate sending of messages from /esdebug when run by a player
  • Fix for duplicate players being found in getAllESPlayers() method
  • Fix for double experience being taken when using the grindstone take book function
----------, Jan 19, 2021

Fixes:
  • Fix for Smeltery accidentally dropping no iron or gold when combined with Fortune
----------, Dec 4, 2020

Fixes:
  • Fix for "Cannot drop air" issue still occurring with Smeltery
----------, Dec 2, 2020

Requires CrashAPI 1.0.7+. Downloads can be found here.

Additions:
  • Configurations:
    • Added "debug.send" to config.yml
    • Sends any debug messages to the console
Changes:
  • Commands:
    • ESDebug
      • All messages sent by Enchantment Solution to the console will now be also added to the debug.yml file on generation
      • Debug messages will also be written to this file
      • Exceptions and errors are not included; if receiving an exception or error, please send a support ticket to the Discord channel immediately
  • Enchantments:
    • Additional changes to HWD/G due to bugs

Fixes:
  • Fix for Flower Gift throwing an exception when not giving a flower
----------, Dec 2, 2020

Additions:
  • Configurations:
    • Added "anvil.repair_cost_limit" to config.yml
      • Sets the maximum NBT item repair_cost
      • This limits the amount of experience one will have to use to repair items and/or combine enchantments
    • Added legacy_frequent_flyer to enchantments.yml
      • Will have all levels set the normal fly speed, and level increases durability

Changes:
  • Commands:
    • ESBook will now give multiple randomly enchanted books when RandomEnchant or RandomMultiEnchant and amount > 1
  • Enchantments:
    • Changed Height/Width/Depth and Gaia from generating infinite threads
    • Height/Width/Depth and Gaia will now try to reset on player log
      • Acts as a general fix for HWD/G failing for players until server restart

Fixes:
  • Fix for Smeltery still trying to drop air on occasion
  • Fix for ESBook only giving 1 book despite amount being > 1
  • Fix for HWD/G failing until server reset
----------, Nov 28, 2020

Fixes:
  • Fix for the anvil trying to drop air in certain circumstances (causing duplication)
  • Fix for OP players or players with old permissions still being given access to certain settings
  • Fix for console sending warnings when using Smeltery/Telepathy and without mcMMO
  • Fix for certain items not being fixed properly when using /esfix
----------, Nov 20, 2020

With the release of 2.4.0, CrashAPI is REQUIRED for EnchantmentSolution to work. Please think of this when you upgrade.

Additions:
  • Advancements:
    • Added 18 new advancements for the new and updated enchantments:
      • Thumbs Up: Replant a crop using Green Thumb
      • Reforestation: With Gaia, replant 1000 trees
      • Scourge of the Forest: Destroy a Gaia-planted sapling
      • Deforestation: With Gaia, break 1000 logs
      • Broken Dreams: Have an item break from Curse of Instability
      • Blind as a Bat: Make a bat even more blind with Blindness
      • World Record: Stay underwater for 11 minutes and 35 seconds using Water Breathing
      • Replenished: Replenish extra hearts with Life Drain
      • The Snowman: Have a snowball fight with a Snow Golem
      • Double Damage: Kill 100 of a single mob in a row using Streak
      • Spooky Scary Skeleton: Give a skeleton the withering effect using Withering
      • Saving Grace: Protect your tamed animal from death with Pacified
      • Kill the Messenger: Kill a ghast with a fire charge using Zeal
      • Before I Melt Away...: Kill an entity who would melt you with Frosty
      • Too High: Die of fall damage when equipped with Plyometrics
      • Evening Stroll: Run around at night with Joggers
      • Slackin': Be afflicted with the Slowness effect from Truant
      • Spider Senses: Afflict another player with the Poison effect using Venom
  • API:
    • Now has the ability to disable (and reenable) enchantments for certain players
    • Disabling enchantments can work on a timer in ticks or be disabled entirely until being reenabled manually
    • Multiple plugins can disable custom enchantments
      • Removing the disabled enchantments will only do so for the specified plugin
    • All API methods are handled in ApiESPlayerUtils
  • Compatibility:
    • Requires CrashAPI 1.0.5+
  • Enchantment Discovery:
    • Adds a subsection of advancements that will be viewable when getting enchantments
    • Disabled by default
      • Change discovery_advancements to true in advancements.yml to enable
    • Displays basic information about enchantments in advancement form
    • Will also let players know about /esinfo for enchantments
  • Enchantments:
    • 4 New Enchantments:
      • Gaia: (Axes Enchantment) Slowly breaks connected logs and leaves in a certain area. Leaves may drop saplings that plant on the ground to replenish the forest. (Conflicts with Depth++, Height++, and Width++)
      • Green Thumb: (Hoes Enchantment)
      • Pacified: (Melee Enchantment) Decreases damage against your own tamed mobs.
      • Streak: (Melee Enchantment) Killing a certain mob type will increase damage against that particular mob.
    • 12 Updated Enchantments:
      • Blindness: (Melee and Ranged Enchantment) Gives blindness to enemy upon hit.
        • Now conflicts with Truant
      • Curse of Instability: (Everything Enchantment) Decays durability.
        • Now has a 1/50 chance of removing durability every tick, rather than 1/15 chance every 5 seconds
      • Depth++: (Tools Enchantment) Break blocks +1 distance further per level.
        • Now conflicts with Gaia
      • Frosty: (Shovel Enchantment) Shoots snowballs on left-click.
      • Joggers: (Leggings Enchantment) Gives Speed based on level. (Conflicts with Plyometrics)
      • Life Drain: (Melee and Ranged Enchantment) Halves damage of attack but gives 50% of damage to player.
      • Plyometrics: (Leggings Enchantment) Gives Jump Boost based on level. (Conflicts with Joggers)
      • Truant: (Melee and Ranged Enchantment) Slows opponents.
        • Now conflicts with Blindness
      • Venom: (Melee and Ranged Enchantment) Gives poison to enemy upon hit.
        • Now conflicts with Withering
      • Water Breathing: (Helmet Enchantment) Gives water breathing effect. (Conflicts with Aqua Affinity)
      • Withering: (Melee and Ranged Enchantment) Gives wither to enemy upon hit.
        • Now conflicts with Venom
      • Zeal: (Hoe Enchantment) Shoots fireballs on left-click.
  • Events:
    • Added the BlockDropItemAddEvent
      • Extends the vanilla BlockDropItemEvent
      • Used to specify that the item being dropped is dropping from ES
    • Added the ESBlockDropAddItemEvent
      • Extends the ESBlockDropItemEvent
      • Simple event for if the item dropped will be added to a BlockDropItemEvent
    • Added the ESBlockDropItemEvent
      • Extends the ESBlockEvent
      • Adds the previous BlockData of the block, the list of ItemStacks to be dropped, and the Player causing the drops
    • Added the ESBlockOverrideItemEvent
      • Extends the ESBlockDropItemEvent
      • Adds an override boolean and a list of the original items being overriden (or added to)
    • Added the ESCollectBlockDropEvent
      • Extends the ESBlockEvent
      • Adds the previous BlockData of the block, the list of ItemStacks to be collected, and the Player collecting the drops
    • Added the ESEntityDeathEvent
      • Extends the ESEntityEvent
      • Simple event to keep track of entity deaths
    • Added the FrostyEvent
      • Extends the ProjectileSpawnEvent
      • Adds whether the event should take snowballs from players' inventories and whether the player has a snowball
    • Added the GaiaEvent
      • Extends the MultiBlockBreakEvent
      • Simple event
    • Added the GreenThumbEvent
      • Extends the ESBlockDropOverrideItemEvent
      • Adds the ItemStack of the seed
    • Added the InstabilityEvent
      • Extends the ItemDamageEvent
      • Simple event
    • Added the LifeDrainEvent
      • Extends the ESEntityDamageEntityEvent
      • Adds the amount of health back that would use
    • Added the PacifiedEvent
      • Extends the ESEntityDamageEntityEvent
      • Simple event
    • Added the PlayerChangeCoordsEvent
      • Extends the vanilla PlayerEvent
      • Similar to PlayerMoveEvent but only if the x/y/z coordinates are changed and not the yaw/pitch of player
    • Added the PotionAfflictEvent
      • Extends the PotionEffectEvent
      • Adds the type of potion effect and its duration and level, the previous effect, whether it should override the previous effect, and the entity afflicting the potion effect
    • Added the PotionEffectArmorAddEvent
      • Extends the PotionEffectEvent
      • Simple event
    • Added the PotionEffectArmorRemoveEvent
      • Extends the PotionEffectEvent
      • Simple event
    • Added the StreakDeathEvent
      • Extends the ESEntityDeathEvent
      • Adds the player killing the entity
    • Added the StreakEvent
      • Extends the ESEntityDamageEntityEvent
      • Simple event
    • Added the ZealEvent
      • Extends the ProjectileSpawnEvent
      • Adds whether the event should take fire charges from players' inventories and whether the player has a fire charge

Changes:
  • Advancements:
    • "Fast and Furious" and "Over 9000":
      • Changed description to include Depth++
  • Compatibility:
    • Deprecated use of 1.13 and 1.13.2 API methods
      • BlockDropItemEvent is used in Spigot 1.13.2+
      • 1.13 versions will still be allowed, but many features may be broken, and support will not be guaranteed
    • Removed compatibility with EnchantmentSolutionAdditions
      • All enchantments have been added to EnchantmentSolution
    • Updated mcMMO support to 2.1.156
  • Configurations:
    • Standardized messaging when initializing configuration files
  • Enchantments:
    • Warnings for configuration file issues now specify the configuration file they come from
    • Warnings for Sticky Hold items now have a different error message than a configuration file error
    • Beheading:
      • May now drop custom mob heads on killing entities
      • Requires the enchantmentsolution.abilities.custom-skulls permission (set to true by default)
    • Curse of Contagion:
      • Will now create a thread when a player equips it to benefit performance
    • Curse of Exhaustion:
      • Will now create a thread when a player equips it to benefit performance
    • Flower Gift:
      • Now has a cooldown to how often right clicking flowers will drop more flowers
      • Default cooldown is 20 ticks
    • Force Feed:
      • Will now have a faster chance of regenerating durability based on the level
      • Will now regenerate a random number of durability points based upon the level (max of 5 at level 5)
      • Significantly reduced the amount of exhaustion generated through repair (from 2.0 solid no matter how much regenerated to 0.3f times the durability points)
      • Now works like Mending does in 1.16+ (All versions)
    • Frequent Flyer:
      • Will now create a thread when a player equips it to benefit performance
      • Now has a max level of 5 when using level 50
      • Item will be damaged every 3 seconds regardless of where player is in the world
      • Enchantment level now controls flight speed
      • 36% of creative flight speed at level 1, increases by 16% every level
    • Frosty:
      • Increased cooldown from 1 to 2 ticks (compared to ESAdditions)
    • Gold Digger:
      • Now uses the BlockDropItemEvent when spawning in items instead of BlockBreakEvent
    • Magic Guard:
      • Will now create a thread when a player equips it to benefit performance
    • Overkill:
      • Increased cooldown from 2 to 4 ticks (compared to ESAdditions)
    • Sacrifice:
      • Increased damage by over 100%
    • Smeltery:
      • Now uses the BlockDropItemEvent when spawning in items instead of BlockBreakEvent
    • Splatter Fest:
      • Increased cooldown from 1 to 2 ticks
    • Telepathy:
      • Now uses the BlockDropItemEvent when spawning in items instead of BlockBreakEvent
      • Items from other plugins should now work better when breaking them with Telepathy (not tested)
    • Zeal:
      • Increased cooldown from 10 to 20 ticks (compared to ESAdditions)
  • Events:
    • Removed the ModifyBlockEvent
    • Removed the ESPotionEffectEvent
      • All events that implemented this now implement PotionEffectEvent
    • GoldDiggerEvent:
      • Changed from extending the ModifyBlockEvent to extending ESBlockDropAddItemEvent
      • Removed the goldItem ItemStack and added that to the items list
    • HeightWidthEvent:
      • Changed the name from HeightWidthEvent to HeightWidthDepthEvent
      • Also adds the EnchantmentLevel for the Depth++ enchantment
    • MultiBlockEvent:
      • Changed 'blocks' from a Collection to a List
    • SmelteryEvent:
      • Changed from extending the ESBlockBreakEvent to extending ESBlockDropAddItemEvent
    • TelepathyEvent:
      • Changed the name from TelepathyEvent to TelepathyBlockEvent
      • Changed from extending ESBlockBreakEvent to extending ESCollectBlockDropEvent
      • Removed the default drops (now comes from ESCollectBlockDropEvent) and the TelepathyType
    • ESPotionEffectEvent
      • All events that implemented this now implements PotionEffectEvent
    • Fishing:
      • Changed the fishing file from fishing.yml to mcmmo-fishing.yml
      • This should help classify this as an mcMMO compatibility file and not for vanilla fishing loot
      • Added 2.3 and 2.4 enchantments to the file
    • Minigame Gametype
      • Multiple costs can now be associated with getting enchantments from minigames
      • Costs:
        • Level Costs: the default experience level cost
        • Lapis Costs: the default lapis lazuli cost
        • Economy Costs: money costs from a Vault-registered Economy plugin
      • Each cost can now be increased and capped separately in the custom screen
    • Permissions:
      • Removed old permissions from the plugin.yml
        • Removed enchantmentsolution.enable-flight
        • Removed enchantmentsolution.demigod-anvil
        • Removed enchantmentsolution.demigod-books
        • Removed enchantmentsolution.god-anvil
    • RPG Mode:
      • Added experience for 15 new enchantments + added Curse of Instability to the list of free enchantments
    • Other:
      • Remove override of vanilla anvil behavior (now will only override the PrepareAnvilEvent)

Fixes:
  • Fix for Asynchronous controllers (Height/Width++) still working even when player's item is not in their inventory
  • Fix for bug when generating Minigame enchantments with level 50 enchantments disabled
  • Fix for the Minigame inventory not working when enchanting table custom GUI is disabled
  • Fix for Magic Guard working even when disabled in certain circumstances
  • Fix for weird behavior with the vanilla anvil and only renamed items
  • Fix for advancements sometimes failing to load due to the language locale of the computer
  • Fix for a BlockDropItemEvent being called even if drops are Air or null
  • Fix for a null offer throwing a NullPointerException in EnchantmentListener
----------, Nov 18, 2020

IMPORTANT NOTE:
Enchantment Solution 2.4.0 is right around the corner, and because of how much has been piled onto the enchantment plugin, I have decided to separate a lot of the features that aren't specific to Enchantment Solution into its own plugin. This also allows for easier support of other plugins that may come out in the future, establishes a baseline for easy compatibility with other plugins, and shrinks the overall size and weight of Enchantment Solution into something a bit more manageable. This plugin is called CrashAPI and can be downloaded here. All future versions of Enchantment Solution will require CrashAPI to function properly.

Changes:
  • Add support for 1.16.4
Fixes:
  • Fix for advancements sometimes failing to load due to the language locale of the computer
----------, Nov 3, 2020

Fixes:
  • Fix for Snow Foxes and Brown Mooshrooms being reverted to normal when using Irene's Lasso
  • Fix for /esinfo still showing incorrect info when enchantments are disabled
  • Possible fix for commands not working when aliases are missing
----------, Oct 27, 2020

Changes:
  • Updated the /esfix return to include the items fixed
    • Remove and reset the language file or remove "commands.fix-enchants-other" and "commands.other-fixed-enchants" to get the new information
    • Has not been tested in versions < 1.16

Fixes:
  • Fix for '/es info' not properly working when enchantments are disabled
  • Fix for NullPointerException when JobsReborn does not properly load
  • Fix for villager enchantmented books not being eligible for discounts in 1.14+
    • Old villagers are not updated; only works with new villagers
----------, Oct 17, 2020

Fixes:
  • Fix for startup error with the language file
  • Fix for Soulbound not working on shulker boxes
----------, Oct 14, 2020

Changes:
  • Armor will now unequip enchantments (Gung Ho, Life, etc.) when those enchantments have been disabled
  • Added the following blocks to the list of blocks broken via Height/Width++:
    • Cracked Polished Blackstone
    • Nether Bricks (Fix misspelling)
  • Added the following blocks to the list of blocks placed via Wand
    • Cracked Polished Blackstone
    • Nether Bricks (Fix misspelling)
    • Crying Obsidian
    • Ancient Debris
  • Allow vanilla enchantments' display names ot be changed
    • Will only affect how they appear in ES commands/inventories; will not change them on items
Fixes:
  • Fix for equipping enchantments still running even when disabled
----------, Oct 14, 2020

Changes:
  • Multi Block (Height/Width++)
    • Will now always be used async, regardless of the multi_block.async value
    • Increased the maximum blocks per tick for players and servers at a time
      • This will increase lag from the old values, but decrease it overall from synchronous block breaking

Fixes:
  • Fix for multi_block.all_faces not properly working
  • Fix for 1.16.3 support being broken instead of being added
  • Fix for Telepathy and Height/Width++ never being broken async
  • Fix for Telepathy causing a ton of entity lag when the player's inventory is full
  • Fix for NullPointerException when Irene's Lasso finds a randomly null animal
  • Fix for Moisturize overriding protection plugins
  • Fix for Cooldownable events not working when the tick number is negative (Overkill, Splatter Fest)
----------, Oct 4, 2020

Changes:
  • Updated support:
    • Explicit support for 1.16.3
    • AuctionHouse support updated to 2.1.6
    • JobsReborn support updated to 4.16.2
    • mcMMO Overhaul support updated to 2.1.147
    • MMOItems support updated to 6.2.1
      • Note that this support is only for the custom item types currently
    • MMOLib support updated to 1.3.6
    • Quests support updated to 2.9.5
    • RestrictedCreative support updated to 2.4.4
    • VeinMiner support updated to 1.16.2

Fixes:
  • Fix for AdvancementThread causing lag when advancements aren't enabled
  • Fix for villagers requiring non-enchanted enchanted books as payment for an enchanted book
----------, Sep 30, 2020

Changes:
  • Reverted change for ability to combine enchanted books when the enchantments cannot be added to the item through the anvil
Fixes:
  • Fix for "Attribute already applied" error on login
----------, Aug 19, 2020

Changes:
  • Removed the Enchantment Check and completely replaced with Vanish
    • Removed enchantment_check from config.yml
    • Removed enchantment_check_on_login from config.yml

Fixes:
  • Removed ability to combine enchanted books when the enchantments cannot be added to the item through the anvil
  • Fix for 1.16.2 anvils not working
  • Fix for vanilla anvil cannot combine message being too low
  • Fix for NoClassDefError being shown when a different Quests plugin is being used
----------, Aug 18, 2020

Changes:
  • Updated compatibility to allow 1.16.2 servers
----------, Aug 12, 2020

Fixes:
  • Fix for issues with starting up the plugin.
----------, Aug 11, 2020

Additions:
  • Events:
    • Added the ItemAddEvent
      • Made to signify when an item enters an inventory
      • Extends the vanilla PlayerEvent
      • Adds an item variable for the item being added/has been modified


Changes:
  • Added a COMMAND enum to ItemEquipEvent.HandMethod and ArmorEquipEvent.EquipMethod
  • Made Frequent Flyer, Icarus, Curse of Contagion, Curse of Exhaustion, Force Feed, and Magic Guard less resource-intensive

Fixes:
  • Fix for players in Creative Mode throwing NullPointerExceptions when enchanting without Lapis Lazuli
----------, Aug 11, 2020

Changes:
  • Removed exception message when finding the wrong Quests plugin
    • All other Quests plugins should work fine with ES. If not, submit a compatibility request via the Discord.

Fixes:
  • Fix for Sticky Hold requiring 5 of an item in the anvil but only using 4
  • Fix for Sticky Hold still not working with the vanilla anvil
  • Fix for permissions not using the correct namespace (was looking for <default_enchantments/custom_enchantments/[namespace]>.<enchantment_name>.<anvil/table>.level<level> instead of enchantmentsolution.<enchantment_name>.<anvil/table>.level<level>)
  • Fix for persistence causing issues with the enchanting table
  • Fix for villager trades using enchanted books as ingredients when "use_enchanted_books" is set to true in config.yml
----------, Aug 7, 2020

Changes:
  • Added "multi_block.all_faces" to config.yml
    • If true, every adjacent block will be added to the breaking list when breaking one block
    • If false, the "star" blocks (North, South, East, West, Up, Down) will only be added
  • Added a list of all plugins to the debug.yml generation script
    • This is just to check for any issues with compatibility between plugins and issues with enchantments, such as Height++/Width++

Fixes:
  • Fix for Sticky Hold not working properly
  • Fix for renamed Lapis not being removed in vanilla enchanting table
  • Fix for Fortune and Telepathy duplicating fortuned items in 1.16
  • Fix for converting between books and enchanted books not adding custom enchantments to the lore
    • This also fixes enchanting items in vanilla enchanting tables not having custom enchantment lore
  • Fix for issue with finding enchantment levels higher than 10 in 1.16+
----------, Aug 4, 2020

Frequent Flyer continues to have issues pointed out after making it less resource-intensive and I'm gonna have a mental breakdown if it isn't fixed in full in this update. Jk jk jk... unless?

Changes:
  • Changed Telepathy + Mending post-1.16 to now work like vanilla 1.16
  • Modified a few of the comments in config.yml
  • Other plugins disabling player's flight will now reset Frequent Flyer
    • This prevents a bug where plugins like Towny taking away flight make the player logout to allow flight again

Fixes:
  • Enchantment Check on Login will now properly function when disable_enchant_method is vanish
  • Fix for Smeltery experience from Iron Ore, Gold Ore, Ancient Debris, etc. not working with Exp. Share
  • Fix for Title Not Set exceptions with AnvilGUI (hopefully)
  • Level 0 enchantments being added to items should now immediately remove the level 0 enchantment
  • Fix for Frequent Flyer throwing NullPointerExceptions when a player with enchantmentsolution.abilities.has-external-flight is flying without using Frequent Flyer
----------, Jul 29, 2020

Fixes:
  • Fix for Frequent Flyer only working if an item is broken.
----------, Jul 24, 2020

Additions:
  • Added Quests support
  • Added permission "enchantmentsolution.enchantments.rpg.all"
    • Gives player every single level for every enchantment in ESRPG
    • Defaults to op

Changes:
  • Updated DamageUtils to use ItemStack rather than ItemMeta
  • Allowed players to rename and repair items using the vanilla anvil at the same time
  • Removed ability for held items to give the playerthe ability to fly with Frequent Flyer
  • Add mirror items to blank spaces in RPGInventory

Fixes:
  • Fix for broken elytra being allowed to use Frequent Flyer
  • Fix for VanishListener giving items level 0 enchantments
----------, Jul 24, 2020

Changes:
  • Increased performance

Fixes:
  • Fix for Repair Cost not updating properly
  • Fix for anvil.level_divisor allowed to be less than 1
    • When less than 1, it will now properly be set to 4
  • Fix for NullPointerException when loading data from data.yml
  • Fix for /reload preventing enchantments from working properly
    • The script will now look for if the enchantment with the same namespace exists, and if so, not throw an error
----------, Jul 22, 2020

Changes:
  • Increased performance

Fixes:
  • Fix for Repair Cost not updating properly
  • Fix for anvil.level_divisor allowed to be less than 1
    • When less than 1, it will now properly be set to 4
  • Fix for NullPointerException when loading data from data.yml
  • Fix for /reload preventing enchantments from working properly
    • The script will now look for if the enchantment with the same namespace exists, and if so, not throw an error
----------, Jul 21, 2020

Fixes:
  • Fix for certain disabled enchantments still calling code
  • Fix for VanishListener still causing unusual behavior
  • Fix for ESRPG failing to load th RPGInventory when disabled enchantments exist
----------, Jul 17, 2020

Fixes:
  • Fix for vanish listener causing strange effects on reload
  • Fix for ChestLoot containing more enchantments than it should
----------, Jul 16, 2020

Note 1: I have recently created a discord server for help + suggestions for the plugin, which will make it much easier to answer questions and get provided feedback in real time. Please check it out here.

Note 2: I will be holding a livestream on Friday the 17th at 6pm EDT (4pm MDT) on my Twitch channel. It will feature a Q+A on current things in Enchantment Solution, the future of Enchantment Solution, as well as a first-look at upcoming Hard Mode features.

Additions:
  • Permissions:
    • enchantmentsolution.abilities.player-skulls
      • Enables player skulls dropping from Beheading
      • Defaults to true
    • enchantmentsolution.enchantments.lower-levels
      • Lowers the levels of enchantments in their player inventory and opened inventories to the max their permissions allow
      • Defaults to false

Changes:
  • Enchantments:
    • Knockup:
      • Removed knock up from sweep attack targets to better pair with Knockback
  • Permissions:
    • Edited a number of permissions to better reflect what they do
      • enchantmentsolution.enable-flight changed to enchantmentsolution.abilities.has-external-flight
      • enchantmentsolution.god-anvil changed to enchantmentsolution.anvil.god
      • enchantmentsolution.demigod-anvil changed to enchantmentsolution.anvil.demigod
      • enchantmentsolution.demigod-books changed to enchantmentsolution.anvil.demigod-books
    • All permissions effected have their old values essentially deprecated; after the next major release, they will no longer work
  • Compatibility:
    • RestrictedCreative compatibility fully supported
      • Currently there's a potential bug with the isCreative method in RestrictedCreative; their plugin author is working on fixing that

Fixes:
  • Fix for NullPointerException when trying to repair 0 items
  • Fix for Vanish Listener being called much less than it should be
  • Fix for Frequent Flyer not working when logging into a server more than once in one reset
----------, Jul 16, 2020

Additions:
  • Added "trades.piglin" to config.yml
    • Defaults to true
    • Sets whether custom enchantments can spawn on piglin loot, much like "trades.villager"

Changes:
  • Changed "villager_trades" in config.yml to "trades.villager"
  • Updated mcMMO Overhaul to 2.1.133
  • Updated mcMMO Classic to 1.6.3
  • Updated MMOItems to 5.5.3
  • Experimental RestrictedCreative support
    • May or may not work currently

Fixes:
  • Fix for possible NullPointerException with attributes and equipping items
  • Fix for always trying to enchant items that come out of fishing
  • Fix for piglin enchanted loot always containing Soul Speed
  • Fix for Persistence causing a NullPointerException when trying to find legacy enchantments
----------, Jul 14, 2020

Fixes:
  • Actually allow Piglin Trades to give players other enchantments besides just Soul Speed
  • Fix for critical duplication issues
----------, Jul 10, 2020

Changes
  • Add 'enchantment_check_on_login' to config.yml for checking a player's inventory for broken enchantments on login
  • Add 'anvil.rename' to config.yml for disabling the rename in the custom GUI for player's without the enchantmentsolution.anvil.rename permission

Fixes:
  • Fix for NullPointerException when flying in survival mode without a Frequent Flyer item
  • Fix for multiple custom enchantments in 1.16 not showing on the item correctly
  • Fix for /esfix in 1.16 versions
  • Fix for more paths failing in the /esconfig menus
----------, Jul 9, 2020

Additions:
  • Added the /estest command
    • Requires the enchantmentsolution.command.test permission
    • Using '/estest item' will show the current data (including metadata) on the player's held item

Changes:
  • Allow ES commands to use vanilla 1.16's search system
    • Typing '/enchantinfo irene' will now show Irene's Lasso in the search rather than just nothing

Fixes:
  • Fix for NullPointerException on Smeltery and Height++/Width++
  • Fix for strange bug disabling enchantments from being edited via /esconfig
----------, Jul 9, 2020

Just as another note, 1.16 support is still being actively worked on. Some things may still not work or may not have their intended results. After this update, it should be much more stable, but that doesn't mean weird things won't happen. Please do your own testing before upgrading any preexisting servers from 1.15 or below to 1.16, and please either contact me on Discord (crashtheparty#3356) or use the bug report template on github (and include debug.yml!) to report bugs.

Changes:
  • Exp. Share can now work with fishing rods
    • Added new ExpShareType - FISH - to go along with this change
    • Exp. Share is not by default available on fishing rods still
  • Modified Smeltery:
    • Removed Gilded Blackstone from Fortune + Smeltery drops (it doesn't work with Fortune really)
    • Added Ancient Debris to Fortune + Smeltery drops
      • Fortune adds up to 15% chance per level for additional netherite scrap to spawn with Fortune
        • Fortune Level 1 generates ~9% more drops (0-15%)
        • Fortune Level 3 generates ~18% more drops (0-45%)
        • Fortune Level 5 generates ~30% more drops (0-75%)
        • This should incentivise Smeltery use on Ancient Debris without overpowering it


Fixes:
  • Fix for more issues with /esdebug
  • Fix for lore being overriden by EnchantmentSolution in certain cases
  • Fix for Gilded Blackstone not being in SilkTouchUtils
  • Fix for other issues related to the lore
----------, Jul 7, 2020

Note: Please note that this is an experimental version with two VERY big changes regarding 1.16 compatibility and attribute enchantments (Gung Ho, Life, Armored, Quick Strike, Toughness) + Frequent Flyer. This is a huge modification to the plugin, which means there may be game-breaking bugs, or there may be none. All that I could find were removed before releasing this version, but limited testing is dangerous.

THIS VERSION IS RECOMMENDED FOR 1.16+ SERVERS ONLY, AND MOSTLY MEANT TO FIX MAJOR BUGS FROM 2.3.1 WITH 1.16 SUPPORT. THERE WILL BE SMALLER BUG FIXES COMING IF AND WHEN BUGS ARE REPORTED.

Additions:
  • Allow Height/Width++ to be done asynchronously
    • Will break blocks out in a plus pattern until all blocks are broken
    • Set with multi_block.async
    • Will only process a limited number of block breaks per tick
      • Set the player limit with multi_block.blocks_per_tick.player
      • Set the global limit with multi_block.blocks_per_tick.global
      • Height++ 3 and Width++ 3 together will usually break an average of 3 per tick
      • Blocks will only break if surrounded by a block that touches another broken block

Changes:

  • Re-add the information from data.yml to the /esdebug output
  • Modify 1.16 support to correctly work
    • 1.14+ Will now no longer have Sticky Hold information and Irene's Lasso information in the lore
    • To upgrade from 1.13 to 1.16 successfully, any Irene's Lasso and Sticky Hold items must be emptied in 1.14-1.15
  • Modified the Attributes information to update some enchantments
    • Life can now be applied to any armor piece and work
    • Gung Ho can now be applied to any armor piece and work (Will override all Life health)
    • Armored can now be applied to any armor piece and work (Will only add from the best level of Armored on all 4 pieces)
  • Modified Frequent Flyer
    • Can now be applied to any armor piece and work (will break the highest level of Frequent Flyer when flying)
    • Will now work until the item breaks
  • Modified Sticky Hold
    • Any item that can not be repaired with a normal material (planks, ingots, diamonds, etc.) can be repaired with 4 diamonds
  • Changed "lore_on_top" in config.yml to "lore_location"
    • Defaults to 'top'
    • Can also be set to 'bottom', where the enchantments will be at the bottom, and 'unset', where they will go wherever
  • Updated DamageUtils to break items when dropping below 1 durability rather than 0
  • Allow removing the fix enchantment timer when enchantment_check in config.yml < 1
  • Changed language.yml value for "commands.enchant-remove-from-item" to "Item does not exist."

Fixes:

  • Fix duplicated enchantments in item lore
  • Fix Soul Speed being only 1 level and a Crossbow enchantment
  • Fix for issue with populateCart
  • Update en_us with netherite information and the newest enchantments
  • Fix for /esbook using the wrong permission
  • Fix for NullPointerException on breaking blocks with certain items
  • Fix for NullPointerException on salvaging a mcMMO item that saves no enchantments
  • Fix for NullPointerException on ESPlayerEvent
----------, Jul 3, 2020

Changes:
  • Added explicit 1.16 support
  • Modified EnchantmentListener to (hopefully) work regardless of any null values
  • Made Overkill, Splatter Fest, and other ProjectileSpawnEvent enchantments have a cooldown
    • Overkill has a 2 tick cooldown, Splatter Fest has a 1 tick cooldown (In Additions, Frosty has a 1 tick cooldown and Zeal has a 10 tick cooldown)
  • General overhaul of the Latest Version and Version Detection System (LVVDS)

Fixes:
  • Fix for vanilla anvil not responding to the custom level cost set by ES
  • Fix for a few block sounds for Telepathy sounds
  • Fix for printing help with fewer than 5 available commands throwing IndexOutOfBoundsExceptions
  • Fix for disabled enchantments causing issues with the enchantment wrapper
  • Fix for /enchantmentsolution:<command> not properly functioning
  • Fix for multiple hotbar messages in versions under MC 1.15
  • Fix for loading classes from MMOLib or MMOItems causing errors in the console log
----------, Jun 26, 2020

Notes:
  • Upgrading from 2.2 to 2.3 will cause some data loss.
    • Any enchantments currently generated in the enchanting table and saved in data.yml will be deleted. This is because the new update removes the material in favor of an itemdata which has more flexibility.
    • Backups of the configuration files will not transfer between 2.2 and 2.3 due to using a new and better system for it. Therefore, restoring from a backup in 2.2 is impossible in 2.3, and any configuration you use should be finalized in your 2.2 version before upgrading to 2.3
Additions:
  • Advancements:
    • Added 11 new advancements for the new enchantments:
      • Wildlife Conservation: Spawn every breedable animal by killing one
      • Meat Ready to Eat: Earn extra cooked drops with Butcher
      • Yummy Repairs: Repair an item with Force Feed
      • Hungry Hippos: Wear a full set of armor with Force Feed
      • Stainless Steel: Equip an Iron Pickaxe with Curse of Stagnancy and the highest level of Unbreaking
      • Nether Dull (Upcoming 1.16): Equip a Netherite Sword with Curse of Stagnancy and the highest level of Sharpness
      • Environmental Protection: Earn 1000 experience from Recycler
      • Light as a Feather: Prevent a fully grown crop from being trampled
      • Knockback Reversed: Knockback an enemy mob by blocking
      • Simple Repair: Repair an item from a stick
      • Sticky Bees: Break 8 items into sticks
  • Commands:
    • Added /es command
      • A faster way to find all the commands with aliases
      • Calls other commands of ES
    • Added /eshelp command
      • Lists all available commands from EnchantmentSolution and their usages
      • Can add a specific command to view information specific to a command
      • Requires the enchantmentsolution.command.help permission
    • Added /esfix
      • Fixes enchantments on items for a particular person
      • Can use on self or others (requires enchantmentsolution.command.fix.others permission)
      • Requires enchantmentsolution.command.fix permission
    • Added /esrpg
      • Displays a GUI for a player's ESRPG statistics
      • Requires the enchantmentsolution.command.rpg permission (should only be given when ESRPG is enabled)
    • Added /rpgstats
      • View a player's ESRPG stats
      • Requires the enchantmentsolution.command.rpgstats permission and the enchantmentsolution.command.rpgstats.others permission to view other players' stats
    • Added /rpgedit
      • Edit a player's ESRPG data
      • Requires the enchantmentsolution.command.rpgedit permission
    • Added /rpgtop
      • View the players with the highest ESRPG levels
      • Uses pagination (/rpgtop [page])
      • Requires the enchantmentsolution.command.rpgtop permission
  • Configurations:
    • Added "use_particles" to config.yml
      • Setting to true will set block breaking enchantments to display block breaking particles
      • May cause lag with high levels of Height++/Width++
    • Added "play_sounds" to config.yml
      • Setting to true will set block breaking enchantments to play block breaking sounds
    • Added "gametypes" to config.yml
      • Specifies additional functional "gametypes" for Enchantment Solution
      • More information found in "Gametypes" section of changelog
  • Enchantments:
    • Added 8 new enchantments
      • Butcher: (Swords Enchantment) Earn additional meat from killing mobs (Conflicts with Looting and Husbandry)
      • Curse of Stagnancy: (Everything Enchantment) Enchantments can no longer be added or modified on this item except removing them through the Grindstone (Conflicts with Curse of Contagion)
      • Force Feed: (Everything Enchantment) (Originally from Enchantment Solution Additions) Equipped items will repair themselves using the hunger bar (Conflicts with Mending and Sticky Hold)
      • Husbandry: (Swords Enchantment) Gives chance to spawn a baby animal when killing animals (Conflicts with Looting and Butcher)
      • Light Weight: (Boots Enchantment) Prevents trampling crops (Conflicts with Feather Falling)
      • Pushback: (Shield Enchantment) When blocking, knocks back melee-using damaging mobs
      • Recycler: (Swords and Axes Enchantment) Common loot drops will turn into experience (Conflicts with Exp. Share)
      • Sticky Hold: (Everything Enchantment) When the item breaks, it will turn into a stick which can be repaired back into the item (Conflicts with Mending and Force Feed)
  • Events:
    • Added AddDropsEvent
      • Extends DropEvent from ES
      • Simple event
    • Added ButcherEvent
      • Extends AddDropsEvent
      • Simple event
    • Added ESEntitySpawnEvent
      • Extends ESEntityEvent
      • Adds the spawner player and the spawn location
    • Added ESItemBreakEvent
      • Extends ESPlayerEvent
      • Adds the itemstack being broken
    • Added ForceFeedEvent
      • Extends ItemRepairEvent from ES
      • Adds how much exhaustion will be added to the player from the event
    • Added HusbandryEvent
      • Extends ESEntitySpawnEvent
      • Adds the percentage chance of spawning the entity
    • Added ItemRepairEvent
      • Extends ESPlayerEvent
      • Adds the item to be repaired and the amount of damage to repair
    • Added LightWeightEvent
      • Extends ESBlockEvent
      • Adds the player trampling the block
    • Added ModifyVectorEvent
      • Extends ModifyActionEvent
      • Adds two vectors, the original vector and a newVector, as well as the entity being pushed back
    • Added OverrideDropsEvent
      • Extends DropEvent from ES
      • Adds the original drops and whether to override the original drops or add to original drops
    • Added ProjectileSpawnEvent
      • Extends InteractEvent
      • Adds method willCancel, which gets extended in other events to whether the event from its arguments should be cancelled
    • Added PushbackEvent
      • Extends ModifyVectorEvent
      • Simple event
    • Added RecyclerEvent
      • Extends ExperienceEvent from ES
      • Simple event
    • Added StickyHoldBreakItemEvent
      • Extends ESItemBreakEvent
      • Simple event
  • Gametypes:
    • Hard Mode:
      • To be implemented further in a future update
      • Will increase health of random mobs by a percentage based on local difficulty
    • Minigame Mode:
      • Extra custom enchanting table GUIs for faster usage on Minigame servers
      • None of the GUIs require Lapis Lazuli to work
      • Option to allow anviling by using the player inventory rather than a normal anvil
      • Anvil cost and enchanting cost can be specified depending on configurations
      • Three different types of GUIs:
        • Fast GUI
          • Has an item for each kind of unique enchantable type
          • Will generate items based on those enchantable types
          • All enchantments will show up on a book placed in player's inventory
          • Generated based on configuration values (number of books, level to get, etc.)
        • Mondays GUI
          • Based loosely upon the Minecraft Mondays enchanting GUI
          • Certain enchantments can be bought for fixed prices
          • Enchantments will be bought at level 1 always
          • Option for random enchantment
        • Custom GUI
          • Various sizes (in multiples of 7 or 9) can be chosen from
          • Items and how they are used defined by configuration values
          • Buying a certain item may increase the cost of getting the next one
          • Possible of random or multiple random enchantments being generated on an item
    • RPG Mode:
      • A gamemode where a player has to use enchantments to level up and earn the ability to receive better enchantments
      • Configurable experience per level, unlock points per level, experience that using each enchantment gains the player, the unlock points cost of enchantments, and which enchantments are available by default
      • Receive sound cues and Hotbar/Boss Bar cues for leveling up and gaining experience
      • Unlock better enchantments using /esrpg
      • All data for ESRPG stored on disabling plugin in data.yml
      • API:
        • Added methods to set specific ESRPG features from the ApiEnchantmentWrapper constructor
        • pointsLevelOne, pointsIncrease, freeLevel, experience, and free are all modifiable from the API
  • Better Items Support:
    • Removed Disabled Items
    • Added in MMOItems support
      • Enchantments can now be added to items based on MMOItems types or type sets
      • To use, add "mmoitems:<'type' or 'typeset'>.<type or type set>" to an item's enchantment_item_types and anvil_item_types
    • Enchantment Item Types and Anvil Item Types:
      • Enchantments can now be modified to go on a custom set of items
        • Note that this may cause issues with certain enchantments; please make a bug report on github for any issues that arise
    • Extra Enchantables:
      • Any item that is not enchantable in vanilla Minecraft will need to be added into "extra_enchantables" in enchantments.yml before they can be placed in the custom enchanting table
      • Adding vanilla items to the enchantment_item_types or anvil_item_types is as easy as "minecraft:<material>"

Changes:
  • API:
    • Changed getItemTypes() to getEnchantMaterials() and getAnvilMaterials()
      • Each of these returns a list of ItemData, which includes a MatData and extra methods for if the specific item comes from MMOItems
  • Commands:
    • Each command can be called using their normal method or through general '/es <command>' command
    • May display usage information when incorrect usage is displayed (when "print_usage" set to true in config.yml)
  • Configurations:
    • "treasure" values removed from all "loots" areas
  • Database:
    • Changed the name of the database file to backups.db
    • Changed the way backups are made, which now encodes the full configuration file instead of splitting them into field, value, and type arrays
      • This should allow for faster reloading and backing up of files
  • Data Files:
    • extras/data.yml will now create a backup every time the server is reloaded (not when plugin is reloaded)
  • Enchantments:
    • Curse of Contagion will no longer infect items when Curse of Stagnancy is on that item
    • Gung Ho now only affects melee damage attacks
    • Hollow Point's damage reduced from 1.5x to 1.25x
    • Removed Flower Gift's usage of NMS
    • Transmutation now accurately gets between the min and max amount of loot (instead of max - 1)
      • Salmon, Cod, Kelp, Scute, Ink Sac, Prismarine Shards, Prismarine Crystals, Coral, Coral Fans, and Sea Pickles can now be found in stacks of 1 higher than originally
  • Events:
    • DropEvent modified
      • Removed the override and originalDrops arguments
      • Changed newDrops to drops
    • Changed the BeheadingEvent to extend OverrideDropsEvent instead of DropEvent
    • Moved ExperienceEvent into two different events: ExperienceEvent and ExpShareEvent
      • ExperienceEvent is for any event that modifies the experience of an event
      • ExpShareEvent is specific for ExpShare and extends ExperienceEvent
      • ExpShareType is moved to ExpShareEvent, but ExperienceEvent is otherwise the same
    • DetonateCreeperEvent and DetonatorExplosionEvent now includes the detonating entity (detonator)
    • Added block to HeightWidthEvent as the original block broken
    • SplatterFestEvent and OverkillEvent now extends ProjectileSpawnEvent
    • TransmutationEvent now extends OverrideDropsEvent
  • Enchantment Locations:
    • Replaced the treasure enchantment system with an EnchantmentLocation system
      • Places where enchantments can spawn:
        • TABLE (Enchanting Table)
        • NON_BOOK (Will generate on tools, weapons, armor, etc.)
          • Previously, enchantments only spawning on books were "Book" enchantments (Irene's Lasso, Frequent Flyer, Icarus, etc.)
        • CHEST_LOOT (Will generate in normal chest loot)
        • MOB_LOOT (Will generate in normal mob loot)
        • FISHING_LOOT (Will generate from fishing)
        • VILLAGER_TRADES (Will generate in villager trades)
        • PIGLIN_TRADES 1.16+ (Will generate when Soul Speed is the original enchantment (Piglin chest loot and piglin bartering))
        • NONE (For use in commands; all enchantments)
      • These locations can be modified via the enchants.yml file for each enchantment
  • Compatibility:
    • Update McMMO Overhaul compatibility to 2.1.128
    • Update Jobs compatibility to 4.15.11
    • Update AuctionHouse compatibility to 2.0.8
  • Misc:
    • The Anvil will only enchant one item at a time if multiple exist in the first position
    • Added Bee Nest and Beehive to the Silk Touch drops of Telepathy
    • Modified the CustomEnchantmentWrapper to no longer need a max level value
      • CustomEnchantmentWrapper will now programmatically modify things such as max level and conflicting enchantments for custom enchantments based on default values or as defined in enchantments.yml
      • This does not affect vanilla enchantments (specifically higher level enchantments)

Fixes:
Fix for removing a helmet with Unrest not removing the Night Vision potion effect
Fix for conflicting enchantments not working properly with protection enchantments and "protection_conflicts" set to true
Fix for enums not properly updating from /esconfig menu
Fix for Hollow Point throwing NullPointerExceptions on non-fully armored opponents
Fix for bad EnchantmentLevel always saying its from the fishing config
Fix for grindstone throwing NullPointerException in /esgrindstone
Fix for McMMO not correctly removing enchantments with only 1 level
Fix for Lapis Lazuli being lost in EnchantmentTable when adding stacks less than the max stack size
Fix for Magma Walker not preventing magma damage
Fix for tamed animals not being properly tamed (most noticeable in Skeleton Horses)
Fix for bug where clicking items in player inventory while renaming will remove the player from the rename screen
Fix for Campfire being considered a pickaxe block to break instead of axe
Fix for players dying or leaving while in a custom inventory not working properly upon respawn​
----------, Jun 2, 2020

Fixes:
  • Fix for renaming anvil GUI allowing to rename items that shouldn't be renamed
  • Fix for Curse enchantments breaking Enchanting Table GUI
  • Fix for SnapshotInventory not taking into consideration non-ES custom enchantments and not returning similar enchantments correctly
  • Fix for non-ES lore causing NullPointerExceptions or IndexOutOfBoundsExceptions from looking for enchantments
----------, May 5, 2020

Fixes:
  • Fix for /esanvil not working in creative mode
  • Fix for long startup times
  • Fix for Soulbound not taking priority with Worldguard and other plugins
----------, Apr 22, 2020

Changes:
  • Gung Ho and Life will now update the player's health when equipped to the current health (or max health, if current health is higher than max health)

Fixes:
  • Fix for Life causing black hearts on login
  • Fix for all enchanted items constantly updating with SnapshotInventory
  • Fix for Coffee Break activating in Nether and End worlds
  • Fix for language files not updating on reload
    • Files in the /language folder will always be set to defaults. Please do not use these files as language files, and instead copy them somewhere else.
----------, Apr 18, 2020

Changes:
  • Added Water Mobs to Irene's Lasso list
    • Squids, Salmon, Cod, Pufferfish, Tropical Fish, and Dolphins may now be placed in items
  • Modified configuration loading and enchantment registration to onLoad rather than onEnable
    • This will register the enchantments before most other plugins load, increasing compatibility

Fixes:
  • Fix for Wand removing items that it shouldn't when placing blocks
  • Fix for Carpet Bombs rewarding cancelled explosions towards completion of the advancement
  • Fix for other plugins returning NullPointerExceptions from Magma/Void Walker events
----------, Apr 7, 2020

Changes:
  • Set enchantment information during the compatibility section so all enchantment information gets into enchantments.yml on first load
  • Add default permissions into the plugin for each enchantment so permissions plugins can tab-complete them
  • Add warning for when EnchantmentSolution cannot add custom enchantments using MobLoot, FishingLoot, or ChestLoot
  • Added Epic and Legendary weights to the Weight enum for /esconfig
Fixes:
  • Fix for ChestLoot, MobLoot, and FishingLoot sometimes having no custom enchantments on them.
  • Fix for bug when trying to save items with only Curse enchantments
  • Fix for Irene's Lasso removing animals when spawning them fails
  • Fix for EntityPickupItemEvent getting set to Air and causing NullPointerExceptions
----------, Apr 3, 2020

Fixes:
  • Fix for bad export causing issues with startup
----------, Mar 22, 2020

Changes:
  • Update zh_cn
Fixes:
  • Fix for /esanvil and /esgrindstone not opening up an inventory but causing issues in the next inventory opened
  • Fix for level 0 enchantments on loot
----------, Mar 22, 2020

Fixes:
  • Fix to FrequentFlyer being activated when it shouldn't
  • Fix for flying when logging into the server in water
  • Fix for Telepathy not working with Hoppers (and possibly some other small containers)
  • Fix for more NullPointerExceptions when generating mob loot
----------, Mar 17, 2020

It's Over 9000!
Thank you all for continuing to support Enchantment Solution up to over 9000 unique downloads. There's still plenty to add and plenty to fix, so I hope you all continue to support the plugin for as long as I do. :D

------------------------------------------------------------------------------------------------
​
Additions:
  • Added the /configlore command
    • Using /configlore enchant <enchant> <level> will allow you to see what value should be put in the lore for Enchantment Solution to work with other plugins
Fixes:
  • Fix for protection_conflicts in the config not always working properly
  • Fix for permissions not being properly set in plugin.yml
  • Fix for NullPointerExceptions occurring with loot in minecarts
  • Fix for Pillage being used on a Player throwing an exception
  • Fix for WarpEvent otherLocations sometimes containing duplicate locations
  • Fix for Telepathy not correctly working on double chests
----------, Mar 12, 2020

Additions:
  • Commands:
    • Added the /esbook command (Thanks MidnightSugar for the idea)
      • Allows players to get one or more books with enchantments on them
      • Usage: /esbook <enchant_name//RandomEnchant//RandomMultiEnchant> <int//true/false//true/false> <player> <int>
        • The second variable will either be the specified enchantment's level or whether treasure enchantments should be included in finding random enchantments based on whether its a specified enchantment or random
        • The last int is the amount of books (random books will not randomize enchantments on this amount)
        • Player must be an online player or @p for the current player
    • Added the /esanvil command
      • Opens the custom anvil GUI
    • Added the /esgrindstone command
      • Opens the custom grindstone GUI
  • Permissions:
    • enchantmentsolution.command.enchant.others
      • Allows you to use /enchant on others' items
    • enchantmentsolution.command.enchantunsafe.others
      • Allows you to use /enchantunsafe on others' items
    • enchantmentsolution.command.enchantremove.others
      • Allows you to use /removeenchant on others' items
    • enchantmentsolution.command.book
      • Allows you to use /esbook
    • enchantmentsolution.command.book.others
      • Allows you to use /esbook to give other players books
    • enchantmentsolution.command.anvil
      • Allows you to use /esanvil
    • enchantmentsolution.command.grindstone
      • Allows you to use /esgrindstone
  • Configuration:
    • Added the enchanting_table.reset_on_reload value
      • Setting this to false will allow enchantments to stay persistent in the enchanting table on /esreload and server reloads

Changes:
  • Commands:
    • /enchant, /removeenchant, and /enchantunsafe now has two extra optional variables
      • <player> - the player. Player must be an online player or @p for the current player
      • <int> - the slot to enchant. Defaults to the main hand of the targeted player
    • /esreset will now clear the enchanting table enchantments
  • Language:
    • Language files have been updated for the new features
  • Startup:
    • Compatibilities and SaveUtils data will load after the server has started completely
  • Advancements:
    • Changed No Panic advancement completing even if Telepathy event is cancelled

Fixes:
  • Fix for bug where Jobs wasn't working with ES enchantments (See Changes/Startup)
  • Fix for bug where Fortune was giving players wheat seeds for all crops
  • Fix for Grass Path not being broken with Height++/Width++
----------, Mar 6, 2020

Changes:
  • Increased performance for certain advancements
  • Increased performance for Curse of Contagion and Curse of Exhaustion

Fixes:
  • Fix for mob spawning and fishing not getting set correctly
  • Fix for issues with the mcMMO salvage and repair skills
  • Fix for materials in enchantments.yml being case sensitive
  • Fix for rare exception when using the Grindstone
----------, Feb 28, 2020

NOTE:

Just because this update states that 1.16 support is starting, that DOES NOT MEAN this version will fully support 1.16 when it comes out. Because support for a new update can take a while, I decided to start on a couple of the pieces to prepare. Also, there is currently no spigot jar for 1.16, so full support will not and cannot occur until 1.16 actually comes out.

With this update, I think most of the major bugs for 2.2.x are fixed, and so I get to start working on 2.3 tomorrow. The working title of the update is the "More Ways to Play" update. That's all that will be said at the moment.

Anyways, changelog!

Changes:
  • Begin adding support for 1.16

Fixes:
  • Hoes did not have any enchantability value (would always be set to 1)
  • Fix for enabling permissions not looking through the "advanced" options like it should
  • Fix for IndexOutOfBoundsExceptions still happening from villager trades
  • Fix for NullPointerException still being thrown from AuctionHouseUtils on occasion
  • Fix for Hollow Point causing 0 damage to Endermen and Withers
----------, Feb 15, 2020

Changes:
  • Modified enchantments to add a maxLevel variable to the wrappers
    • Will only be the level 30 version of level
    • Added additional constructor for ApiEnchantmentWrapper
    • Helps with plugins that don't like unsafe enchantments, such as mcMMO
  • Added AuctionHouse compatibility message on load
  • Updated the mcMMO Repair check (Iron Block)
  • Added the mcMMO Salvage check (Gold Block)
Fixes:
  • Fix for Frost Walker and Void Walker being Max Level One and not Treasure
  • Fix for Wand not being Treasure
  • Fix for damage to items only occurring to undamageable items
  • Fix for Jobs and VeinMiner compatibility not being activated ever
  • Fix for books being randomly assigned an enchantment in the custom enchanting table GUI
  • Fix for the vanilla Grindstone not working properly
  • Fix for Smeltery not using Jobs
----------, Feb 5, 2020

CRITICAL FIX: If you have Enchantment Solution 2.2.0-2.2.3, update to this version or prevent the use of Wand ASAP. There is a very bad glitch with that enchantment that may break server economies. This release fixes that issue.

Fixes:
  • Fix for glitch with Wand
  • Fix for 1.13 not loading correctly because of 1.14 enchantments
  • Fix for enchanting items not triggering the enchant_item criterion for advancements
  • Fix for items from other plugins breaking the Snapshot Inventory searches
  • Fix for IndexOutOfBoundsException while creating villager trades
----------, Jan 27, 2020

Additions:
  • Added ESPlayerToggleFlightEvent, which extends the PlayerToggleFlightEvent

Changes:
  • Added explicit 1.15.2 support
  • Added "Other" to item types (all items not made with leather, wood, stone, chainmail, iron, gold, or diamond)
  • Changed FrequentFlyerEvent to extend ESPlayerToggleFlightEvent instead of ESPlayerEvent

Fixes:
  • Fix for clicking on anvil causing a NullPointerException in certain circumstances
  • Fix for loot chests and minecarts throwing exceptions and not containing custom enchantments
  • Fix for custom item breaks not throwing the PlayerItemDamageEvent
  • Fix for EnchantabilityCalc not using the correct resource enchantability values
  • Fix for EnchantabilityCalc not using lapis modifiers correctly
  • Fix for equipping items sometimes throwing a NullPointerException
  • Possible fix for Frequent Flyer sometimes not working on login
  • Fix for McMMO fishing throwing a NullPointerException
  • Fix for Flower Gift throwing a "can't drop a null item" exception
----------, Jan 25, 2020

Fixes:
  • Fix for advanced_options.use not correctly updating to the advanced options
  • Fix for issue on startup with config.yml file
----------, Jan 21, 2020

Changes:
  • Updated AuctionHouse compatibility to 2.0.1

Fixes:
  • Fix for an item with no item lore causing issues with adding enchantments
  • Fix for a bad craftbukkit class being used instead of a Java one
  • Fix for some villager enchantments causing an IndexOutOfBoundsException
  • Fix for string index out of bounds when trying to find an enchantment through an item's lore
  • Fix for a failed item in SnapshotInventory breaking the runnable forever
----------, Jan 19, 2020

Additions:
  • Added 4 new enchantments:
    • Curse of Contagion: Spreads curses to items in your inventory.
    • Detonator: Fires explosive projectiles. When one hits a creeper, it'll lower the detonation time.
    • Hollow Point: Projectiles hitting armored targets will do more damage. Does damage to Endermen and shielded Wither.
    • Overkill: Shoots rapid fire arrows on left clicking air.
  • Added ESCalculator:
    • View the enchantability values for enchantments or check values for your own modifications
    • Access using the /escalc command
    • Requires the 'enchantmentsolution.command.calculator' permission to use
  • Added custom events
    • Can now modify or cancel the activation of certain enchantments using events
    • See below for more details
  • Modified advancements
    • Added 6 new advancements for the new enchantments
    • Advancements are now displayed in five advancement tabs rather than one
    • Modified the parents and children of advancements
    • Added advancements.yml
      • All advancement configurations except language info is stored in this file
  • Added new configuration options:
    • Added enchantment_check for finding custom enchantments lost in other plugins and drop_items_naturally for dropping items from blocks like they do in Minecraft
    • Added wiki.on_login, wiki.on_timer, wiki.timer_seconds, and wiki.url for displaying outside information about Enchantment Solution

Changes:
  • Significantly reduced the filesize of Enchantment Solution (by almost 1/3)
  • Modified the configuration files:
    • Removed enchantments_advanced.yml (caused too much confusion)
    • Removed enchanting_table.enchanting_type from config.yml
    • Added enchanting_table.custom_gui, grindstone.custom_gui, and anvil.custom_gui so server owners may pick and choose which ones they want
    • Added enchanting_table.level_fifty to use the level 50 system (having enchanting_table.level_fifty OR enchanting_table.custom_gui set to true will show the custom GUI)
    • Removed enchanting_table.reset_enchantments_advanced
    • Moved enchanting_table.use_enchanted_books to use_enchanted_books
    • Moved starter from config.yml to language.yml
    • Moved enchanting_table.decay in config.yml to advanced_options.decay in enchantments.yml
    • Added wiki.message, misc.beheading_skull, misc.null_advancement_name, and misc.null_advancement_description to language.yml
    • Added escalc options to language.yml
  • Updated Soul Reaper
    • Changed from highest level 1 to highest level 4 with level 50 and highest level 2 in level 30.
    • Changed the 50% chance to 1 item per level of Soul Reaper guaranteed
  • Changes to the way enchantment information is stored
    • Will now store the full name hidden in the lore for easily changing languages
  • Add way for Enchantment Solution to find Bukkit API version so small changes in between versions will no longer cause compatibility issues
  • Remove deactivation on not finding a valid API version
    • Will now only remove enchantments introduced in 1.14+ and 1.14+ features
  • Play sound for Grindstone use
  • Added the need for an ApiEnchantmentWrapper in an ApiEnchantment's constructor (first value)
  • Enchantments added by other plugins will now show their own plugin name when those enchantments get activated
  • Chests will now try to limit the enchantments possible to the player opening them's permissions
  • Moved Iron Defense listening to the very end
  • Updated the fishing config

Fixes:
  • Fix for Impaling having the wrong level 30 enchantability
  • Set the max level for Loyalty back to 5 (broken in ES 1.1)
  • Increase the enchantability modifier of Quick Charge from 20 to 25
  • Fix for enchantability values on Riptide
  • Fix for issues with starting plugin
----------, Jan 9, 2020

Changes:
  • Added support for 1.15.1
----------, Dec 26, 2019

Changes:
  • Added support for Minecraft 1.15
Fixes:
  • Fix for fishing enchantments and Telepathy not working without JobsReborn
  • Fix for ChestLoot always being books and not changing with use_enchanted_books config option
  • Fix for missing advancement causing issues with the enchanting table
----------, Dec 11, 2019

Additions:
  • Added "anvil.damage" to config.yml
    • Setting to false will prevent anvils from breaking
  • Added "lore_on_top" to config.yml
    • Setting to false will remove the reordering of custom enchantment names to the top of the lore
Changes:
  • Added support for HideEnchantments flag
Fixes:
  • Fix for console spam from Unrest
  • Fix for enchantments never refreshing in anvil
----------, Nov 20, 2019

Changes:
  • Added compatibility with AuctionHouse

Fixes:
  • Removed extra call to icarus function
  • Fix for removing quick strike from a player when player logged off not removing their attribute
  • Fix for Unrest updating all the time and causing visual glitches
  • Fix for error getting from configuration files on first load
----------, Nov 20, 2019

Changes:
  • Updated JobsReborn support to 4.13.1
    • Includes support for breaking blocks, placing blocks, and fishing

Fixes:
  • Fix for issue with Irene's Lasso and inventory animals
  • Fix for Fried and Telepathy not working with JobsReborn
  • Fix for NullPointerException when dealing with renaming anvil in 1.14
  • Fix for null messages in language.yml arrays causing issues
  • Fix for items breaking when Unbreakable tag is on
  • Fix for Grindstone items losing nbt data when they shouldn't
  • Fix for logging out and logging back in causing enchantments to be the same forever


NB: This release should fix most of the bugs that have been reported in the past month. This should have been released a month ago, but due to bad timing on my part, it has unfortunately been longer than I anticipated for a release. Bugs that have been reported but not fixed are below. If you have issues with them, please send the result of your /esdebug command (the debug.yml file) as well as any console issues or videos/images of the bug you discover.

  • In the Anvil you cant merge 2 enchanted books to improve their enchantment level
  • CMI not saving enchantment NBT data on reload
  • Items dropped/picked up changing lores in some cases
  • Potential conflicts with 1.14.4 Paper Spigot
  • Lagging may cause the anvil/enchantment table to bug. (Use /esreset to correct the problem, but please report the issue.)
  • Armor enchantments eventually no longer work
  • Telepathy cancels out fortune
  • Fortune with Smeltery acting incorrectly
  • Merging enchantment levels using grindstone.take_enchantments
  • Curses incorrectly showing in enchantment tables
  • Killing enemies with projectile fired from offhand causing weird bugs

Once these bugs and any other critical ones are taken care of, I will be moving on to finalizing version 2.2.
----------, Oct 13, 2019

Fixes:
  • Fix for lapis modifier checking the wrong file, lowering enchantment levels
----------, Sep 1, 2019

Additions:
  • Added Chinese (Simplified) localization (thanks qsefthuopq)

Changes:
  • Updated German locale
  • Add additional locale strings

Fixes:
  • Fix for issues with attribute enchantments not removing their attributes in certain circumstances
  • Fix for being able to use vanilla anvil even if no changes being made on an item
  • Fix for exceptions in listeners causing other listeners to not run
  • Fix for reload not working with the language file
  • Fix for use_lapis_levels not working as intended
  • Fix for null pointer exception when using Irene's Lasso and mcMMO
  • Fix for potential bad characters in English and German translations
  • Fix for not being able to use the anvil GUI in esconfig without levels
  • Fix for drowneds throwing tridents causing null pointer exceptions
----------, Aug 24, 2019

Changes:
  • Added the enchantmentsolution.demigod-books permission
    • Allows players to add higher level enchantments from books unto items

Fixes:
  • Fix for some abilities not properly functioning after logging out of the server on first load
  • Fix for levels, sounds, and advancements not functioning in the vanilla enchanting table
  • Fix for ConcurrentModificationException in certain cases
  • Fix for certain lores causing an IndexOutOfBoundsException
  • Fix for free renaming at level 0 in the custom anvil GUI
----------, Aug 11, 2019

Fixes:
  • Fix for non-number mcMMO versions throwing issues in the console. It should now just give the default warning.
  • Fix for any inventory events throwing an exception
----------, Jul 31, 2019

Fixes:
  • Fix for a resource leak fix causing a null pointer exception on opening chests.
----------, Jul 30, 2019

Fixes:
  • Fix for occasional null pointer exceptions
  • Fix for anvil being unable to add enchantments from books
----------, Jul 30, 2019

PLEASE NOTE:
This update comes with a large rewrite of the codebase to prevent memory leaks and to shrink the size as much as possible. This means that there may be bugs in this particular version that I didn't find when testing.
Please report whatever bugs you find immediately.

Changes:
  • Added mcMMO Overhaul integration
    • Removed ESWrapper
  • Gave Magma Walker and Void Walker break-block particle effects
  • Inventories are no longer recreated on every click
  • Added VeinMiner integration (thanks BlitzenXmas)
    • Width++ and Height++ will no longer try to break blocks while vein mining
  • Changed the description of Gung-Ho slightly
  • Modified the headers of enchantments.yml and enchantments_advanced.yml to tell server owners if they're modifying the wrong file

Fixes:
  • Fix for repairing with materials (diamonds, iron, etc.) in the vanilla anvil taking all the materials no matter what
  • Fix for grindstone take books always giving a normal book
  • Fixed preventable memory leaks
----------, Jul 29, 2019

Additions:
  • Added permission "enchantmentsolution.demigod-anvil"
    • Allows players to repair higher than they are allowed to if they already have the higher level on the first item
Changes:
  • Added 1.14.4 support
  • Advancements will only reload when there are changes to them
    • Fixes a bug with custom recipes not saving after reload
Fixes:
  • Fix for enchantments being able to be added to disabled items in some cases
----------, Jul 21, 2019

Note that I will not be around for the next week for vacation. Please be patient with receiving fixes for bugs you find in the next two weeks. Thank you.

Fixes:
  • Fix for not being able to repair 1.14 items
----------, Jun 29, 2019

Additions:
  • Added 4 new enchantments
    • Armored: Elytra enchantment. Max level 3. Adds armor points to Elytra when wearing them.
    • Curse of Exhaustion. Everything enchantment. Max level 1 (Curse). Increases exhaustion value of Minecraft actions.
    • Quick Strike. Swords and Axes enchantment. Max level 3 (5 at level 50). Increases the attack speed of the item. Conflicts with Sharpness, Smite, Bane of Arthropods, Fire Aspect, and Shock Aspect.
    • Toughness. Armor enchantment. Max level 4. Increases armor toughness when wearing the item.
  • Added 65 advancements
    • Act as a tutorial for the enchantments.
    • Every enchantment has at least 1 advancement.
    • Disabled by default; set "advancements.enchantments/enchantment_solution.enable" to true in config.yml to enable.
    • Titles and descriptions may be modified in language.yml
  • Vanilla Enchantment Table, Anvil, and Grindstone support
    • Still may be buggy - please mention issues in discussion or on github!
  • Added /esdebug command
    • Generates debug.yml in the EnchantmentSolution folder to send if any issues are present
  • Added enchanting_table.reset_enchantments_advanced in config.yml
    • Will reload enchantments_advanced.yml with the latest EnchantmentSolution values and level 30/50 values
  • Added villager_trades in config.yml
    • Generates custom enchantments in villager trades
    • Similar system to vanilla, but makes enchantments in the middle levels more likely to appear
  • Added 1.14.3 support
Changes:
  • Changed a lot of config.yml values (all will be migrated from previous versions)
    • Combined "use_advanced_file" and "level_50_enchants" to "enchantment_table.enchanting_type"
      • Options:
        • "vanilla_30" - Uses Vanilla GUIs with level 30 enchantments and minimal customization (enchantments.yml)
        • "vanilla_30_custom" - Uses Vanilla GUIs with level 30 enchantments and more customization (enchantments_advanced.yml)
        • "enhanced_30" - Uses EnchantmentSolution GUIs with level 30 enchantments and minimal customization (enchantments.yml)
        • "enhanced_30_custom" - Uses EnchantmentSolution GUIs with level 30 enchantments and more customization (enchantments_advanced.yml)
        • "enhanced_50" - Uses EnchantmentSolution GUIs with level 50 enchantments and minimal customization (enchantments.yml)
        • "enhanced_50_custom" - Uses EnchantmentSolution GUIs with level 50 enchantments and more customization (enchantments_advanced.yml)
    • Changed "level_divisor" to "anvil.level_divisor"
    • Changed "lapis_in_table" to "enchanting_table.lapis_in_table"
    • Changed "use_enchanted_books" to "enchanting_table.use_enchanted_books"
    • Changed "enchantability_decay" to "enchantment_table.decay"
    • Changed "max_repair_level" to "anvil.max_repair_level"
    • Changed "default_anvil_use" to "anvil.default_use"
    • Modified "protection_conflicts" to always default to true (changed with 1.14.3)
  • Changed enchantments_advanced.yml to allow for level 30 enchantments to be customized
  • Change to always put EnchantmentSolution enchantments at top of lore
  • Added particle effects for Icarus failing
  • Change to keep as much on the first item in anvil as possible
    • Tries to keep attributes, metadata, lore, and other information on the item
  • Change to not count Irene's Lasso animals as enchantments
  • Changed loot on killing a certain mob with Transmutation
Fixes:
  • Fix for Version Check sending messages to console and not joined players
  • Fix for updating legacy enchantments removing all lore from items
  • Fix for null pointer exceptions with the Curse of Lag enchantment
  • Fix for conflicting enchantments being put on items
  • Fix for campfires still being waterlogged on Moisturize
  • Fix for all Crossbow enchantments defaulting to treasure enchantments
  • Fix for update legacy enchantments trying to update all enchantments continuously
  • Fix for update legacy enchantments causing a null pointer exception when the level of the enchantment was over 10
  • Fix for ESConfig chat messages throwing errors
  • Fix for ESConfig chat messages not saving strings
----------, Jun 26, 2019

Changes:
  • Moved "get_latest_version" to "version.get_latest" in config.yml
  • Added "version.get_experimental" for people wanting bug-fix versions of new releases
    • Note that these versions may be unstable and prone to many changes which may not migrate in the full release. Use these at your own risk, and always make backups!
  • Version Check now runs on reload to find the latest version
  • bStats integration added
----------, Jun 13, 2019

PLEASE READ BEFORE UPDATING YOUR SERVER:
The changes to Life and Gung Ho will have effects on players who have logged out while wearing these enchantments. If a player has too much or too little health after the update, you must reset their health using an NBT editor or a plugin such as this.

Changes:
  • Irene's Lasso now saves cat collar information
  • Changed "All" to "All Normal Items" for Item Display Type
  • Shulker Boxes may now be enchanted with Soulbound

Fixes:
  • Fix for keep inventory events not dropping player heads on kills
  • Fix for Stronghold chests not showing up in config.yml
  • Fix for NoClassDefFound error on shutting down server when changing versions
  • Fix for bug with Life and Gung Ho that would change the amount of health a player has
  • Fix for Irene's Lasso not keeping version-specific traits of animals
  • Fix for Iron Defense exception when arrow causes no damage
  • Fix for Sand Veil's particles not working correctly
  • Fix for Splatter Fest never activating
  • Fix for Void Walker not working on cave and void air
----------, Jun 12, 2019

Changes:
  • Added Cocoa Beans to Gold Digger
  • Updated to 1.14.2
----------, May 28, 2019

Changes:
  • Changed the way hoes are treated in the plugin
    • Now an "enchantable" item - Enchantments will show up in enchantment table, Curse of Vanishing can be applied to hoes
    • Changed Gold Digger, Splatter Fest, and Sand Veil to be added directly to hoes through the enchantment table
  • Changed Gold Digger to be an uncommon enchantment - Update your advanced config if you use it!

Fixes:
  • Fix for extra generated enchantments having the possibility of treasure enchantments and disabled enchantments
  • Fix for items being lost on shutting down plugin if new version has overwritten current one
  • Fix for Elytra not having Unbreaking in enchantment table
    • Frequent Flyer and Icarus must be placed on books first or found via chest loot
----------, May 21, 2019

Changes:
  • Added 1.14.1 support
Fixes:
  • Fix for some enchantments potentially causing issues in 1.14
----------, May 18, 2019

Changes:
  • Added a configuration option "use_enchanted_books" to have all books become enchanted books when enchanting
    • Books and Enchanted Books will seamlessly become one another when option changed
  • Added "Levels Taken" to Enchantment Table to remind people of vanilla functionality
Fixes:
  • Fix for Sand Veil trying to activate on block entities
  • Fix for 1.14 enchantments not generating in mcmmo fishing file.
----------, May 9, 2019

Fixes:
  • Added additional null pointer checks around conflicting enchantments and disabled items
  • Gold Digger should no longer give gold and experience in claimed land
  • Fix for trying to combine multiple of the same attribute to an item through an anvil
  • Fix for wrong message in enchantment table in some circumstances
----------, May 6, 2019

Fixes:
  • Added additional null pointer checks around conflicting enchantments and disabled items
  • Gold Digger should no longer give gold and experience in claimed land
  • Fix for trying to combine multiple of the same attribute to an item through an anvil
  • Fix for wrong message in enchantment table in some circumstances
----------, May 6, 2019

Fixes:
  • Fix for Smeltery not working in 1.13
----------, May 5, 2019

Additions:
  • 1.14 Support
  • Added 21 new enchantments
    • Curse of Lag: Tools and weapons enchantment. Max level 1 (Curse). Laggggggg.
    • Flower Gift: Hoe enchantment. Max level 1. Right clicking flowers gives a chance to drop the flower.
    • Gold Digger: Hoe enchantment. Max level 5 (6 at level 50). Breaking wheat, carrots, potatoes, beetroots, and nether wart with item drops experience and possible gold nuggets.
    • Gung Ho: Chestplate enchantment. Max level 1. Halves health but triples all attack damage.
    • Hard Bounce: Shield enchantment. Max level 3 (5 at level 50). Projectiles hitting shield propelled away from shield at a faster rate and upwards.
    • Height++: Tools enchantment. Max level 2 (3 at level 50). Increases block radius by 1 per level in the up/down direction.
    • Icarus: Elytra enchantment. Max level 3 (5 at level 50). Flying upwards will increase velocity.
    • Irene's Lasso: Carrot on a Stick enchantment. Max level 1. Grab animals and place them elsewhere.
    • Iron Defense: Shield enchantment. Max level 3 (5 at level 50). Shield absorbs percentage of direct damage, damaging itself.
    • Magic Guard: Shield enchantment. Max level 1. Negative potion effects negated while equipped to offhand.
    • Moisturize: Shears enchantment. Max level 1. Add moisture to blocks to waterlog or change certain block types.
    • No Rest: Helmet enchantment. Max level 1. Player is constantly sleeping, so no phantoms spawn.
    • Pillage: Crossbow enchantment. Max level 3 (5 at level 50). Increase drops from killed mobs.
    • Sand Veil: Hoe enchantment. Max level 5 (6 at level 50). Lowers accuracy of entity's attacks when hit.
    • Splatter Fest: Hoe enchantment. Max level 1. Shoots eggs in inventory from hoe on left click.
    • Stone Throw: Crossbow enchantment. Max level 5 (6 at level 50). Does more damage to flying mobs (Bats, Blazes, Ender Dragon, Ghasts, Parrots, Phantoms, Vexes, Wither).
    • Transmutation: Trident enchantment. Max level 1. Turns mob loot into sea-based loot.
    • Unrest: Helmet enchantment. Max level 1. Gives night vision to the wearer while making sleep useless for despawning phantoms.
    • Void Walker: Boots enchantment. Max level 2. Walk across air. Shift to descend. Jump to ascend.
    • Wand: Carrot on a Stick enchantment. Max level 2 (3 at level 50). Place blocks from your offhand in a radius.
    • Width++: Tools enchantment. Max level 2 (3 at level 50). Increases block radius by 1 per level in the left/right direction.
  • Localization system created
    • Current localizations are American English and German
    • Change defaults' language using "language" in config.yml
    • Use "reset_language" in config.yml to set the language file to use all defaults for the current language
  • Added API to allow for other plugins to add custom enchantments
    • Tutorial in YouTube video, and example on github [links].
    • Add custom enchantments to the enchantment table.
    • Plugins that use the API must have EnchantmentSolution as a dependency.
  • Added the Grindstone
    • Can be used in 1.13 version by setting "grindstone.use_legacy" to true and selecting the grindstone in the anvil GUI
    • Works just like vanilla Grindstone, complete with dropping experience
    • Added optional configuration options
      • Take enchantments from items and put them onto books using "grindstone.take_enchantments" set to true
      • When using take enchantments, "grindstone.destroy_take_item" will destroy the item used to take enchantments
      • When using take enchantments, "grindstone.set_repair_cost" will set the book's repair cost to the item used's repair cost

Changes:
  • Overhauled the enchantinfo command
    • Now shows paginated results based on display name of enchantments
    • Clicking on name in pagination displays information on the enchantment, like '/enchantinfo <enchant_name>'
    • Modify information using the language.yml file under "enchantment"
  • Links to update plugin more user friendly.
  • Added ability to modify treasure enchantments occuring in mob, fishing, and chest loot.
  • Added conflicting_enchantments and disabled_items to enchantments_advanced.yml
  • Moved display name modification to language.yml
  • Added update_legacy_enchantments to config.yml to update enchantments between EnchantmentSolution and EnchantmentSolutionLegacy
  • Made Curse of Vanishing and Soulbound conflicting enchantments
  • Modify the system to find new versions of EnchantmentSolution
  • Update and fix for default mcmmo fishing loot being off
  • Change to Magma Walker's radius being more rounded
  • Changed Soul Reaper activation to use sounds and particles rather than messages
  • Modified the existing weight values to match 1.14 and add additional levels for server owners
    • Common weight integer changed from 10 to 300
    • Uncommon weight integer changed from 5 to 100
    • Rare weight integer changed from 2 to 30
    • Very Rare weight integer changed from 1 to 10
    • Added Epic weight with integer of 3
    • Added Legendary weight with integer of 1
  • Removed max_enchantability as 1.14 no longer uses these values
  • Changed the way EnchantmentSolution looks at Shulker Boxes - boxes placed before updating will not have their inventory name saved if taken with Telepathy
  • Removed references to external classes that Bukkit/Spigot no longer supports
  • Added "protection_conflicts", allowing the protection changes to be default in versions less than 1.14

Fixes:
  • Fix for some items not working with Telepathy, Smeltery, Silk Touch, etc.
  • Fix for special characters not working correctly in configuration files
  • Fix for issues with enabling the plugin causing issues with disabling the plugin
  • Fix for Life modifying from the default value rather than the current value of health
  • Fix for mcMMO anvil removing custom enchantments but not updating the lore
  • Fix for attributes causing issues with the anvil
----------, May 5, 2019

1.14 is finally in pre-release territory, which means 2.0.0 is almost here! As such, unless any critical bugs are reported, bugs and feature requests will be postponed until after 2.0.0's release. There will be a lot in this update, and bug reports will be helpful for the first while after its release.

Now that that is said, the fixes in this version:

Changes:
  • Soulbound given highest priority and keepInventory check for compatibility with world guard

Fixes:
  • Fix for renaming items causing inconsistent behavior
  • Fix for lore duplication when enchanting items
  • Fix for lore deletion when anviling items
----------, Apr 11, 2019

Changes:
  • Anvil will no longer break when using it in creative mode
  • Language config keys that take string arrays may also take strings
  • Books being placed into an anvil inventory without enchantments will now put the full stack of books in

Fixes:
  • Fix for anvil inventory allowing players to take or place items after being destroyed
  • Fix for anvil using levels when combining from creative mode
  • Fix for inventory flashing when using the anvil and enchanting table
  • Fix for missing books when trying to put too many into an enchanting table or anvil
  • Fix for checking whether lore strings are enchantments
  • Fix for gold and iron ore not giving experience when using Telepathy and Smeltery
  • Fix for Telepathy not working with snow layers
  • Fix for anvil changing orientation when breaking
----------, Apr 7, 2019

Changes:
  • Gaining experience with Telepathy will now try to repair Mending items equipped

Fixes:
  • Fix for lore not getting set through Anvil
  • Fix for Leather Armor color not being set through Anvil
  • Fix for Shock Aspect and Warp working when combat disabled or when no damage done
  • Fix for Smeltery working when land claim plugin should cancel event
----------, Mar 21, 2019

Changes:
  • Added JobsReborn support

Fixes:
  • Fix for %repaircost% showing up if repair cost too high
  • Fix for renaming items only visually showing a change in level for a short while
  • Fix for Wither Skeletons dropping skeleton heads
  • Update statistics and advancements when enchanting items in an enchantment table
  • Fix for cooked fish from Fried not updating until dropped when using an auto fishing setup
  • Fix for issues with mcMMO Overhaul and Fishing
  • Fix for anvil permissions not working properly
  • Fix for generating enchantments on mobs not working correctly
  • Fix for Telepathy not working correctly on colored variants and named variants
----------, Mar 5, 2019

Fixes:
  • Fix for issue with loading plugin in Java 9+.
----------, Feb 18, 2019

Additions:
  • Added mcMMO 2.0+ support (requires this plugin ). The legacy version will remain the main mcMMO plugin in ES until it has been 6-12 months since an update has gone out on it.
Changes:
  • Smeltery enchantment will now give experience when mining iron and gold ore.
----------, Feb 11, 2019

Fix for critical error on loading when "max_repair_level" not set.
----------, Feb 6, 2019

Changes:
Updated the Spigot Page! Not a part of the plugin but still important to note.
Allow the max repair level to be changed with "max_repair_level" in config.yml
Min value of 40, max of 1000000
Added ability to increase the minimum tier of mob, fishing, and chest loot
Entities spawned with enchanted gear using commands will no longer have enchantments overriden
Chests and items with inventories broken with Telepathy will try to have their contents added to player's inventory
Added sounds for enchanting items
Change for repair costs being too low in some circumstances
Fixes:
Fix duplication bug when trying to open legacy anvil
Fix for shulker boxes losing information when broken by a tool with Telepathy
Fix for vanilla treasure enchantments not being added to chest, fishing, and mob loot and from being added to basic items when treasure is false
----------, Feb 5, 2019

Changes:
Changed trident enchantments level 30 enchantability to be based on Minecraft source code
Check for new version every 4 hours on the server

Fixes:
Fix for exploit with crops and Telepathy
Fix for exploit with MagmaWalker and created magma
Fix for exploit with taking Life enchantment on and off
Fix for issues with saving config files not working
Fix for issues with lists and null values in config
Fix for Magma Walker start level being too high
Fix for player's items being re-enchanted in some circumstances
----------, Jan 16, 2019

Additions:
Added lapis_in_table to config.yml so that lapis must be in table before enchanting.
Added enchantmentsolution.enable-flight permission so Frequent Flyer will not conflict with other plugins that grant /fly.

Changes:
Detailed permissions in the plugin.yml.

Fixes:
Fix for lapis with custom item meta not counting towards lapis count.
----------, Dec 30, 2018

Changes:
Add default_anvil_use to config.yml to use the normal anvil GUI from the custom GUI.
The /esreload command will now try to load any non-loaded enchantments every time.

Fixes:
Remove debug from fishing.
----------, Dec 27, 2018

Fix for crash when first creating data folder.
----------, Dec 23, 2018

Fixes:
Fix for backups not being saved and not correctly displaying
Fix for being able to save and revert when no changes exist
----------, Dec 22, 2018

Release 1.3.0 continues to add more functionality to the advanced enchantments config as well as adding custom GUIs to modify configuration files in-game. Limit certain enchantments via permissions, increase or decrease the amount of enchantability with the lapis modifiers, and modify or revert configuration files from within the game.
  • Additions:
    • Database:
      • Added a database backup system to store changes to the config files.
      • Database can be used to revert config files to a previous state.
    • Commands:
      • Added the /esconfig command for an in-game look at the config files.
        • Save, revert, and revert file to backup for all config files.
        • Simple GUI for editing the config files. Strings can use chat or anvil GUI to update.
        • GUI also shows a read-me version of config backups.
        • Some values set to enum so only predetermined values can be set.
        • Changed values will not take effect until saved.
      • Added the /esreset command to forcefully remove all players from looking at enchantment table/anvil custom configs.
    • Configs:
      • Added use_lapis_modifier, lapis_modifiers.constant, lapis_modifiers.modifier, multi_enchant_divisor, and use_permissions to the advanced enchantment config.
      • Lapis modifiers increase the modified enchantment level in enchantment tables that gives access to better enchantments.
      • Multi Enchant Divisor gives a chance to extra enchantments appearing on an item, with each additional enchant having a ((modified_enchant_level / multi_enchant_divisor) / 2) chance.
      • Permissions have been added to all enchantments for both enchantment tables and anvils.
      • Player must have each permission that is set to true in the config to get higher levels of enchantments.
      • Will work with loot coming from fishing/chest loot tables if enabled as well.
  • Fixes:
    • Fix for pressing escape button in an anvil menu will break the next menu.
    • Fix for data for Punch and Luck of the Sea enchantments not correctly updating.
    • Fix for some debug messages still sending to console.
    • Fix for fishing enchantments not working with mcMMO.
----------, Dec 22, 2018

Additions:
Config:
Added enchantments_advanced.yml as an additional config file
- Changed use_custom_names to use_advanced file in config.yml, and moved display name changes to the new file
- Added ability to change the weight, max level, start level, and other enchantability info of all enchantments (including default ones)
- Added ability to set default enchantments as disabled/treasure
- Turn off using the start level of enchants (More information in the enchantments_advanced.yml config)
Added use_comments to config.yml to turn on/off comment help in the configs
Added disable_enchant_method to config.yml to handle disabled enchantments (More information in config.yml)
All config files work with the reload command
Added get_latest_version to config.yml to check for latest versions of the EnchantmentSolution plugin

Changes:
Generated enchantments will update on reload command
Modified code to handle new config options
Made code more easily modifiable for future versions

Fixes:
Fix for crash when generating a mob with custom enchanted gear
----------, Dec 7, 2018

Added compatibility to 1.13.2 servers.
----------, Oct 24, 2018

Change log:
  • Fix for issues with the 1.13.1 NMS that made some features unusable.
----------, Oct 9, 2018

Change log:
  • Updated items taking damage to use the new Bukkit Damageable
  • Added a way to modify enchantment display names on items
  • Fix for repair cost showing a higher value than what it takes in some circumstances
  • Fix for renaming items giving the player a named nametag instead
  • Fix for items not being returned to player when using a custom inventory on server reset
  • Fix for Smeltery not working with Unbreaking
  • Fix for Smeltery causing items to never break
----------, Oct 9, 2018

This release fixes quite a few issues with the base plugin; adds additional compatibility with mcMMO; allows chest, mob, and fishing loot to use the new enchantments; and separates the configs further to allow for more modification and reloading certain configs.

Additions:
  • Adds a way to allow chest loot tables to use the new/high level enchantments. Can be disabled via config
  • Adds a way to allow mobs to use the new/high level enchantments. Can be disabled via config
  • Adds a way to allow fishing loot tables to use the new/high level enchantments. Can be disabled via config
  • Adds an additional mcMMO fishing config for adding custom enchantments to the fishing config. Can be modified
  • New reload command to reload the default, fishing, and language configs. Requires "enchantmentsolution.commands.reload" permission
  • Adds a language file to modify anvil, enchantment table, and command language
Fixes:
  • Add compatibility with Spigot 1.13.1
  • Part of enchantment table language did not work on items without a name
  • Split the enchantments from the default config into its own config file. Any changes to enchantments in the default config will need to be changed in the new file
  • Magma walker file moved from /abilities/ to /extras/ folder
  • Loyalty should now say it works on tridents rather than helmets in /enchantinfo
  • Telepathy and Smeltery enchantments now work fully with mcMMO
----------, Aug 27, 2018

Fix for some enchantments not combining correctly in the anvil.
Fix for soulbound items being deleted rather than saved.
----------, Aug 10, 2018

Fix for repair not increasing item durability.
----------, Aug 9, 2018

Resource Information
Author:
----------
Total Downloads: 64,634
First Release: Aug 7, 2018
Last Update: Jun 1, 2024
Category: ---------------
All-Time Rating:
89 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings