Entity.PosebecomesEntityPosePlayer.HandbecomesPlayerHandRangehas been reworked with all the number impl as subclasses (used for the command range argument)RelativeVechas been made record, and package moved tocoordinateChunkUtilshas been broken down intoCoordConversionandChunkRangePlayer.SettingsbecomesClientSettingsand immutable- Removed
NotificationCenterin favor ofPlayer.sendNotification - The chat format function has been removed in favor of
PlayerChatEvent.setFormattedMessage
EntityStatuseslisting... entity statuses. As listed there: https://wiki.vg/Entity_statusesMetadataDeflisting metadata access points. Differentiate itself from the current metadata API as it does not handle storage.
- Packets are all registed in
PacketRegistrywith their ids and serializers - Packets serializer are exposed as static fields in their respective files
processImmediatelypackets are stored inPlayerSocketConnection, making packets file purely declarative- Use virtual threads for networking (no more
Worker) - Remove
BinaryBuffer - Use
NetworkBuffereverywhere, removedByteBufferfrom all APIs - Make more use of
NetworkBufferTemplateall over the codebase - Moved Viewable methods to
PacketViewableUtils - Moved
sendGroupedPacket/sendPacket(Audience, ServerPacket)toPacketSendingUtils - Separated packet reading/writing from
PacketUtilsintoPacketReadingandPacketWriting - Add
PacketVanillawhich hold some constants true for vanilla clients
Reworked NetworkBuffer with the following options:
Registriesbecomes a parameterAutoResizeallowing you to custom by how much a buffer should auto extend once full- Explicit resizable/static factory methods
- Added
write/readAtspecific index - Removed all type reading methods (list, bitset, optional, etc...) in favor of constant
NetworkBuffer.Types - Added
NetworkBuffer.Type#sizeOfto help pre-size buffer before any allocation - (Internally) switch the backend from
ByteBuffertoUnsafeallowing long indexes
Generator and IChunkLoader (when supporting parallel loading/saving), are now executed in a virtual thread.
A few JFR events have been implemented. You can view the list in EventsJFR.
- Removal of
Caffeinewhich shouldn't have much of an impact, except that users are now responsible for cachingMojangUtilsresults to avoid blocking operations