mirror of
https://github.com/opensim/opensim.git
synced 2026-05-15 03:15:41 +08:00
mantis 8936: make yeng comand work only on selected (or first that did load, like other comands) region. Add option 'allregions' to some. With this option those comands run on all regions. Do 'yeng help' to list comands. Ofc this assuming i made no typroe/bug ;)
This commit is contained in:
@@ -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 [<newvalue>] - show migration version value");
|
||||
//m_log.Info("[YEngine]: yeng mvv [<newvalue>] - 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";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user