Releases: oglassdev/KotStom
Releases · oglassdev/KotStom
v0.5.0-alpha.0
This is a simple release aimed mainly at having a working KotStom version for the 1.21.7 game jam.
What's Changed
- fix: publish to Sonatype repository by @oglassdev in #12
- 1.21.7 by @oglassdev in #16
Full Changelog: v0.4.0-beta.0...v0.4.0-alpha.0
v0.4.0-beta.0
Proposed changes, such as kotstom-extras are not added because they don't seem to fit the spirit of Kotstom, which is just to provide Kotlin related extensions for Minestom. A full 0.4.0 release may be on hold until Minestom 1.21.2 or 1.21.4, since there are plans to change certain things, such as removing NamespaceID.
Changes
Breaking Changes
- New
kommandAPI MinestomRunnablehas been removed- Removed unnecessary Adventure extensions
Features
- Better tag delegation
- Tag#lazy: lazily sets the value of the evaluated expression to the TagWritable when first accessed if it doesn't exist; otherwise returns the value
- Tag#orElse: evaluates the expression and returns the value if the TagReadable doesn't contain the value - otherwise returns the value; allows setting if it is a TagWritiable
- Scheduler#scheduleTask and Schedulable#scheduleTask extensions
Fixes
- Inline extension Entity#editMeta using reified parameters
- AdventureCompoundDecoder decodes optionals properly now
- Updated dependencies to resolve Minestom properly
Usage
repositories {
mavenCentral()
}
dependencies {
implementation("net.bladehunt:kotstom:0.4.0-beta.0")
implementation("net.bladehunt:kotstom-serialization:0.4.0-beta.0")
implementation("net.bladehunt:kotstom-adventure-serialization:0.4.0-beta.0")
}Full Changelog: v0.3.0...v0.4.0-beta.0
v0.3.0
This is KotStom's first release on GitHub to the Bladehunt maven repository.
Using in projects
repositories {
maven("https://mvn.bladehunt.net/releases")
}
dependencies {
implementation("net.bladehunt:kotstom:0.3.0")
implementation("net.bladehunt:kotstom-serialization:0.3.0")
implementation("net.bladehunt:kotstom-adventure-serialization:0.3.0")
}Changes
- Breaking Changes
- ItemComponents no longer use invoke in the item builder dsl
- Removed
Schedulable.schedulerbecausescheduler()exists
- Fixes
- Pos and Vec now return the appropriate classes when using operations
- Vec now rounds to BlockVec
- Get and set operators for inventories now use the super class AbstractInventory
- Features
adventure-serialization- A kotlinx.serialization encoder/decoder for Adventure NBT compounds and lists
- Usage:
AdventureNbt.encodeToCompound,AdventureNbt.decodeFromCompound - AdventureNbt can also be instantiated to have custom properties
- discriminator (polymorphism)
- shouldEncodeDefaults
- serializersModule
serialization- Minestom/Adventure kotlinx.serialization serializers
- Contains
MinestomModuleandMinestomConfigModulefor their respective serializersMinestomModuleserializes things in less human-readable formatsMinestomConfigModuleserializes things in slightly more human-readable formats, such as UUIDs as strings
- MiniMessageSerializer is not included by default as to not have a hard dependency on MiniMessage and can be used by including it as a contextual serializer
- Misc
- Item builder DSL now has a function that doesn't take a block
- ItemStack now has an inline
builderDSL extension