aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs32
1 files changed, 30 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 8a98be7..0b787d8 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -639,6 +639,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
639 // 639 //
640 CheckThreatLevel(ThreatLevel.High, "osTeleportAgent"); 640 CheckThreatLevel(ThreatLevel.High, "osTeleportAgent");
641 641
642 TeleportAgent(agent, regionName, position, lookat);
643 }
644
645 private void TeleportAgent(string agent, string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
646 {
642 m_host.AddScriptLPS(1); 647 m_host.AddScriptLPS(1);
643 UUID agentId = new UUID(); 648 UUID agentId = new UUID();
644 if (UUID.TryParse(agent, out agentId)) 649 if (UUID.TryParse(agent, out agentId))
@@ -651,7 +656,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
651 == World.LandChannel.GetLandObject( 656 == World.LandChannel.GetLandObject(
652 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) 657 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID)
653 { 658 {
654
655 // Check for hostname , attempt to make a hglink 659 // Check for hostname , attempt to make a hglink
656 // and convert the regionName to the target region 660 // and convert the regionName to the target region
657 if (regionName.Contains(".") && regionName.Contains(":")) 661 if (regionName.Contains(".") && regionName.Contains(":"))
@@ -674,13 +678,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
674 } 678 }
675 } 679 }
676 680
677 // Teleport functions
678 public void osTeleportAgent(string agent, int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat) 681 public void osTeleportAgent(string agent, int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
679 { 682 {
680 // High because there is no security check. High griefer potential 683 // High because there is no security check. High griefer potential
681 // 684 //
682 CheckThreatLevel(ThreatLevel.High, "osTeleportAgent"); 685 CheckThreatLevel(ThreatLevel.High, "osTeleportAgent");
683 686
687 TeleportAgent(agent, regionX, regionY, position, lookat);
688 }
689
690 private void TeleportAgent(string agent, int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
691 {
684 ulong regionHandle = Util.UIntsToLong(((uint)regionX * (uint)Constants.RegionSize), ((uint)regionY * (uint)Constants.RegionSize)); 692 ulong regionHandle = Util.UIntsToLong(((uint)regionX * (uint)Constants.RegionSize), ((uint)regionY * (uint)Constants.RegionSize));
685 693
686 m_host.AddScriptLPS(1); 694 m_host.AddScriptLPS(1);
@@ -709,6 +717,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
709 osTeleportAgent(agent, World.RegionInfo.RegionName, position, lookat); 717 osTeleportAgent(agent, World.RegionInfo.RegionName, position, lookat);
710 } 718 }
711 719
720 public void osTeleportOwner(string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
721 {
722 // Threat level None because this is what can already be done with the World Map in the viewer
723 CheckThreatLevel(ThreatLevel.None, "osTeleportOwner");
724
725 TeleportAgent(m_host.OwnerID.ToString(), regionName, position, lookat);
726 }
727
728 public void osTeleportOwner(LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
729 {
730 osTeleportOwner(World.RegionInfo.RegionName, position, lookat);
731 }
732
733 public void osTeleportOwner(int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
734 {
735 CheckThreatLevel(ThreatLevel.None, "osTeleportOwner");
736
737 TeleportAgent(m_host.OwnerID.ToString(), regionX, regionY, position, lookat);
738 }
739
712 // Functions that get information from the agent itself. 740 // Functions that get information from the agent itself.
713 // 741 //
714 // osGetAgentIP - this is used to determine the IP address of 742 // osGetAgentIP - this is used to determine the IP address of