aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Application/OpenSimMain.cs
diff options
context:
space:
mode:
authorMW2007-09-04 13:43:56 +0000
committerMW2007-09-04 13:43:56 +0000
commitbfd36e2e836f92539e68bba077104d5016c5bf8b (patch)
tree36491a61df9cb936500cf349fa7a1ac377b2f350 /OpenSim/Region/Application/OpenSimMain.cs
parentreverting opensim.ini to proper default state (diff)
downloadopensim-SC-bfd36e2e836f92539e68bba077104d5016c5bf8b.zip
opensim-SC-bfd36e2e836f92539e68bba077104d5016c5bf8b.tar.gz
opensim-SC-bfd36e2e836f92539e68bba077104d5016c5bf8b.tar.bz2
opensim-SC-bfd36e2e836f92539e68bba077104d5016c5bf8b.tar.xz
Some work on Module loading/management.
Some more modules templates classes (hoping that someone will pick some of these and work on implementing them). Early version of the "Dynamic Texture Module", although currently there are no render modules included (so not really functional without them). Added osSetDynamicTextureURL script function, for attaching a dynamic texture to a prim. Some work on the console command handling. Added "change-region <regionname>" and "exit-region" so that after the use of change-region, the commands entered will apply to that region only. Then use exit-region to return to the top level (so commands then function as they did before and either apply to all regions or to the first region) (Note: this hasn't been tested very much)
Diffstat (limited to 'OpenSim/Region/Application/OpenSimMain.cs')
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs266
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;
45using OpenSim.Region.Communications.OGS1; 45using OpenSim.Region.Communications.OGS1;
46using OpenSim.Framework.Communications.Caches; 46using OpenSim.Framework.Communications.Caches;
47using OpenSim.Region.Environment.Scenes; 47using OpenSim.Region.Environment.Scenes;
48using OpenSim.Region.Environment.Modules;
48using OpenSim.Region.Environment; 49using OpenSim.Region.Environment;
49using System.Text; 50using System.Text;
50using System.Collections.Generic; 51using 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