Skip to content

Shoulder parrot not visible for 1.21.4/1.21.8 clients on 1.21.11 server #1257

@Pozdro320

Description

@Pozdro320

/viaversion dump Output

https://dump.viaversion.com/4e353460fe31b48762a285b6a3ac1e9e5f7f7464ddd66085d5a8991e2ddea04a

Server/Client Error

Related error:
Previously the same issue caused a ClassCastException:
java.lang.Integer cannot be cast to
com.viaversion.nbt.tag.CompoundTag
(in EntityPacketRewriter1_21_9, line 122)

Bug Description

Versions:

  • Server: 1.21.11 (Purpur)
  • ViaVersion: 5.9.1
  • ViaBackwards: 5.9.1
  • Clients tested: 1.21.4, 1.21.8

Problem:
On a 1.21.11 server, placing a parrot on a player's shoulder
(vanilla /summon parrot or taming) is not visible to players
connecting with 1.21.4 or 1.21.8 clients.

In 1.21.11, Minecraft changed the player shoulder metadata format
from NBT CompoundTag to OptionalVarInt (index 19).
ViaVersion does not correctly translate this to the older format
for clients below 1.21.11.

Expected behavior:
The shoulder parrot should be visible to all players
regardless of their client version.

Steps to Reproduce

  1. Set up a 1.21.11 server with ViaVersion + ViaBackwards
  2. Player A connects with a 1.21.11 client
  3. Player A tames a parrot and places it on their shoulder
  4. Player B connects with a 1.21.4 or 1.21.8 client
  5. Player B does NOT see the parrot on Player A's shoulder

Additional Server Info

Checklist

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions