Releases: SilkMC/silk
1.9.6
1.9.5
1.9.4
Updated for Minecraft 1.19.3.
Even though it is only a minor version jump, this is a major minecraft update under the hood, so most mods need to be updated.
Older Silk versions for 1.19 (Silk 1.9.3 and lower) do not work for 1.19.3.
Internally Mojang changed major parts of the Registry and Command System, and there a changes all over the place since Minecraft 1.19.3 already contains several 1.20 features as opt in.
1.9.2
Sideboard API changes
- added updatable sideboard line
- added
emptyLine
function - allow to pass a normal flow as a line
- added
updatingLine
function as a replacement for the old lineChangingPeriodically
all deprecations have quick fixes for alternatives
- deprecated SimpleSideboardLine and ChangingSideboardLine with replacements
- deprecated
line { }
,literalLine
andFlowCollector<Component>.emitLiteralText
Events Changes
- added player login events to core (still part of the experimental events API, actual docs and info will follow)
- added entity events namespace as a starting and extension point for core and custom entity events
Dependencies
Updated to fabric-language-kotlin 1.8.3+kotlin.1.7.10, and increased the minimum required version to 1.8.0+kotlin.1.7.0.
Temporary usage requirement
Remember that in order to use this release you have to follow this guide:
https://gist.github.com/jakobkmar/5068aa14e37b859c3246de91cac74347
1.9.1
This release updates Silk to Minecraft 1.19.2, and it is also compatible with Minecraft 1.19.1.
A temporary issue is that to use this release you have to follow these steps: https://gist.github.com/jakobkmar/5068aa14e37b859c3246de91cac74347
(this is due to the fact that Silk relies on context receivers already)
Changes:
- a pretty big change is that the event API is now included in Silk, it is still experimental though, which is also the reason for this not being a major version bump and documentation being not that good yet
- you can now convert Minecraft random sources to Kotlin randoms and vice-versa
Sorry for the delay - it is mostly caused by holidays etc - in future releases should be much faster again.
1.9.0
Renamed to Silk:
- the API has been renamed from FabrikMC to Silk, since it is / will be compatible with more targets
- the base package changed from
net.axay.fabrik
tonet.silkmc.silk
, use IntelliJ Ctrl+Shift+R to replace that in all your imports - types with "Fabrik" in their name have been deprecated, changed to a typealias and now suggest their Silk counter part as the
ReplaceWith
value - the docs are now located at silkmc.net/silk/docs
- the artifacts on maven central are now located in the
net.silkmc
namespace, therefore the core module has the following dependency notationnet.silkmc:silk-core:1.9.0
Features and changes:
- added
alias
function toLiteralCommandBuilder
which allows you to specify alternative names for the command or subcommand @jakobkmar - the silk-nbt module should now be backwards compatible with old kotlinx.serialization versions by checking for both
CollectionLikeSerializer
andListLikeSerializer
@F0Xde - added
executeCommand
extension forMinecraftServer
@btwonion Sideboard
now has ahideFromPlayer
function @jakobkmar (suggested by @DasPhiller)- using the hotkey swap key on an igui no longer creates a ghost item @jakobkmar (reported by @DasPhiller)
- the commands module no longer depends on fabric-api
- introduced
InternalSilkApi
andDelicateSilkApi
opt-in annotations, and used them for some parts of the API
1.8.1
- now compiling against the full 1.19 release, no longer the pre release
- added
obfuscated
option to literal text builder (@btwonion) - updated to fabric api 0.55.3 and use fabric command api v2 under the hood (fixes some issues with client commands)
- registering client commands is now callback based as well (
setupRegistrationCallback()
)
- registering client commands is now callback based as well (
- updated to Kotlin 1.7.0
- added
setSkullTexture
andsetSkullPlayer
functions for ItemStack (@btwonion, @l4zs and @jakobkmar) - fabrikmc-nbt is now compatible with kotlin 1.7.0 kotlinx.serialization - but we cannot garuantee backwards compatibility with older serialization versions for sure (@F0Xde)
GameProfileArgument.Result
is now supported as a generic argument type- fixed
initWithServerSync
(now uses fabrikCoroutineScope at first and mcCoroutineScope for executing the given block)
1.8.0
- updated to Minecraft 1.19
- this introduced major changes to
Text
/Component
and commands, but they didn't require fabrikmc to change a lot
- this introduced major changes to
literalText
now returnsMutableComponent
- new
argument
function inside command builder, which allows to create an ArgumentType from theCommandBuildContext
, which gives registryAccess to the command types - new
player.executeCommand(String)
extension (server-side) - deprecated
coroutineTask
and replaced withmcCoroutineTask
- the new function uses
Duration
instead ofLong
for delay and period, and has newscope
andclient
arguments
- the new function uses
- added
infiniteMcCoroutineTask
function - added
Entity.directionVector
which returns aVec3
for the exact direction the Entity is currently looking at - added
Entity.blockPos
for more consistent access for mojang mappings users - introduced
InternalFabrikApi
andDelicateFabrikApi
annotations which will protect users from wrong use of certain components, but still allows them to do it if they really want - make
markVelocityDirty
more reliable - added
Int.ticks
extension which returns akotlin.time.Duration
for the amount of ticks specified - temporarily removed the fabrikmc-compose module, since it will be moved to a separate project
- added
Entity.modifyVelocity(Vec3)
extension function - added
UUID.toNbt()
extension function to nbt conversion file - added
initWithServerSync
function which returns aDeferred<T>
which will be completed when the server finished startup - this allows to initialize properties depending on the MinecraftServer in classes early
1.7.4
fabrikmc 1.7.4
This is a small release, which downgrades the jvm target fabrikmc uses to Java 11, so that fabrikmc can be used with Kotlin 1.5.31 - this is needed because of some inline / crossinline to anonymous object issues with Kotlin 1.6.0+, which will only be fixed in Kotlin 1.7.0.