27 playerDimensionChangedEvent(
::Player& player, ::DimensionType fromDimensionId, ::DimensionType toDimensionId) = 0;
29 virtual ::Actor* getAgent(
::Player& player) = 0;
31 virtual void resetAgent(
::Player& player) = 0;
33 virtual void stopUsingItem(
::Player& player) = 0;
35 virtual bool hasRespawnPosition(
::Player const& player)
const = 0;
37 virtual ::BlockPos
const& getSpawnPosition(
::Player const& player)
const = 0;
39 virtual bool isRespawningFromTheEnd(
::Player const& player)
const = 0;
41 virtual void fireWillChangeDimension(
::Player& player) = 0;
45 virtual void setPreviousPosition(
::Player& player) = 0;
47 virtual void resetInterpolation(
::Player& player) = 0;
51 virtual ::MovePlayerPacket
52 createMovePlayerPacket(
::Player const& player, ::PlayerPositionModeComponent::PositionMode resetPosition)
const = 0;
56 virtual ::Vec3 calculateAgentSpawnPosition(
::Player const& player)
const = 0;
58 virtual bool isRespawnReady(
::Player const& player)
const = 0;
60 virtual ::std::pair<bool, ::std::optional<::SubChunkPos>>