From e5497922d97ee78205061245defd18515415b353 Mon Sep 17 00:00:00 2001 From: David Choo Date: Thu, 8 Apr 2021 23:15:56 -0400 Subject: [PATCH] Fix player rotation lock while riding boats for 1.16.210+ (#2114) --- .../entity/JavaEntitySetPassengersTranslator.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaEntitySetPassengersTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaEntitySetPassengersTranslator.java index da9ce64ff..5d6706fef 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaEntitySetPassengersTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/entity/JavaEntitySetPassengersTranslator.java @@ -31,6 +31,7 @@ import com.nukkitx.protocol.bedrock.data.entity.EntityData; import com.nukkitx.protocol.bedrock.data.entity.EntityFlag; import com.nukkitx.protocol.bedrock.data.entity.EntityLinkData; import com.nukkitx.protocol.bedrock.packet.SetEntityLinkPacket; +import com.nukkitx.protocol.bedrock.v428.Bedrock_v428; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import org.geysermc.connector.entity.Entity; import org.geysermc.connector.entity.living.ArmorStandEntity; @@ -87,7 +88,13 @@ public class JavaEntitySetPassengersTranslator extends PacketTranslator= Bedrock_v428.V428_CODEC.getProtocolVersion()) { + passenger.getMetadata().put(EntityData.RIDER_MIN_ROTATION, 1f); + passenger.getMetadata().put(EntityData.RIDER_ROTATION_OFFSET, -90f); + } else { + passenger.getMetadata().put(EntityData.RIDER_MIN_ROTATION, -90f); + } } else { passenger.getMetadata().put(EntityData.RIDER_ROTATION_LOCKED, (byte) 0); passenger.getMetadata().put(EntityData.RIDER_MAX_ROTATION, 0f); @@ -116,6 +123,9 @@ public class JavaEntitySetPassengersTranslator extends PacketTranslator= Bedrock_v428.V428_CODEC.getProtocolVersion()) { + passenger.getMetadata().put(EntityData.RIDER_ROTATION_OFFSET, 0f); + } this.updateOffset(passenger, entity, session, false, false, (packet.getPassengerIds().length > 1)); } else {