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 useinstanceofchecks as replacements for these methods. TimeUnit.TICKwas removed, useSERVER_TICKorCLIENT_TICKinstead.- New
PlayerLoadedEventcalled 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
RGBLikeinstead 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.