77a6ae3 Fix game profile null id hashing Fixes #4506
12e2016 Fix rabbit variant hashing
8eb005e Fix tropical fish pattern hashing
4d39c00 Add QoL API for GameProfile (#4505)
d9609e6 Don't fail on book pages rewrite in 1.8->1.9 as per Vanilla behaviour (#4504)
ab3927d Implement our own hash writing
This avoids a lot of indirection, wrapping/boxing and data copying while also making sure we can immediately implement them on new snapshots without waiting for a separate (also ever-growing) library.
The HashBuilder is partially copied from MCStructs, everything else was built anew to intentionally stay away from Vanilla's Codec design
1a60c52 Don't convert creative-slot-lock/map-post-processing in 1.20.3->.5 (#4500)
f88dae1 Update Gradle Wrapper from 8.14 to 8.14.1 (#4501)
Signed-off-by: gradle-update-robot gradle-update-robot@regolo.cc Co-authored-by: gradle-update-robot gradle-update-robot@regolo.cc
2626773 Refactor 1.20.5+ versioned types
Co-authored-by: FlorianMichael florian.michael07@gmail.com
f16f190 Move container handling into handleShowItem directly Fixes ViaVersion/ViaBackwards#1010
cc435b2 Move item id setter below backup method
eb2d603 Add protected handleRewritablesToServer method
c30e0f4 Split up item rewriter methods even more Item backups and its restoration processes have to be more carefully placed around Rewritable handling, so the original/restored data stays untouched
ebb24c7 Don't call super handleItemToClient with custom item hasher
575c5b9 Move restoreBackupData call up
812694d Split updateItemDataComponents in two
1efaffb Implement more data conversion Most importantly attributes
3554db9 Prepare for hashed item rewriting
0b5721d Check for non-negative value for damage & repair cost in 1.20.3->.5 (#4491)
In 1.20.5, codecs introduced the non-negative int type which will fail if a value <= 0 is present. In 1.20.4, Mojang gracefully handled negative values
Fixes https://github.com/ViaVersion/ViaFabricPlus/issues/763
5bad61e Don't perform length validation on zero bit storage in 1.18 palette type (#4479)
Minecraft has its own ZeroBitStorage type for this case so we don't need to perform the validation, also removed the comments as this is just how our code should work to match Vanilla behaviour (at least for the first one; I did not verify the readValues code)