Fixed: during a teleport we always sent the error "The teleport destination could not be found" to the client. This happened on both success and failure.

On successful teleports this error wasn't actually shown to the user. But on failed teleports this error could hide the true cause of the failure. For example, attempting to use a Landmark that's more than 4095 regions away would result in two warnings appearing in the viewer: "Region too far" and "Destination could not be found". The second message hid the first one, so it wasn't obvious to the user what is actually the problem.
0.8.0.3
Oren Hurvitz 2014-04-06 17:36:46 +03:00
parent abe0f4a088
commit f3508649f5
2 changed files with 1 additions and 7 deletions

View File

@ -666,7 +666,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
m_log.DebugFormat( m_log.DebugFormat(
"[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2} ({3}) {4}/{5} - agent is already in transit.", "[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2} ({3}) {4}/{5} - agent is already in transit.",
sp.Name, sp.UUID, reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position); sp.Name, sp.UUID, reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position);
sp.ControllingClient.SendTeleportFailed("Agent is already in transit.");
return; return;
} }

View File

@ -524,8 +524,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
{ {
((Scene)(remoteClient.Scene)).RequestTeleportLocation(remoteClient, info.RegionHandle, lm.Position, ((Scene)(remoteClient.Scene)).RequestTeleportLocation(remoteClient, info.RegionHandle, lm.Position,
Vector3.Zero, (uint)(Constants.TeleportFlags.SetLastToTarget | Constants.TeleportFlags.ViaLandmark)); Vector3.Zero, (uint)(Constants.TeleportFlags.SetLastToTarget | Constants.TeleportFlags.ViaLandmark));
return;
} }
else else
{ {
@ -561,13 +559,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
else else
{ {
remoteClient.SendTeleportFailed(message); remoteClient.SendTeleportFailed(message);
return;
} }
} }
// can't find the region: Tell viewer and abort
remoteClient.SendTeleportFailed("The teleport destination could not be found.");
} }
#endregion #endregion