diff options
Diffstat (limited to 'OpenSim/Region/Application/OpenSimMain.cs')
-rw-r--r-- | OpenSim/Region/Application/OpenSimMain.cs | 266 |
1 files changed, 152 insertions, 114 deletions
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index 45032fc..05d79dd 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs | |||
@@ -45,6 +45,7 @@ using OpenSim.Region.Communications.Local; | |||
45 | using OpenSim.Region.Communications.OGS1; | 45 | using OpenSim.Region.Communications.OGS1; |
46 | using OpenSim.Framework.Communications.Caches; | 46 | using OpenSim.Framework.Communications.Caches; |
47 | using OpenSim.Region.Environment.Scenes; | 47 | using OpenSim.Region.Environment.Scenes; |
48 | using OpenSim.Region.Environment.Modules; | ||
48 | using OpenSim.Region.Environment; | 49 | using OpenSim.Region.Environment; |
49 | using System.Text; | 50 | using System.Text; |
50 | using System.Collections.Generic; | 51 | using System.Collections.Generic; |
@@ -77,11 +78,17 @@ namespace OpenSim | |||
77 | private string m_logFilename = ("region-console.log"); | 78 | private string m_logFilename = ("region-console.log"); |
78 | private bool m_permissions = false; | 79 | private bool m_permissions = false; |
79 | 80 | ||
81 | private bool m_DefaultModules = true; | ||
82 | private string m_exceptModules = ""; | ||
83 | private bool m_DefaultSharedModules = true; | ||
84 | private string m_exceptSharedModules = ""; | ||
85 | |||
80 | private bool standaloneAuthenticate = false; | 86 | private bool standaloneAuthenticate = false; |
81 | private string standaloneWelcomeMessage = null; | 87 | private string standaloneWelcomeMessage = null; |
82 | private string standaloneInventoryPlugin = ""; | 88 | private string standaloneInventoryPlugin = ""; |
83 | private string standaloneUserPlugin = ""; | 89 | private string standaloneUserPlugin = ""; |
84 | 90 | ||
91 | private Scene m_consoleRegion = null; | ||
85 | 92 | ||
86 | public ConsoleCommand CreateAccount = null; | 93 | public ConsoleCommand CreateAccount = null; |
87 | 94 | ||
@@ -104,12 +111,10 @@ namespace OpenSim | |||
104 | } | 111 | } |
105 | 112 | ||
106 | ReadConfigSettings(startupSource); | 113 | ReadConfigSettings(startupSource); |
107 | |||
108 | } | 114 | } |
109 | 115 | ||
110 | protected void ReadConfigSettings(IConfigSource configSource) | 116 | protected void ReadConfigSettings(IConfigSource configSource) |
111 | { | 117 | { |
112 | |||
113 | m_networkServersInfo = new NetworkServersInfo(); | 118 | m_networkServersInfo = new NetworkServersInfo(); |
114 | m_sandbox = !configSource.Configs["Startup"].GetBoolean("gridmode", false); | 119 | m_sandbox = !configSource.Configs["Startup"].GetBoolean("gridmode", false); |
115 | m_physicsEngine = configSource.Configs["Startup"].GetString("physics", "basicphysics"); | 120 | m_physicsEngine = configSource.Configs["Startup"].GetString("physics", "basicphysics"); |
@@ -122,6 +127,11 @@ namespace OpenSim | |||
122 | 127 | ||
123 | m_scriptEngine = configSource.Configs["Startup"].GetString("script_engine", "DotNetEngine"); | 128 | m_scriptEngine = configSource.Configs["Startup"].GetString("script_engine", "DotNetEngine"); |
124 | 129 | ||
130 | m_DefaultModules = configSource.Configs["Startup"].GetBoolean("default_modules", true); | ||
131 | m_DefaultSharedModules = configSource.Configs["Startup"].GetBoolean("default_shared_modules", true); | ||
132 | m_exceptModules = configSource.Configs["Startup"].GetString("except_modules", ""); | ||
133 | m_exceptSharedModules = configSource.Configs["Startup"].GetString("except_shared_modules", ""); | ||
134 | |||
125 | standaloneAuthenticate = configSource.Configs["StandAlone"].GetBoolean("accounts_authenticate", false); | 135 | standaloneAuthenticate = configSource.Configs["StandAlone"].GetBoolean("accounts_authenticate", false); |
126 | standaloneWelcomeMessage = configSource.Configs["StandAlone"].GetString("welcome_message", "Welcome to OpenSim"); | 136 | standaloneWelcomeMessage = configSource.Configs["StandAlone"].GetString("welcome_message", "Welcome to OpenSim"); |
127 | standaloneInventoryPlugin = configSource.Configs["StandAlone"].GetString("inventory_plugin", "OpenSim.Framework.Data.SQLite.dll"); | 137 | standaloneInventoryPlugin = configSource.Configs["StandAlone"].GetString("inventory_plugin", "OpenSim.Framework.Data.SQLite.dll"); |
@@ -178,6 +188,8 @@ namespace OpenSim | |||
178 | } | 188 | } |
179 | 189 | ||
180 | m_moduleLoader = new ModuleLoader(); | 190 | m_moduleLoader = new ModuleLoader(); |
191 | MainLog.Instance.Verbose("Loading Shared Modules"); | ||
192 | m_moduleLoader.LoadDefaultSharedModules(m_exceptSharedModules); | ||
181 | 193 | ||
182 | // Load all script engines found | 194 | // Load all script engines found |
183 | OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader ScriptEngineLoader = new OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader(m_log); | 195 | OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader ScriptEngineLoader = new OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader(m_log); |
@@ -191,6 +203,10 @@ namespace OpenSim | |||
191 | UDPServer udpServer; | 203 | UDPServer udpServer; |
192 | Scene scene = SetupScene(regionInfo, out udpServer); | 204 | Scene scene = SetupScene(regionInfo, out udpServer); |
193 | 205 | ||
206 | m_moduleLoader.InitialiseSharedModules(scene); | ||
207 | MainLog.Instance.Verbose("Loading Region's Modules"); | ||
208 | m_moduleLoader.CreateDefaultModules(scene, m_exceptModules); | ||
209 | scene.SetModuleInterfaces(); | ||
194 | 210 | ||
195 | // Check if we have a script engine to load | 211 | // Check if we have a script engine to load |
196 | if (m_scriptEngine != null && m_scriptEngine != "") | 212 | if (m_scriptEngine != null && m_scriptEngine != "") |
@@ -211,6 +227,9 @@ namespace OpenSim | |||
211 | m_regionData.Add(regionInfo); | 227 | m_regionData.Add(regionInfo); |
212 | } | 228 | } |
213 | 229 | ||
230 | m_moduleLoader.PostInitialise(); | ||
231 | m_moduleLoader.ClearCache(); | ||
232 | |||
214 | // Start UDP servers | 233 | // Start UDP servers |
215 | for (int i = 0; i < m_udpServers.Count; i++) | 234 | for (int i = 0; i < m_udpServers.Count; i++) |
216 | { | 235 | { |
@@ -352,135 +371,154 @@ namespace OpenSim | |||
352 | /// <param name="cmdparams">Additional arguments passed to the command</param> | 371 | /// <param name="cmdparams">Additional arguments passed to the command</param> |
353 | public void RunCmd(string command, string[] cmdparams) | 372 | public void RunCmd(string command, string[] cmdparams) |
354 | { | 373 | { |
355 | switch (command) | 374 | if ((m_consoleRegion == null) || (command == "exit-region")) |
356 | { | 375 | { |
357 | case "help": | 376 | switch (command) |
358 | m_log.Error("alert - send alert to a designated user or all users."); | 377 | { |
359 | m_log.Error(" alert [First] [Last] [Message] - send an alert to a user. Case sensitive."); | 378 | case "help": |
360 | m_log.Error(" alert general [Message] - send an alert to all users."); | 379 | m_log.Error("alert - send alert to a designated user or all users."); |
361 | m_log.Error("backup - trigger a simulator backup"); | 380 | m_log.Error(" alert [First] [Last] [Message] - send an alert to a user. Case sensitive."); |
362 | m_log.Error("load-xml [filename] - load prims from XML"); | 381 | m_log.Error(" alert general [Message] - send an alert to all users."); |
363 | m_log.Error("save-xml [filename] - save prims to XML"); | 382 | m_log.Error("backup - trigger a simulator backup"); |
364 | m_log.Error("script - manually trigger scripts? or script commands?"); | 383 | m_log.Error("load-xml [filename] - load prims from XML"); |
365 | m_log.Error("show uptime - show simulator startup and uptime."); | 384 | m_log.Error("save-xml [filename] - save prims to XML"); |
366 | m_log.Error("show users - show info about connected users."); | 385 | m_log.Error("script - manually trigger scripts? or script commands?"); |
367 | m_log.Error("shutdown - disconnect all clients and shutdown."); | 386 | m_log.Error("show uptime - show simulator startup and uptime."); |
368 | m_log.Error("terrain help - show help for terrain commands."); | 387 | m_log.Error("show users - show info about connected users."); |
369 | m_log.Error("quit - equivalent to shutdown."); | 388 | m_log.Error("shutdown - disconnect all clients and shutdown."); |
370 | break; | 389 | m_log.Error("terrain help - show help for terrain commands."); |
371 | 390 | m_log.Error("quit - equivalent to shutdown."); | |
372 | case "show": | 391 | break; |
373 | if (cmdparams.Length > 0) | 392 | |
374 | { | 393 | case "show": |
375 | Show(cmdparams[0]); | 394 | if (cmdparams.Length > 0) |
376 | } | 395 | { |
377 | break; | 396 | Show(cmdparams[0]); |
378 | 397 | } | |
379 | case "save-xml": | 398 | break; |
380 | if (cmdparams.Length > 0) | ||
381 | { | ||
382 | m_localScenes[0].SavePrimsToXml(cmdparams[0]); | ||
383 | } | ||
384 | else | ||
385 | { | ||
386 | m_localScenes[0].SavePrimsToXml("test.xml"); | ||
387 | } | ||
388 | break; | ||
389 | 399 | ||
390 | case "load-xml": | 400 | case "save-xml": |
391 | if (cmdparams.Length > 0) | 401 | if (cmdparams.Length > 0) |
392 | { | 402 | { |
393 | m_localScenes[0].LoadPrimsFromXml(cmdparams[0]); | 403 | m_localScenes[0].SavePrimsToXml(cmdparams[0]); |
394 | } | 404 | } |
395 | else | 405 | else |
396 | { | 406 | { |
397 | m_localScenes[0].LoadPrimsFromXml("test.xml"); | 407 | m_localScenes[0].SavePrimsToXml("test.xml"); |
398 | } | 408 | } |
399 | break; | 409 | break; |
400 | 410 | ||
401 | case "terrain": | 411 | case "load-xml": |
402 | string result = ""; | 412 | if (cmdparams.Length > 0) |
403 | foreach (Scene scene in m_localScenes) | ||
404 | { | ||
405 | if (!scene.Terrain.RunTerrainCmd(cmdparams, ref result, scene.RegionInfo.RegionName)) | ||
406 | { | 413 | { |
407 | m_log.Error(result); | 414 | m_localScenes[0].LoadPrimsFromXml(cmdparams[0]); |
408 | } | 415 | } |
409 | } | 416 | else |
410 | break; | ||
411 | case "terrain-sim": | ||
412 | string result2 = ""; | ||
413 | foreach (Scene scene in m_localScenes) | ||
414 | { | ||
415 | if (scene.RegionInfo.RegionName.ToLower() == cmdparams[0].ToLower()) | ||
416 | { | 417 | { |
417 | string[] tmpCmdparams = new string[cmdparams.Length - 1]; | 418 | m_localScenes[0].LoadPrimsFromXml("test.xml"); |
418 | cmdparams.CopyTo(tmpCmdparams, 1); | 419 | } |
420 | break; | ||
419 | 421 | ||
420 | if (!scene.Terrain.RunTerrainCmd(tmpCmdparams, ref result2, scene.RegionInfo.RegionName)) | 422 | case "terrain": |
423 | string result = ""; | ||
424 | foreach (Scene scene in m_localScenes) | ||
425 | { | ||
426 | if (!scene.Terrain.RunTerrainCmd(cmdparams, ref result, scene.RegionInfo.RegionName)) | ||
421 | { | 427 | { |
422 | m_log.Error(result2); | 428 | m_log.Error(result); |
423 | } | 429 | } |
424 | } | 430 | } |
425 | } | 431 | break; |
426 | break; | 432 | case "terrain-sim": |
427 | case "script": | 433 | string result2 = ""; |
428 | foreach (Scene scene in m_localScenes) | 434 | foreach (Scene scene in m_localScenes) |
429 | { | 435 | { |
430 | scene.SendCommandToScripts(cmdparams); | 436 | if (scene.RegionInfo.RegionName.ToLower() == cmdparams[0].ToLower()) |
431 | } | 437 | { |
432 | break; | 438 | string[] tmpCmdparams = new string[cmdparams.Length - 1]; |
439 | cmdparams.CopyTo(tmpCmdparams, 1); | ||
433 | 440 | ||
434 | case "command-script": | 441 | if (!scene.Terrain.RunTerrainCmd(tmpCmdparams, ref result2, scene.RegionInfo.RegionName)) |
435 | if (cmdparams.Length > 0) | 442 | { |
436 | { | 443 | m_log.Error(result2); |
437 | RunCommandScript(cmdparams[0]); | 444 | } |
438 | } | 445 | } |
439 | break; | 446 | } |
447 | break; | ||
448 | case "script": | ||
449 | foreach (Scene scene in m_localScenes) | ||
450 | { | ||
451 | scene.SendCommandToScripts(cmdparams); | ||
452 | } | ||
453 | break; | ||
440 | 454 | ||
441 | case "permissions": | 455 | case "command-script": |
442 | // Treats each user as a super-admin when disabled | 456 | if (cmdparams.Length > 0) |
443 | foreach (Scene scene in m_localScenes) | 457 | { |
444 | { | 458 | RunCommandScript(cmdparams[0]); |
445 | if (Convert.ToBoolean(cmdparams[0])) | 459 | } |
446 | scene.PermissionsMngr.EnablePermissions(); | 460 | break; |
447 | else | ||
448 | scene.PermissionsMngr.DisablePermissions(); | ||
449 | } | ||
450 | break; | ||
451 | 461 | ||
452 | case "backup": | 462 | case "permissions": |
453 | foreach (Scene scene in m_localScenes) | 463 | // Treats each user as a super-admin when disabled |
454 | { | 464 | foreach (Scene scene in m_localScenes) |
455 | scene.Backup(); | 465 | { |
456 | } | 466 | if (Convert.ToBoolean(cmdparams[0])) |
457 | break; | 467 | scene.PermissionsMngr.EnablePermissions(); |
468 | else | ||
469 | scene.PermissionsMngr.DisablePermissions(); | ||
470 | } | ||
471 | break; | ||
458 | 472 | ||
459 | case "alert": | 473 | case "backup": |
460 | foreach (Scene scene in m_localScenes) | 474 | foreach (Scene scene in m_localScenes) |
461 | { | 475 | { |
462 | scene.HandleAlertCommand(cmdparams); | 476 | scene.Backup(); |
463 | } | 477 | } |
464 | break; | 478 | break; |
465 | 479 | ||
466 | case "create": | 480 | case "alert": |
467 | if (CreateAccount != null) | 481 | foreach (Scene scene in m_localScenes) |
468 | { | 482 | { |
469 | CreateAccount(cmdparams); | 483 | scene.HandleAlertCommand(cmdparams); |
470 | } | 484 | } |
471 | break; | 485 | break; |
472 | 486 | ||
473 | case "set-time": | 487 | case "create": |
474 | break; | 488 | if (CreateAccount != null) |
489 | { | ||
490 | CreateAccount(cmdparams); | ||
491 | } | ||
492 | break; | ||
475 | 493 | ||
476 | case "quit": | 494 | case "quit": |
477 | case "shutdown": | 495 | case "shutdown": |
478 | Shutdown(); | 496 | Shutdown(); |
479 | break; | 497 | break; |
480 | 498 | ||
481 | default: | 499 | case "change-region": |
482 | m_log.Error("Unknown command"); | 500 | foreach (Scene scene in m_localScenes) |
483 | break; | 501 | { |
502 | if (scene.RegionInfo.RegionName.ToLower() == cmdparams[0].ToLower()) | ||
503 | { | ||
504 | m_consoleRegion = scene; | ||
505 | } | ||
506 | } | ||
507 | break; | ||
508 | |||
509 | case "exit-region": | ||
510 | m_consoleRegion = null; | ||
511 | break; | ||
512 | |||
513 | default: | ||
514 | m_log.Error("Unknown command"); | ||
515 | break; | ||
516 | } | ||
517 | } | ||
518 | else | ||
519 | { | ||
520 | //let the scene/region handle the command directly. | ||
521 | m_consoleRegion.ProcessConsoleCmd(command, cmdparams); | ||
484 | } | 522 | } |
485 | } | 523 | } |
486 | 524 | ||