Fixed (mono-)script handling for SL viewer 1.21:
- Added two missing caps (UpdateScriptAgent, UpdateScriptTask) - Added one missing EventQueue event (ScriptRunningReply) - Changed DNE and XEngine to use this new event As we only use the mono engine anyway, the "Mono" checkbox is set by default but doesn't have any function.0.6.0-stable
parent
4bbc28e445
commit
ae9e38bf3f
|
@ -171,6 +171,8 @@ namespace OpenSim.Framework.Communications.Capabilities
|
||||||
m_capsHandlers["UpdateScriptAgentInventory"] = m_capsHandlers["UpdateNotecardAgentInventory"];
|
m_capsHandlers["UpdateScriptAgentInventory"] = m_capsHandlers["UpdateNotecardAgentInventory"];
|
||||||
m_capsHandlers["UpdateScriptTaskInventory"] =
|
m_capsHandlers["UpdateScriptTaskInventory"] =
|
||||||
new RestStreamHandler("POST", capsBase + m_notecardTaskUpdatePath, ScriptTaskInventory);
|
new RestStreamHandler("POST", capsBase + m_notecardTaskUpdatePath, ScriptTaskInventory);
|
||||||
|
m_capsHandlers["UpdateScriptAgent"] = m_capsHandlers["UpdateScriptAgentInventory"];
|
||||||
|
m_capsHandlers["UpdateScriptTask"] = m_capsHandlers["UpdateScriptTaskInventory"];
|
||||||
|
|
||||||
// justincc: I've disabled the CAPS service for now to fix problems with selecting textures, and
|
// justincc: I've disabled the CAPS service for now to fix problems with selecting textures, and
|
||||||
// subsequent inventory breakage, in the edit object pane (such as mantis 1085). This requires
|
// subsequent inventory breakage, in the edit object pane (such as mantis 1085). This requires
|
||||||
|
|
|
@ -146,6 +146,23 @@ namespace OpenSim.Region.Environment
|
||||||
return buildEvent("TeleportFinish", body);
|
return buildEvent("TeleportFinish", body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static LLSD ScriptRunningReplyEvent(UUID objectID, UUID itemID, bool running, bool mono)
|
||||||
|
{
|
||||||
|
LLSDMap script = new LLSDMap();
|
||||||
|
script.Add("ObjectID", LLSD.FromUUID(objectID));
|
||||||
|
script.Add("ItemID", LLSD.FromUUID(itemID));
|
||||||
|
script.Add("Running", LLSD.FromBoolean(running));
|
||||||
|
script.Add("Mono", LLSD.FromBoolean(mono));
|
||||||
|
|
||||||
|
LLSDArray scriptArr = new LLSDArray();
|
||||||
|
scriptArr.Add(script);
|
||||||
|
|
||||||
|
LLSDMap body = new LLSDMap();
|
||||||
|
body.Add("Script", scriptArr);
|
||||||
|
|
||||||
|
return buildEvent("ScriptRunningReply", body);
|
||||||
|
}
|
||||||
|
|
||||||
public static LLSD KeepAliveEvent()
|
public static LLSD KeepAliveEvent()
|
||||||
{
|
{
|
||||||
return buildEvent("FAKEEVENT", new LLSDMap());
|
return buildEvent("FAKEEVENT", new LLSDMap());
|
||||||
|
|
|
@ -32,6 +32,7 @@ using log4net;
|
||||||
using Nini.Config;
|
using Nini.Config;
|
||||||
using OpenSim.Region.Interfaces;
|
using OpenSim.Region.Interfaces;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
using OpenSim.Region.Environment;
|
||||||
using OpenSim.Region.Environment.Interfaces;
|
using OpenSim.Region.Environment.Interfaces;
|
||||||
using OpenSim.Region.Environment.Scenes;
|
using OpenSim.Region.Environment.Scenes;
|
||||||
using OpenSim.Region.ScriptEngine.Interfaces;
|
using OpenSim.Region.ScriptEngine.Interfaces;
|
||||||
|
@ -369,9 +370,18 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
||||||
if (id == null)
|
if (id == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
IEventQueue eq = World.RequestModuleInterface<IEventQueue>();
|
||||||
|
if (eq == null)
|
||||||
|
{
|
||||||
controllingClient.SendScriptRunningReply(objectID, itemID,
|
controllingClient.SendScriptRunningReply(objectID, itemID,
|
||||||
id.Running);
|
id.Running);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
eq.Enqueue(EventQueueHelper.ScriptRunningReplyEvent(objectID, itemID, id.Running, true),
|
||||||
|
controllingClient.AgentId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public IScriptApi GetApi(UUID itemID, string name)
|
public IScriptApi GetApi(UUID itemID, string name)
|
||||||
{
|
{
|
||||||
|
|
|
@ -972,8 +972,17 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
IScriptInstance instance = GetInstance(itemID);
|
IScriptInstance instance = GetInstance(itemID);
|
||||||
if (instance == null)
|
if (instance == null)
|
||||||
return;
|
return;
|
||||||
|
IEventQueue eq = World.RequestModuleInterface<IEventQueue>();
|
||||||
|
if (eq == null)
|
||||||
|
{
|
||||||
controllingClient.SendScriptRunningReply(objectID, itemID,
|
controllingClient.SendScriptRunningReply(objectID, itemID,
|
||||||
GetScriptState(itemID));
|
GetScriptState(itemID));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
eq.Enqueue(EventQueueHelper.ScriptRunningReplyEvent(objectID, itemID, GetScriptState(itemID), true),
|
||||||
|
controllingClient.AgentId);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue