diff options
Diffstat (limited to '')
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; | |||
32 | using Nini.Config; | 32 | using Nini.Config; |
33 | using OpenSim.Region.Interfaces; | 33 | using OpenSim.Region.Interfaces; |
34 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
35 | using OpenSim.Region.Environment; | ||
35 | using OpenSim.Region.Environment.Interfaces; | 36 | using OpenSim.Region.Environment.Interfaces; |
36 | using OpenSim.Region.Environment.Scenes; | 37 | using OpenSim.Region.Environment.Scenes; |
37 | using OpenSim.Region.ScriptEngine.Interfaces; | 38 | using 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 | } |