FIRE-21576: Actually prevent TPs via landmark and location as well since that possible as well if somebody is quick enough

master
Ansariel 2018-06-17 11:34:06 +02:00
parent 89b3bdd59c
commit 0ba1a4578b
2 changed files with 18 additions and 7 deletions

View File

@ -4713,6 +4713,13 @@ void LLAgent::teleportRequest(const U64& region_handle, const LLVector3& pos_loc
// Landmark ID = LLUUID::null means teleport home
void LLAgent::teleportViaLandmark(const LLUUID& landmark_asset_id)
{
// <FS:Ansariel> FIRE-21576: Prevent TPing home while still logging in if RLVa is enabled
if (RlvActions::isRlvEnabled() && LLStartUp::getStartupState() < STATE_STARTED)
{
return;
}
// </FS:Ansariel>
// [RLVa:KB] - Checked: 2010-08-22 (RLVa-1.2.1a) | Modified: RLVa-1.2.1a
// NOTE: we'll allow teleporting home unless both @tplm=n *and* @tploc=n restricted
if ( (rlv_handler_t::isEnabled()) &&
@ -4828,6 +4835,11 @@ void LLAgent::teleportViaLocation(const LLVector3d& pos_global)
// [RLVa:KB] - Checked: RLVa-2.0.0
if ( (RlvActions::isRlvEnabled()) && (!RlvUtil::isForceTp()) )
{
if (LLStartUp::getStartupState() < STATE_STARTED)
{
return;
}
if ( (RlvActions::isLocalTp(pos_global)) ? !RlvActions::canTeleportToLocal(pos_global) : !RlvActions::canTeleportToLocation() )
{
RlvUtil::notifyBlocked(RLV_STRING_BLOCKED_TELEPORT);
@ -4908,6 +4920,11 @@ void LLAgent::teleportViaLocationLookAt(const LLVector3d& pos_global, const LLVe
{
if ( (RlvActions::isRlvEnabled()) && (!RlvUtil::isForceTp()) )
{
if (LLStartUp::getStartupState() < STATE_STARTED)
{
return;
}
if ( (RlvActions::isLocalTp(pos_global)) ? !RlvActions::canTeleportToLocal(pos_global) : !RlvActions::canTeleportToLocation() )
{
RlvUtil::notifyBlocked(RLV_STRING_BLOCKED_TELEPORT);

View File

@ -7054,13 +7054,7 @@ class LLWorldTeleportHome : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
// <FS:Ansariel> FIRE-21576: Prevent TPing home while still logging in if RLVa is enabled
//gAgent.teleportHome();
if (!rlv_handler_t::isEnabled() || LLStartUp::getStartupState() == STATE_STARTED)
{
gAgent.teleportHome();
}
// </FS:Ansariel>
gAgent.teleportHome();
return true;
}
};