ViaBackwards icon indicating copy to clipboard operation
ViaBackwards copied to clipboard

Some valid 1.20.2 skulls do not display correctly for older clients

Open datatags opened this issue 1 year ago • 2 comments

'/viaversion dump' Output

https://dump.viaversion.com/b08b71c1a6bbb7f07f6b1730f9ad267ff4951bfc748b26dc7121d7167142ef5d

Console Error

No response

Bug Description

Skulls with base64 texture data but no Id tag display fine for 1.20.2+ clients, but appear as Steve heads for clients 1.20.1 and older.

Steps to Reproduce

  1. Install latest ViaVersion and ViaBackwards on a 1.20.2+ server
  2. Log in with a 1.20.1- client and a 1.20.2+ client
  3. Run this command in a command block:
/minecraft:give @p minecraft:player_head{display:{Name:'{"text":"Barrel of Peaches"}'},SkullOwner:{Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmJmZmMxZDY0NDA3YTQ2ZThhNjRlNmI0YTIyZDY2YjY3NmJkNWVmYWUwNzFkOTE3NmRiNTFhYjI1NWEzMjdiYSJ9fX0="}]}}} 1
  1. Place, hold, or wear the given skull so both clients can see it

Expected Behavior

Both clients should be able to see the texture properly, rather than only the 1.20.2 client seeing it.

Additional Server Info

I'm able to reproduce this with no proxy and no plugins other than ViaVersion and ViaBackwards.

Other additional info

XSeries has some code to work around this for different server versions, but since it can't detect the client version it doesn't help when using ViaBackwards: https://github.com/CryptoMorin/XSeries/blob/eaaa6dedbf542ea8a38c6a4726538508d9e4f8e7/src/main/java/com/cryptomorin/xseries/SkullUtils.java#L107-L120 https://github.com/CryptoMorin/XSeries/blob/eaaa6dedbf542ea8a38c6a4726538508d9e4f8e7/src/main/java/com/cryptomorin/xseries/SkullUtils.java#L270-L283

Checklist

  • [X] Via plugins are only running on EITHER the backend servers (e.g. Paper) OR the proxy (e.g. BungeeCord), not on both.
  • [X] I have included a ViaVersion dump.
  • [X] If applicable, I have included a paste (not a screenshot) of the error.
  • [X] I have tried a build from https://ci.viaversion.com/ and the issue still persists.

Screenshots

(there was no actual text box on the issue template for them?) Steve head displays Texture displays

datatags avatar Feb 24 '24 21:02 datatags

Platform: git--Paper--318%20%28MC%3A%201.20.2%29 ViaVersion (4.9.3-SNAPSHOT): Even with master ViaBackwards(4.9.2-SNAPSHOT): Even with master

Barvalg avatar Feb 24 '24 21:02 Barvalg

I had similar issue with a heads plugin running on 1.20.4 server, fixed it for new heads replacing:

Bukkit.createProfileExact(UUID.fromString("00000000-0000-0000-0000-000000000000"), null)

with

Bukkit.createProfileExact(UUID.nameUUIDFromBytes(hash.getBytes()), null)

The linked XSeries solution to me seems a bit overengineered and less useful, but maybe I'm missing something.

sandrwich avatar Mar 10 '24 10:03 sandrwich

Seems with ViaBackwards 4.10.2, this does not happen if the server is running MC 1.20.6, but does still happen if the server is running 1.20.2 through 1.20.4.

datatags avatar May 14 '24 00:05 datatags