
eco 6.76.1
Powerful spigot development library that supercharges your plugins
- Rewrote MySQL data handler, bringing massive performance improvements, splitting off server data to be in a separate table (finally)
- Persistent Data Keys are now registered on first use, allowing for eco to dynamically categorize keys as either player or server keys, to put them in the right place (previously, the server was treated as a player, which was a problem in MySQL as the columns were added for all players). Persistent Data Keys can be registered on creation by calling .server() or .player() on them - this is preferred for performance reasons.
- Fixed Persistent Data Keys not having .equals() and .hashCode() methods, causing weird bugs.
- eco will save Persistent Data Keys serialized in data.yml for MySQL users; moving the load to startup.
- Fixed underflow bug with shift-clicking stacked recipes (Thanks Casper!)
- Switched SkullProxy NMS Implementation off to use lazy initializers (Thanks Racci!)
- Fixed internal Profile saveAll method causing bugs
- Updated shadow to 7.1.2
- Added entity arg parsers for equipment slots: head, chest, legs, feet, hand, off_hand
- Deprecated SlotModifier, replaced with SlotUpdater
- Player-only commands can now have non player-only subcommands
- Added kotlin ubilder for commands and PlayerUtils#runExempted
- Added kotlin extensions for NumberUtils
- Renamed FastItemStack methods, deprecating old names
- Added more kotlin utilities for lists and NamespacedKeys
- Added safer NamespacedKey creation, used in FastItemStack to mitigate broken keys
- Deprecated and marked requirement system for removal
- Deprecated TeamUtils#getMaterialColorTeam
- Changed Proxy error handling to be more consistent and understandable; Deprecated UnsupportedVersionException in favour of UnsupportedVersionError, changed ProxyError from Exception to Error
- Improved durability utils
- Added props system: instead of specifying plugin properties in the constructor, you can now opt to use eco.yml - check the eco source code (eco-core/core-plugin) to find out how to use it; also added EcoPlugin#mutateProps to enforce certain properties for libraries such as libreforge
- Deprecated MaskMaterials in favour of MaskItems
- Added more utility methods to Items
- Updated build logic to move kotlin to root project, updated to kotlin 1.6.10
- Fixed several javadoc issues
- Fixed several minor errors and tweaked internal naming
- Added API extensions in Kotlin for: Utility Classes, FastItemStack, Profiles (Data), and GUI (type-safe builders)
- Added option to display extension load stack-traces for developers
- Various misc changes
- Added RPGHorses Integration (Thanks OfTeN!)
- Fixed WorldGuard integration (Thanks OfTeN!)
- Added silent arg parser for entities (Thanks OfTeN!)
- Added caches for JSON <-> Legacy conversion, Placeholders, and String lookups with Caffeine
- Fixed CrashClaim integration not being loaded
- Added ServerProfile to store persistent data on the server
- Rewrote Custom Recipe listener in Kotlin, finally removing the last bit of java from the backend
- Added CustomCrafting support (Thanks OfTeN!)
- Rewrote Item cache to use Caffeine, removed ttl option from config
- Improved performance of ShopGUI+ Hook by improving custom item cache (Thanks NicoNeko!)
- Switched PersistentDataKeyType from an enum to a functionally indentical class with static fields (in order to infer types better in kotlin)
- Reworked backend of NamespacedKey creation: to get around the slow performance of the NamespacedKey constructor, eco will now use Objenesis to create a blank key and then set the fields reflectively - this is potentially unsafe, and so there is an option in config to disable it (however that shouldn't be a problem unless you royally screw up your config)
- Disabled async-display.ratelimit by default
- Improved stability of async display: packets now deep clone the itemstack rather than shallow cloning the packet, and packet sending is now ran catching and errors (if any) should be logged properly
- Added ExecutableItems support (Thanks OfTeN!)
- Added CustomCrafting support (Thanks OfTeN!)
- Fixed DropQueue giving the wrong amount of experience while telekinetic (Thanks OfTeN!)
- Improved performance of Items#isCustomItem and Items#getCustomItem (Fixes ShopGUI+ Lag)
- Placeholders should now specify a plugin
- Removed arg parsers marked for removal several versions ago
- Added support for evaluating mathematical expressions via Crunch
- Fixed use of commons lang3 over bundled 2.6
- NumberUtils changes
- Added Config#getDoubleFromExpression and Config#getIntFromExpression
- Kotlin codestyle
- Improved various safety checks
- Improved stability of async display by sending packets synchronously after modifying async
- Fixed v1_18_R1 Remapping bugs with FastItemStack
Sorry for the two back-to-back updates today, I don't like pushing eco updates on people