aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs17
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs14
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs13
3 files changed, 40 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs b/OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs
index 93ee4f8..1e7eb59 100644
--- a/OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs
+++ b/OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs
@@ -146,6 +146,23 @@ namespace OpenSim.Region.Environment
146 return buildEvent("TeleportFinish", body); 146 return buildEvent("TeleportFinish", body);
147 } 147 }
148 148
149 public static LLSD ScriptRunningReplyEvent(UUID objectID, UUID itemID, bool running, bool mono)
150 {
151 LLSDMap script = new LLSDMap();
152 script.Add("ObjectID", LLSD.FromUUID(objectID));
153 script.Add("ItemID", LLSD.FromUUID(itemID));
154 script.Add("Running", LLSD.FromBoolean(running));
155 script.Add("Mono", LLSD.FromBoolean(mono));
156
157 LLSDArray scriptArr = new LLSDArray();
158 scriptArr.Add(script);
159
160 LLSDMap body = new LLSDMap();
161 body.Add("Script", scriptArr);
162
163 return buildEvent("ScriptRunningReply", body);
164 }
165
149 public static LLSD KeepAliveEvent() 166 public static LLSD KeepAliveEvent()
150 { 167 {
151 return buildEvent("FAKEEVENT", new LLSDMap()); 168 return buildEvent("FAKEEVENT", new LLSDMap());
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
index 1c1d42f..d3269e1 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
@@ -32,6 +32,7 @@ using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Region.Interfaces; 33using OpenSim.Region.Interfaces;
34using OpenSim.Framework; 34using OpenSim.Framework;
35using OpenSim.Region.Environment;
35using OpenSim.Region.Environment.Interfaces; 36using OpenSim.Region.Environment.Interfaces;
36using OpenSim.Region.Environment.Scenes; 37using OpenSim.Region.Environment.Scenes;
37using OpenSim.Region.ScriptEngine.Interfaces; 38using OpenSim.Region.ScriptEngine.Interfaces;
@@ -369,8 +370,17 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
369 if (id == null) 370 if (id == null)
370 return; 371 return;
371 372
372 controllingClient.SendScriptRunningReply(objectID, itemID, 373 IEventQueue eq = World.RequestModuleInterface<IEventQueue>();
373 id.Running); 374 if (eq == null)
375 {
376 controllingClient.SendScriptRunningReply(objectID, itemID,
377 id.Running);
378 }
379 else
380 {
381 eq.Enqueue(EventQueueHelper.ScriptRunningReplyEvent(objectID, itemID, id.Running, true),
382 controllingClient.AgentId);
383 }
374 } 384 }
375 385
376 public IScriptApi GetApi(UUID itemID, string name) 386 public IScriptApi GetApi(UUID itemID, string name)
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 9b78d53..86dc824 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -972,8 +972,17 @@ namespace OpenSim.Region.ScriptEngine.XEngine
972 IScriptInstance instance = GetInstance(itemID); 972 IScriptInstance instance = GetInstance(itemID);
973 if (instance == null) 973 if (instance == null)
974 return; 974 return;
975 controllingClient.SendScriptRunningReply(objectID, itemID, 975 IEventQueue eq = World.RequestModuleInterface<IEventQueue>();
976 GetScriptState(itemID)); 976 if (eq == null)
977 {
978 controllingClient.SendScriptRunningReply(objectID, itemID,
979 GetScriptState(itemID));
980 }
981 else
982 {
983 eq.Enqueue(EventQueueHelper.ScriptRunningReplyEvent(objectID, itemID, GetScriptState(itemID), true),
984 controllingClient.AgentId);
985 }
977 } 986 }
978 } 987 }
979} 988}