diff --git a/src/content_sao.cpp b/src/content_sao.cpp index ed27de52f..c22e341a9 100644 --- a/src/content_sao.cpp +++ b/src/content_sao.cpp @@ -1370,34 +1370,12 @@ std::string PlayerSAO::getPropertyPacket() bool PlayerSAO::checkMovementCheat() { - if (m_is_singleplayer || + if (isAttached() || m_is_singleplayer || g_settings->getBool("disable_anticheat")) { m_last_good_position = m_base_position; return false; } - if (UnitSAO *parent = dynamic_cast(getParent())) { - v3f attachment_pos; - { - int parent_id; - std::string bone; - v3f attachment_rot; - getAttachment(&parent_id, &bone, &attachment_pos, &attachment_rot); - } - v3f parent_pos = parent->getBasePosition(); - f32 diff = m_base_position.getDistanceFromSQ(parent_pos) - attachment_pos.getLengthSQ(); - const f32 maxdiff = 4.0f * BS; // fair trade-off value for various latencies - - if (diff > maxdiff * maxdiff) { - setBasePosition(parent_pos); - actionstream << "Server: " << m_player->getName() - << " moved away from parent; diff=" << sqrtf(diff) / BS - << " resetting position." << std::endl; - return true; - } - // Player movement is locked to the entity. Skip further checks - return false; - } bool cheated = false; /* Check player movements