29f299d Update MCStructs to 3.0.0 (#4422)
41138aa Implement pick-block for legacy servers (#4412)
b90f20c Fix 1.20.3 disguised chat handler
1.21.5 client support
- Fixed custom model data handling in block entities in 1.21.2->1.21.4
- Fixed removed item data components in item hover events in 1.21->1.21.2 and 1.21.2->1.21.4
- Fixed shulker boxes content not being visible in 1.20.3->1.20.5 (by EnZaXD)
- Fixes to item hover event handling in 1.20.3->1.20.5 (by kennytv, EnZaXD)
- Fixed duplicate registry entries causing errors (by EnZaXD)
- Fixed blocks in minecarts in 1.8->1.9 (by EnZaXD)
- Fixed error with 1.9+ clients joining a 1.8 server when ViaVersion installed on Velocity (by EnZaXD)
- Removed consumable blocking sound for 1.21.4 clients on 1.8 servers (by lowercasebtw)
- Note: Item desyncs may occur if you are running a version between 1.17 and 1.21 or don't have ViaVersion running on an up-to-date Paper server
This version also adds custom payload sending to get player protocol version data across platforms (by EnZaXD). If ViaVersion is installed on a proxy (e.g. Velocity or ViaProxy) or the client (e.g. ViaFabricPlus), you may be able to get this information by listening to custom payloads ("plugin messages") on any platform within the chain, which can be useful for anti-cheats and other player version-dependent code. See the wiki for more information. Example JSON data:
{
"platformName": "Velocity",
"platformVersion": "3.1.2",
"version": 760,
"versionName": "1.19.4"
}
Please also note that at some point in the future, ViaVersion will require at least Java 21 to run. If you're already on 17, an update should be trivial.
If you want to get larger version updates early, consider supporting me via https://viaversion.com/donate. See the previous update notes for more info.
d1e2761 Update warning when no working pipe is found (#4416)
5ab4f49 Add Copyable interface and unify copy() methods (#4413)
494da63 Rewrite ConnectionManager to track client/server connections (#4410)
a0b0ed4 Make <1.21.2 container id types consistent with Vanilla again ... that's to say, to make them inconsistent thanks to special ids: Byte:
- CONTAINER_SET_SLOT
- CONTAINER_CLICK
- PLACE_GHOST_RECIPE
- PLACE_RECIPE
- CONTAINER_BUTTON_CLICK
- CONTAINER_CLOSE (serverbound)
- CONTAINER_ACK (serverbound) Unsigned byte (unchanged):
- OPEN_SCREEN
- CONTAINER_SET_CONTENT
- CONTAINER_SET_DATA
- HORSE_SCREEN_OPEN
- CONTAINER_CLOSE (clientbound)
- CONTAINER_ACK (clientbound) Short (unchanged):
- SET_CREATIVE_MODE_SLOT
This doesn't change much in practice, but means it matches the Vanilla reading
e9ec29a Javadoc fixes (#4391)
fb5bc82 Add connection details protocol implementation (#4371)
Adds an optional custom payload protocol which platforms can use to communicate the native version of users across backend servers, the current implementation supports Velocity by sending the player's native version to the backend servers. Platforms may call ConnectionDetails#sendConnectionDetails themselves to ensure the packet getting handled by the server.
Co-authored-by: Nassim Jahnke nassim@njahnke.dev
a7bc03f Treat changes in client bound base protocol handlers as separate protocols (#4400)
d1bea03 Update Gradle Wrapper from 8.12.1 to 8.13 (#4396)
Signed-off-by: gradle-update-robot gradle-update-robot@regolo.cc Co-authored-by: gradle-update-robot gradle-update-robot@regolo.cc
d3512c9 Check overrides too when removing item data
2f1f753 Ignore invalid ingredients in registry data
ac3362f Don't add damage types twice in 1.19.4->1.20 (#4389)
Closes https://github.com/ViaVersion/ViaFabricPlus/issues/652
74e510b Fix clientEntityId check in MovementTransmitterProvider (#4390)
fdd263b Make functions optional which are not always required in ViaPlatform (#4370)
a764cec Add DebugHandler#logPrePacketTransform/setLogPacketTransform (#4386)
3e946ff Add user feedback to /viaversion list & player if no players are found (#4369)
dca45ce Simplify read error