mojira.dev
MC-108765

Passengers in boats only rotate client-side if player is steering

The bug

If a player is steering a boat, a second passenger will only rotate client-side.

How to reproduce

  1. Use the following command

    /summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}
  2. Run the /data get entity command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]

    /data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]
  3. Get in the boat and turn only very slightly

  4. Run the /data get entity command on the armor stand and have a look at its Rotation

    /data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]

    → It is still [0.0f,0.0f]

The reason

The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.

This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.

Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.

Linked issues

Comments 6

Can confirm in 20w48a. Here's some updated commands since the command format and usage has been changed since the date this was reported.

/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]

Can confirm in 21w03a.

Can confirm in 21w05a.

Can confirm in 21w06a.

Can confirm in 21w17a.

Can confirm in 1.21.11, updated commands:

/summon minecraft:oak_boat ~ ~ ~ {Passengers:[{id:"minecraft:armor_stand"}]}
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1] Rotation

marcono1234

(Unassigned)

Confirmed

Networking, Rendering

boat, passengers, player, rotation

Minecraft 1.10.2, Minecraft 16w41a, 20w07a, 1.16.4, 20w48a, , 21w05b, 21w06a, 21w17a, 1.20.3 Pre-Release 2, 1.21.11

Retrieved