From ecad9f9fd589f90d1c7a20faf14af0304804b616 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 19 Oct 2011 20:09:02 +0100 Subject: [PATCH] Add "show scripts" command to show all scripts currently known to the script engine in the current region. Also added synonym of "scripts show" --- .../Shared/Api/Implementation/LSL_Api.cs | 2 -- .../Region/ScriptEngine/XEngine/XEngine.cs | 28 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 54bb62ff79..b8e98784ca 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -2446,10 +2446,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// indices, and the tolerance for out-of-bound values, makes /// this more complicated than it might otherwise seem. /// - public LSL_String llGetSubString(string src, int start, int end) { - m_host.AddScriptLPS(1); // Normalize indices (if negative). diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 2a0ec379de..9f8ee1c99c 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -41,6 +41,7 @@ using log4net; using Nini.Config; using Amib.Threading; using OpenSim.Framework; +using OpenSim.Framework.Console; using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.ScriptEngine.Shared; @@ -265,6 +266,33 @@ namespace OpenSim.Region.ScriptEngine.XEngine OnScriptRemoved += m_XmlRpcRouter.ScriptRemoved; OnObjectRemoved += m_XmlRpcRouter.ObjectRemoved; } + + MainConsole.Instance.Commands.AddCommand( + "scripts", false, "scripts show", "scripts show", "Show script information", + "Show information on all scripts known to the script engine", HandleShowScripts); + + MainConsole.Instance.Commands.AddCommand( + "scripts", false, "show scripts", "show scripts", "Show script information", + "Synonym for scripts show command", HandleShowScripts); + } + + public void HandleShowScripts(string module, string[] cmdparams) + { + lock (m_Scripts) + { + MainConsole.Instance.OutputFormat( + "Showing {0} scripts in {1}", m_Scripts.Count, m_Scene.RegionInfo.RegionName); + + foreach (IScriptInstance instance in m_Scripts.Values) + { + SceneObjectPart sop = m_Scene.GetSceneObjectPart(instance.ObjectID); + + MainConsole.Instance.OutputFormat( + "{0}.{1}, script UUID {2}, prim UUID {3} @ {4}", + instance.PrimName, instance.ScriptName, instance.AssetID, instance.ObjectID, + sop.AbsolutePosition, m_Scene.RegionInfo.RegionName); + } + } } public void RemoveRegion(Scene scene)