Entity.Pose
becomesEntityPose
Player.Hand
becomesPlayerHand
Range
has been reworked with all the number impl as subclasses (used for the command range argument)RelativeVec
has been made record, and package moved tocoordinate
ChunkUtils
has been broken down intoCoordConversion
andChunkRange
Player.Settings
becomesClientSettings
and immutable- Removed
NotificationCenter
in favor ofPlayer.sendNotification
- The chat format function has been removed in favor of
PlayerChatEvent.setFormattedMessage
EntityStatuses
listing... entity statuses. As listed there: https://wiki.vg/Entity_statusesMetadataDef
listing metadata access points. Differentiate itself from the current metadata API as it does not handle storage.
- Packets are all registed in
PacketRegistry
with their ids and serializers - Packets serializer are exposed as static fields in their respective files
processImmediately
packets are stored inPlayerSocketConnection
, making packets file purely declarative- Use virtual threads for networking (no more
Worker
) - Remove
BinaryBuffer
- Use
NetworkBuffer
everywhere, removedByteBuffer
from all APIs - Make more use of
NetworkBufferTemplate
all over the codebase - Moved Viewable methods to
PacketViewableUtils
- Moved
sendGroupedPacket
/sendPacket(Audience, ServerPacket)
toPacketSendingUtils
- Separated packet reading/writing from
PacketUtils
intoPacketReading
andPacketWriting
- Add
PacketVanilla
which hold some constants true for vanilla clients
Reworked NetworkBuffer
with the following options:
Registries
becomes a parameterAutoResize
allowing you to custom by how much a buffer should auto extend once full- Explicit resizable/static factory methods
- Added
write/readAt
specific index - Removed all type reading methods (list, bitset, optional, etc...) in favor of constant
NetworkBuffer.Type
s - Added
NetworkBuffer.Type#sizeOf
to help pre-size buffer before any allocation - (Internally) switch the backend from
ByteBuffer
toUnsafe
allowing 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
Caffeine
which shouldn't have much of an impact, except that users are now responsible for cachingMojangUtils
results to avoid blocking operations