diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/SeatBlockEntity.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/SeatBlockEntity.java index 360e58f38..8b520e63a 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/SeatBlockEntity.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/SeatBlockEntity.java @@ -59,11 +59,23 @@ public class SeatBlockEntity extends BlockEntity implements SeatOwner { } for (Seat seat : this.seats) { if (!seat.isOccupied()) { - if (seat.spawnSeat(player, new WorldPosition(super.world.world(), super.pos.x() + 0.5, super.pos.y(), super.pos.z() + 0.5, 0, 180 - yRot))) { + if (seat.spawnSeat(player, new WorldPosition(super.world.world(), super.pos.x() + 0.5, super.pos.y(), super.pos.z() + 0.5, 180 - yRot, getYRot()))) { return true; } } } return false; } + + private float getYRot() { + Property facing = super.blockState.owner().value().getProperty("facing"); + if (facing == null || facing.valueClass() != HorizontalDirection.class) return 0; + HorizontalDirection direction = (HorizontalDirection) super.blockState.get(facing); + return switch (direction) { + case NORTH -> 0; + case SOUTH -> 180; + case WEST -> 270; + case EAST -> 90; + }; + } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/seat/BukkitSeatManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/seat/BukkitSeatManager.java index 9e45aa593..2e52d5564 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/seat/BukkitSeatManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/seat/BukkitSeatManager.java @@ -28,7 +28,7 @@ import org.jetbrains.annotations.NotNull; import java.io.IOException; -public class BukkitSeatManager implements SeatManager { +public class BukkitSeatManager implements SeatManager, Listener { private static BukkitSeatManager instance; public static final NamespacedKey SEAT_KEY = KeyUtils.toNamespacedKey(SeatManager.SEAT_KEY); public static final NamespacedKey SEAT_EXTRA_DATA_KEY = KeyUtils.toNamespacedKey(SeatManager.SEAT_EXTRA_DATA_KEY);