# MoonlightCore | 5.1.8
## 1. Transfer API:
The transfer API had some additions, changes and cleanup to its code:
### Additions:
- Added methods to simulate insert/extract methods from `StorageIO` classes that won't perform any action than calculate the result value
- Added some new storages and wrappers:
- `RangedStorage`
- `SingleItemResourceStorage`
- `SingleItemStorage`
- `CursorSlotWrapper`
- `SingleFluidStorage`
### Changes:
- Now the transactional methods like insert/extract don't need strictly a `Transaction` and can take a
`TransactionContext` instead
- Now the `Storage` interface (and subclasses/sub-interfaces) don't strictly need a `TransferResource` and can take instead any kind
of value specified without needing to implement `TransferResource` (this with most of the subclasses, there are some that still need it)
## 2. Registry
## Additions:
- Added some `Registrate` (Tterrag1098's Registrate) builders for the entries, this may be util for its methods (basic things that
may not need a special-case builder still need to use the `DeferredRegistrar#register` method)
### Changes:
- Replaced `RegistryHelper` with `DeferredRegistrar` which manages better the registry entries
- `RegistryEntry` now only takes the key of the entry instead of key and value candidate
- `RegistryEntry` now only implements `NonnullSupplier` that works with an inner holder now instead of a `Supplier` and cached value
## Miscellaneous
1. Added `EntityEvent#ATTRIBUTE_CREATION` that is invoked just before the `CommonLifecycleEvent#SETUP` event so you (modder) can create your entity's attributes
2. Returned the old `AttachmentType$Builder` class
3. Added `ByteBufCodecs#fromCodec` method to de/serialize data from an existing 'normal' `Codec`
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" }