- updated to Minecraft 1.20.5 by @MushroomMif
- Added
setItemName
function inItemBuilder
to easily setminecraft:item_name
item component using Silk text builder setPotion
function inItemBuilder
now takesHolder<Potion>
instead ofPotion
as potions are now registered usingregisterForHolder
method which returnsHolder<Potion>
- Sideboard internals was updated to remove scoreboard teams hack and use new
display
field instead - You can now specify which number format sideboard will use by new
numberFormat
property in thesideboard
function, it isBlankFormat
by default
- Added
- now using Kotlin 1.9.23
setSkullPlayer
now accepts a playeruuid
and/or playername
and/ortexture
(notably allowing you to set a skull texture just by name)- you can now specify any
BinaryFormat
insilk-network
(previously only Cbor)
Internal Changes
silk-network
now uses a FallbackProvider to inject a stream codec provided by each type of packet definition- each custom silk-network packet still corresponds exactly to a custom payload packet with the given idea
- duplicated packet IDs will now result in a warning if they clash on lookup
silk-persistence
now migrates the legacyfabrikmcData
tag from nbt and level data to the newsilkmc_persistent_data
tag
- updated to Kotlin 1.9.10 and Minecraft 1.20.2
- added two entity events:
damageLivingEntity
(Called when a LivingEntity is being hurt. When this event occurs, at least one invulnerability check has already passed.)checkInvulnerability
(Called when a regular invulnerability check is being performed. This event allows listeners to modify the result of that check.)
- reworked player (network) events:
- split
quitDuringLogin
intoquitDuringLogin
andquitDuringConfiguration
(because of Minecraft now allowing for configuration at any time in-game) - added
reason
property to quit events
- split
- internal changes:
- silk-network packets now use the new payload based custom packets under the hood
- silk-persistence now uses a workaround for bypassing the datafixerupper from running on internal SavedData
- updated to Minecraft 1.20
- updated to Kotlin 1.8.21
Public API for server and player list access
-
added multiple properties to the
Silk
object:server
(nullable)serverOrThrow
(non-nullable)players
(non-nullable list, can be empty)
-
deprecated previous (delicate) property:
Silk.currentServer
-
added extension on
MinecraftServer
:server.players
Fixes
- fixed modmenu icon not showing up since rebranding - by @mooziii
- fixed sideboard ordering (sideboards do not use scores of zero anymore) - by @Krxwallo
Internal
- improved async event test
- marked
ReadWriteMutex
as@InternalSilkApi
silk-network
- removed usage of fabric-api from silk-network (now standalone)
- now sends custom payload packets directly
- each packet will now be sent on a channel of the same name as the packet identifier
- client to client packets can now be forwarded to multiple players at once
- it is now garuanteed that receivers won't be executed concurrently
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.
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
- compatibility with Minecraft 1.19.2 and 1.19.1
- 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