Skip to content

Releases: oglassdev/KotStom

v0.5.0-alpha.0

12 Jul 03:11
19f2ed9

Choose a tag to compare

This is a simple release aimed mainly at having a working KotStom version for the 1.21.7 game jam.

What's Changed

Full Changelog: v0.4.0-beta.0...v0.4.0-alpha.0

v0.4.0-beta.0

03 Dec 03:30

Choose a tag to compare

v0.4.0-beta.0 Pre-release
Pre-release

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 kommand API
  • MinestomRunnable has 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

18 Jul 04:06

Choose a tag to compare

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.scheduler because scheduler() 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 MinestomModule and MinestomConfigModule for their respective serializers
        • MinestomModule serializes things in less human-readable formats
        • MinestomConfigModule serializes 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 builder DSL extension