- Fixed bug with holograms
- Updated Kotlin version
- Added use-local-storage option to disable cross-server sync if using MySQL in eco
- Changed load order to POSTWORLD
- Removed ProtocolLib as a dependency
- Fixed bug with chunk unloading
- Fixed chunk unload bug
- Fixed bug with keys displaying with plugins like auction house (Thanks OfTeN!)
- Fixed /ecocrates give and /ecocrates resetwins not working until a player has logged on at least once before (Thanks OfTeN!)
- Added support for the particle lookup system: https://plugins.auxilor.io/all-plugins/the-particle-lookup-system
- Moved crates to each have their own .yml file (crates.yml crates are still loaded, so you don't have to worry about that)
- Added pages to crate previews (non-paged crate configs will still load correctly, there's no work to be done if your crates are already configured)
- Fixed not being able to give virtual keys to offline players
- Fixed bug with crate reloading on startup
- Updated kotlin to 1.7.10
- Fixed keys showing up in reroll GUI for some users
- Improved CrazyCrates converter (Thanks OfTeN!)
- Added /crates take command (Thanks grzybeek!)
- Fixed /crates forceopen not working in console (Thanks Sedri!)
- Fixed breaking crates not working for some users
- Hotfix from last version
- Added permissions to rewards, (true by default) that can be negated to prevent players from getting certain rewards
- Added support to have custom items function as keys, set key.is-custom-item to true in crate config to use the exact item specified rather than using it as the base for a key
- Added /key and /keys as aliases
- Fixed ExcellentCrates converter (Thanks OfTeN!)
- Replaced inherit-lore with clearer dont-keep-lore option
- Added inherit-lore to use the original item lore instead of the custom lore for rewards