diff --git a/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs b/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs index 9756649537..0cdc6d8385 100644 --- a/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs +++ b/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs @@ -279,10 +279,9 @@ namespace OpenSim.Region.ScriptEngine.Yengine } MainConsole.Instance.Commands.AddCommand("yeng", false, - "yeng", - "yeng [...|help|...] ...", + "yeng", "yeng [...|help|...] ...", "Run YEngine script engine commands", - RunTest); + RunConsoleCmds); TraceCalls("[YEngine]: Initialize successful"); } @@ -765,7 +764,7 @@ namespace OpenSim.Region.ScriptEngine.Yengine TraceCalls("[YEngine]: YEngine.Close()"); } - private void RunTest(string module, string[] args) + private void RunConsoleCmds(string module, string[] args) { if(args.Length < 2) { @@ -773,9 +772,29 @@ namespace OpenSim.Region.ScriptEngine.Yengine return; } - m_log.Info("[YEngine]: " + m_Scene.RegionInfo.RegionName); + Scene consoleScene = SceneManager.Instance.CurrentOrFirstScene; + bool SelectedRegion = (consoleScene != null && consoleScene.RegionInfo.RegionID == m_Scene.RegionInfo.RegionID); + string cmd = args[1].ToLower(); + int firstPerRegionarg = args.Length >= 3 && args[2].Equals("allregions",StringComparison.InvariantCultureIgnoreCase) ? 3 : 2; + if (!SelectedRegion) + { + if(firstPerRegionarg < 3) + return; - switch(args[1]) + switch (cmd) + { + case "reset": + case "resume": + case "suspend": + break; + default: + return; + } + } + + m_log.InfoFormat("[YEngine] ****Region: {0}", m_Scene.RegionInfo.RegionName); + + switch(cmd) { case "cvv": m_log.InfoFormat("[YEngine]: compiled version value = {0}", @@ -784,32 +803,32 @@ namespace OpenSim.Region.ScriptEngine.Yengine case "help": case "?": - m_log.Info("[YEngine]: yeng reset [-help ...]"); - m_log.Info("[YEngine]: yeng resume - resume script processing"); - m_log.Info("[YEngine]: yeng suspend - suspend script processing"); + m_log.Info("[YEngine]: yeng reset [allregions] | [-help ...]"); + m_log.Info("[YEngine]: yeng resume [allregions] - resume script processing"); + m_log.Info("[YEngine]: yeng suspend [allregions] - suspend script processing"); m_log.Info("[YEngine]: yeng ls [-help ...]"); m_log.Info("[YEngine]: yeng cvv - show compiler version value"); - m_log.Info("[YEngine]: yeng mvv [] - show migration version value"); + //m_log.Info("[YEngine]: yeng mvv [] - show migration version value"); + //m_log.Info("[YEngine]: yeng mvv - show migration version value"); m_log.Info("[YEngine]: yeng tracecalls [yes | no]"); m_log.Info("[YEngine]: yeng verbose [yes | no]"); - m_log.Info("[YEngine]: yeng pev [-help ...] - post event"); + //m_log.Info("[YEngine]: yeng pev [-help ...] - post event"); break; case "ls": - XmrTestLs(args, 2); + XmrTestLs(args, firstPerRegionarg); break; case "mvv": - m_log.InfoFormat("[YEngine]: migration version value = {0}", - XMRInstance.migrationVersion); + m_log.InfoFormat("[YEngine]: migration version value = {0}", XMRInstance.migrationVersion); break; - case "pev": - XmrTestPev(args, 2); - break; + //case "pev": + // XmrTestPev(args, 2); + // break; case "reset": - XmrTestReset(args, 2); + XmrTestReset(args, firstPerRegionarg); break; case "resume": @@ -823,19 +842,19 @@ namespace OpenSim.Region.ScriptEngine.Yengine break; case "tracecalls": - if(args.Length > 2) - m_TraceCalls = (args[2][0] & 1) != 0; + if(args.Length > firstPerRegionarg) + m_TraceCalls = args[firstPerRegionarg].StartsWith("y", StringComparison.InvariantCultureIgnoreCase); m_log.Info("[YEngine]: tracecalls " + (m_TraceCalls ? "yes" : "no")); break; case "verbose": - if(args.Length > 2) - m_Verbose = (args[2][0] & 1) != 0; + if(args.Length > firstPerRegionarg) + m_Verbose = args[firstPerRegionarg].StartsWith("y", StringComparison.InvariantCultureIgnoreCase); m_log.Info("[YEngine]: verbose " + (m_Verbose ? "yes" : "no")); break; default: - m_log.Error("[YEngine]: unknown command " + args[1] + ", try 'yeng help'"); + m_log.ErrorFormat("[YEngine]: unknown command \"{0}\", try 'yeng help'", cmd); break; } } @@ -1306,7 +1325,7 @@ namespace OpenSim.Region.ScriptEngine.Yengine instance.m_IState = XMRInstState.CONSTRUCT; instance.m_Running = item.ScriptRunning; - lock(m_InstancesDict) + lock (m_InstancesDict) { m_LockedDict = "RegisterInstance";