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.cs33
1 files changed, 33 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 ee95342..ead88d5 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -31,6 +31,7 @@ using System.Runtime.Remoting.Lifetime;
31using OpenMetaverse; 31using OpenMetaverse;
32using Nini.Config; 32using Nini.Config;
33using OpenSim; 33using OpenSim;
34using OpenSim.Framework;
34using OpenSim.Framework.Console; 35using OpenSim.Framework.Console;
35using OpenSim.Region.Environment.Interfaces; 36using OpenSim.Region.Environment.Interfaces;
36using OpenSim.Region.Environment.Scenes; 37using OpenSim.Region.Environment.Scenes;
@@ -41,6 +42,13 @@ using OpenSim.Region.ScriptEngine.Interfaces;
41using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces; 42using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
42using TPFlags = OpenSim.Framework.Constants.TeleportFlags; 43using TPFlags = OpenSim.Framework.Constants.TeleportFlags;
43 44
45using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
46using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
47using LSL_Key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
48using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
49using LSL_Rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
50using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
51using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
44 52
45namespace OpenSim.Region.ScriptEngine.Shared.Api 53namespace OpenSim.Region.ScriptEngine.Shared.Api
46{ 54{
@@ -91,6 +99,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
91 public class OSSL_Api : MarshalByRefObject, IOSSL_Api, IScriptApi 99 public class OSSL_Api : MarshalByRefObject, IOSSL_Api, IScriptApi
92 { 100 {
93 internal IEventReceiver m_ScriptEngine; 101 internal IEventReceiver m_ScriptEngine;
102 internal ILSL_Api m_LSL_Api; // get a reference to the LSL API so we can call methods housed there
94 internal SceneObjectPart m_host; 103 internal SceneObjectPart m_host;
95 internal uint m_localID; 104 internal uint m_localID;
96 internal UUID m_itemID; 105 internal UUID m_itemID;
@@ -106,6 +115,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
106 m_host = host; 115 m_host = host;
107 m_localID = localID; 116 m_localID = localID;
108 m_itemID = itemID; 117 m_itemID = itemID;
118
119
109 120
110 if (m_ScriptEngine.Config.GetBoolean("AllowOSFunctions", false)) 121 if (m_ScriptEngine.Config.GetBoolean("AllowOSFunctions", false))
111 m_OSFunctionsEnabled = true; 122 m_OSFunctionsEnabled = true;
@@ -932,5 +943,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
932 943
933 return jsondata; 944 return jsondata;
934 } 945 }
946
947 // send a message to to object identified by the given UUID, a script in the object must implement the dataserver function
948 // the dataserver function is passed the ID of the calling function and a string message
949 public void osMessageObject(LSL_Key objectUUID,string message)
950 {
951 CheckThreatLevel(ThreatLevel.Low,"osMessageObject");
952 m_host.AddScriptLPS(1);
953
954
955 object[] resobj = new object[] { new LSL_Types.LSLString(m_host.UUID.ToString()),new LSL_Types.LSLString(message) };
956
957 SceneObjectPart sceneOP = World.GetSceneObjectPart(new UUID(objectUUID));
958
959 m_ScriptEngine.PostObjectEvent(
960 sceneOP.LocalId, new EventParams(
961 "dataserver", resobj,
962 new DetectParams[0]));
963
964 }
965
935 } 966 }
967
968
936} 969}