-
Bug
-
Resolution: Invalid
-
None
-
1.20, 1.20.1
-
None
-
Unconfirmed
-
(Unassigned)
Advancements don't seem to save to playerdata during any session where you initially logged in through a duplicate login (with the logged in from another location on the other client).
This can commonly happen with clients that have bad connections, without actually requiring a second client. I did use a second client here to reliably reproduce this issue.
This does also mean that this can be used by bad actors to duplicate advancement rewards / functions, especially on servers that use custom advancements through datapacks.
Reproduction steps:
1. Start up a vanilla minecraft server.
2. Give your account operator perms on the server through console (/op <player>)
3. Start up 2 different vanilla clients on the same account.
4. Connect to the server with client 1.
5. Connect to the server with client 2, giving a 'logged in from another location' on client 1.
6. Gain any advancement with client 2 (ex: /advancement grant @s only minecraft:husbandry/plant_any_sniffer_seed)
7. Reconnect to the server with client 1 again, kicking 2 out. Notice that the advancement didn't save and that you can give it to yourself again. You can infinitely repeat this cycle between client 1 and 2.
Notes:
I have only been able to confirm this for advancements so far, I don't know yet if other types of playerdata may be affected. At least regular playerdata like positions seem to save correctly.