**From now on** AbyssalLib will receive **smaller updates** as well as **dev versions** (dev only on GitHub)
**For Developers:** you should now add a lang key `plugin.<plugin_id>` so that you can show a proper name inside ItemMenu (default is plugin_id). Optionally, also add an icon.
---
## **New:**
- **Statistics Menu**, and **Item Menu** for viewing said content (view permissions in docs)
- **Namespace#icon** for specifying the plugin icon to show in `/abyssallib content items` (`textures/items/icon.png`)
- **EntitySpawner component** for items that spawn custom entities
- **Statistics API** for adding custom statistics to players
- **Command now supports aliases**
- **Codecs for all DataComponents**
- **Codec#collection** and `Codec#collection(collectionConstructor)` (e.g. `codec.collection(HashSet::new)`)
- **Entity now supports DataComponent** (not Vanilla ones, only custom)
- **EnergyContainer component** (wrapper for SimpleEnergyContainer)
- A **lot of new codecs** in ExtraCodecs and Codecs
- **oversizedInGui** field for ItemDefinition
- **Kotlin player and entity extensions** for various methods
- **Kotlin GuiBuilder, DamageTypeBuilder, ParticlesBuilder, LootTableBuilder, LootPoolBuilder, RecordCodec**
- Model now includes **guiLight**, **textureSize**, **ambientOcclusion**
- Model.Element now includes **shade** and **lightEmission**
- Added **byte[] data overloads** for every single asset so you can load them directly from files
*(Be warned: when using these you CANNOT edit them via code, e.g. you cannot add more translation keys to a Lang loaded this way)*
- **ResourcePack#unregister** (does nothing when using RSPM; reloading RSPM works)
---
## **Changes:**
- Added back many constructors to DataComponents to fix component loading
- BlockEntity now only serializes variables of type `Property<>`
- BlockManager no longer uses `TextUtil.GSON` for serialization/deserialization
- `AttributeModifier` → **ItemAttributeModifier**
- Many constructors with easier-to-use versions for DataComponents
- DataComponent constructor now accepts **subclass Codecs** (e.g. `Codec<ToolComponent>` instead of `Codec<DataComponent<Tool>>`)
- **Entity Loading is now fixed**
- `Codec<Component>` (TEXT_COMPONENT in Codecs) now uses **MiniMessage** for serializing/deserializing
---
## **Fixes:**
- ItemBridge properly loads items now (also fixes **ITEM_STACK** codec)
- Registry no longer crashes plugin if a duplicate ID is registered (it skips instead)
- Item Components randomly not applying
- Typo in ItemModel which caused it to replace ItemName
- Possibly fixed Entity Spawning
---
## **Removal:**
- Logging from SimpleEnergyContainer
- WorldMeta
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }