Skip to content

Instantly share code, notes, and snippets.

@mworzala
Created March 27, 2025 16:20
Show Gist options
  • Save mworzala/a3a4b45f286571ee4dcecf13c27f5f23 to your computer and use it in GitHub Desktop.
Save mworzala/a3a4b45f286571ee4dcecf13c27f5f23 to your computer and use it in GitHub Desktop.

Minestom 1.21.4

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 :)

NamespaceID Removal

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.

Pick Block

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.

Misc Changes

  • The world event enum is now data generated, it can be found in WorldEvent. This was previously called Effects.
  • 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 use instanceof checks as replacements for these methods.
  • TimeUnit.TICK was removed, use SERVER_TICK or CLIENT_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.

Misc Future Tasks

  • 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment