The bug
When a player uses a 1.16.4 client to connect to a 1.16.5 server, that player's DataVersion value in their NBT is the server's data version, not the client's. Since a player's data version is tied to the player, it is logical for it to have the data version of the connecting client, not the world.
Steps to reproduce
Fire up a 1.16.5 server that you had lying around
Connect with a real 1.16.4 client
Run
data get entity @p DataVersionfrom the server console
Expected result
<player> has the following entity data: 2584<player> has the following entity data: 2584Actual result
<player> has the following entity data: 2586<player> has the following entity data: 2586Other info
Data versions:
1.16.4 | 1.16.5 |
|---|---|
2584 | 2586 |
Comments 4
Yes, I was thinking about that. It makes sense for the data version to be stored with the chunk data but in the player's NBT? And since Minecraft has no actual documentation to tell us what the purpose of specific NBT values are, I decided that I may as well make this report. (Even if it's likely going to be WAI)
Player NBT is still saved by the server, just like chunks and entities. The client has no say in that.
Invalid/Works as Intended, the DataVersion is the save format version number, which the server decides, not the client.
That the data version of 1.16.5 servers is different from 1.16.4 is intended, and it's the server that decided how to save things.