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