aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs27
1 files changed, 19 insertions, 8 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index b333b55..45a7c96 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3769,10 +3769,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3769 public void llCreateLink(string target, int parent) 3769 public void llCreateLink(string target, int parent)
3770 { 3770 {
3771 m_host.AddScriptLPS(1); 3771 m_host.AddScriptLPS(1);
3772 UUID targetID;
3773
3774 if (!UUID.TryParse(target, out targetID))
3775 return;
3776 3772
3777 if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_CHANGE_LINKS) == 0 3773 if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_CHANGE_LINKS) == 0
3778 && !m_automaticLinkPermission) 3774 && !m_automaticLinkPermission)
@@ -3781,10 +3777,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3781 return; 3777 return;
3782 } 3778 }
3783 3779
3784 IClientAPI client = null; 3780 CreateLink(target, parent);
3785 ScenePresence sp = World.GetScenePresence(m_item.PermsGranter); 3781 }
3786 if (sp != null) 3782
3787 client = sp.ControllingClient; 3783 public void CreateLink(string target, int parent)
3784 {
3785 UUID targetID;
3786
3787 if (!UUID.TryParse(target, out targetID))
3788 return;
3788 3789
3789 SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)targetID); 3790 SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)targetID);
3790 3791
@@ -3819,6 +3820,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3819 parentPrim.HasGroupChanged = true; 3820 parentPrim.HasGroupChanged = true;
3820 parentPrim.ScheduleGroupForFullUpdate(); 3821 parentPrim.ScheduleGroupForFullUpdate();
3821 3822
3823 IClientAPI client = null;
3824 ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
3825 if (sp != null)
3826 client = sp.ControllingClient;
3827
3822 if (client != null) 3828 if (client != null)
3823 parentPrim.SendPropertiesToClient(client); 3829 parentPrim.SendPropertiesToClient(client);
3824 3830
@@ -3836,6 +3842,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3836 return; 3842 return;
3837 } 3843 }
3838 3844
3845 BreakLink(linknum);
3846 }
3847
3848 public void BreakLink(int linknum)
3849 {
3839 if (linknum < ScriptBaseClass.LINK_THIS) 3850 if (linknum < ScriptBaseClass.LINK_THIS)
3840 return; 3851 return;
3841 3852