From c03c9572eabde4d79945770ecb2d25cf56e8a91d Mon Sep 17 00:00:00 2001 From: Joni Aromaa Date: Tue, 30 Nov 2021 22:53:17 +0200 Subject: [PATCH] Fix setting passengers performs mount logic (#3565) Fixes #3492 Fixes #3493 --- .../common/accessor/world/entity/EntityAccessor.java | 2 -- .../spongepowered/common/data/provider/entity/EntityData.java | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/accessors/java/org/spongepowered/common/accessor/world/entity/EntityAccessor.java b/src/accessors/java/org/spongepowered/common/accessor/world/entity/EntityAccessor.java index bed503f9c35..38f247362a1 100644 --- a/src/accessors/java/org/spongepowered/common/accessor/world/entity/EntityAccessor.java +++ b/src/accessors/java/org/spongepowered/common/accessor/world/entity/EntityAccessor.java @@ -91,8 +91,6 @@ public interface EntityAccessor { @Accessor("portalEntrancePos") void accessor$portalEntrancePos(final BlockPos portalEntrancePos); - @Accessor("passengers") List accessor$passengers(); - @Invoker("setRot") void invoker$setRot(final float yRot, final float xRot); @Invoker("getEncodeId") @Nullable String invoker$getEncodeId(); diff --git a/src/main/java/org/spongepowered/common/data/provider/entity/EntityData.java b/src/main/java/org/spongepowered/common/data/provider/entity/EntityData.java index 73f76a3472d..e9c94d8ee75 100644 --- a/src/main/java/org/spongepowered/common/data/provider/entity/EntityData.java +++ b/src/main/java/org/spongepowered/common/data/provider/entity/EntityData.java @@ -169,8 +169,8 @@ public static void register(final DataProviderRegistrator registrator) { .create(Keys.PASSENGERS) .get(h -> h.getPassengers().stream().map(org.spongepowered.api.entity.Entity.class::cast).collect(Collectors.toList())) .set((h, v) -> { - ((EntityAccessor) h).accessor$passengers().clear(); - v.forEach(v1 -> ((EntityAccessor) h).accessor$passengers().add((Entity) v1)); + h.ejectPassengers(); + v.forEach(v1 -> ((Entity) v1).startRiding(h, true)); }) .create(Keys.REMAINING_AIR) .get(h -> Math.max(0, h.getAirSupply()))