diff options
Thanks BlueWall for a patch that adds Hypergrid dynamic linking to osTeleportAgent. Fixes mantis #3408.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 491a971..18e97da 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -38,6 +38,7 @@ using OpenSim.Framework; | |||
38 | using OpenSim.Framework.Console; | 38 | using OpenSim.Framework.Console; |
39 | using OpenSim.Region.Framework.Interfaces; | 39 | using OpenSim.Region.Framework.Interfaces; |
40 | using OpenSim.Region.Framework.Scenes; | 40 | using OpenSim.Region.Framework.Scenes; |
41 | using OpenSim.Region.Framework.Scenes.Hypergrid; | ||
41 | using OpenSim.Region.ScriptEngine.Shared; | 42 | using OpenSim.Region.ScriptEngine.Shared; |
42 | using OpenSim.Region.ScriptEngine.Shared.Api.Plugins; | 43 | using OpenSim.Region.ScriptEngine.Shared.Api.Plugins; |
43 | using OpenSim.Region.ScriptEngine.Shared.ScriptBase; | 44 | using OpenSim.Region.ScriptEngine.Shared.ScriptBase; |
@@ -506,6 +507,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
506 | == World.LandChannel.GetLandObject( | 507 | == World.LandChannel.GetLandObject( |
507 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).landData.OwnerID) | 508 | presence.AbsolutePosition.X, presence.AbsolutePosition.Y).landData.OwnerID) |
508 | { | 509 | { |
510 | |||
511 | // Check for hostname , attempt to make a hglink | ||
512 | // and convert the regionName to the target region | ||
513 | if ( regionName.Contains(".") && regionName.Contains(":")) | ||
514 | { | ||
515 | // Try to link the region | ||
516 | RegionInfo regInfo = HGHyperlink.TryLinkRegion(World, | ||
517 | presence.ControllingClient, | ||
518 | regionName); | ||
519 | // Get the region name | ||
520 | if (regInfo != null) | ||
521 | { | ||
522 | regionName = regInfo.RegionName; | ||
523 | } | ||
524 | else | ||
525 | { | ||
526 | // Might need to ping the client here in case of failure?? | ||
527 | } | ||
528 | } | ||
509 | presence.ControllingClient.SendTeleportLocationStart(); | 529 | presence.ControllingClient.SendTeleportLocationStart(); |
510 | World.RequestTeleportLocation(presence.ControllingClient, regionName, | 530 | World.RequestTeleportLocation(presence.ControllingClient, regionName, |
511 | new Vector3((float)position.x, (float)position.y, (float)position.z), | 531 | new Vector3((float)position.x, (float)position.y, (float)position.z), |