Finally we merge the 1.21.4 branch which has been usable since the version came out but slow to merge for a variety of reasons. Thanks to all who tested the in-progress branch :)
The Minestom NamespaceID
class has been removed. Adventure has Key
which fills the same purpose, so we now use Key
everywhere. Methods including namespace such as Material#fromNamespaceId
have been renamed to Material#fromKey
.
This will be a big search and replace for most projects, apologies for the extra work but better to do it sooner than later.
Creative mode clients no longer automatically handle pick block functionality on the client using the creative inventory action packet. Minestom provides PlayerPickBlockEvent
and PlayerPickEntityEvent
for handling these two cases.
A default server will not handle these events, so no items will be added on the client. There is no prediction on the client for this behavior.
- The world event enum is now data generated, it can be found in
WorldEvent
. This was previously calledEffects
. - Block sounds are now data generated, they can be found in
BlockSoundType
. - Some long-deprecated methods were removed in
CommandSender
:#isPlayer
,#isConsole
,#asPlayer
,#asConsole
. You should useinstanceof
checks as replacements for these methods. TimeUnit.TICK
was removed, useSERVER_TICK
orCLIENT_TICK
instead.- New
PlayerLoadedEvent
called when the player finishes loading into the world (loading screen is gone on client and player is controllable). - Instruments are now data driven and stored in a dynamic registry.
- Biome effects now use
RGBLike
instead of raw ints for colors.
- Receiving transfers and correctly processing entity passenger/vehicle offsets remains as TODO items from 1.20.6.
- Game tags (not the Tag nbt wrapper) remain in need of rework.