diff options
Diffstat (limited to 'OpenSim/Region/Application')
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 121 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSimBase.cs | 159 |
2 files changed, 109 insertions, 171 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 6255515..4c4abb6 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -35,6 +35,7 @@ using System.Text; | |||
35 | using System.Text.RegularExpressions; | 35 | using System.Text.RegularExpressions; |
36 | using System.Timers; | 36 | using System.Timers; |
37 | using log4net; | 37 | using log4net; |
38 | using NDesk.Options; | ||
38 | using Nini.Config; | 39 | using Nini.Config; |
39 | using OpenMetaverse; | 40 | using OpenMetaverse; |
40 | using OpenSim.Framework; | 41 | using OpenSim.Framework; |
@@ -253,8 +254,14 @@ namespace OpenSim | |||
253 | m_console.Commands.AddCommand("Debug", false, "debug teleport", "debug teleport", "Toggle teleport route debugging", Debug); | 254 | m_console.Commands.AddCommand("Debug", false, "debug teleport", "debug teleport", "Toggle teleport route debugging", Debug); |
254 | 255 | ||
255 | m_console.Commands.AddCommand("Debug", false, "debug scene", | 256 | m_console.Commands.AddCommand("Debug", false, "debug scene", |
256 | "debug scene <scripting> <collisions> <physics>", | 257 | "debug scene active|collisions|physics|scripting|teleport true|false", |
257 | "Turn on scene debugging", Debug); | 258 | "Turn on scene debugging.", |
259 | "If active is false then main scene update and maintenance loops are suspended.\n" | ||
260 | + "If collisions is false then collisions with other objects are turned off.\n" | ||
261 | + "If physics is false then all physics objects are non-physical.\n" | ||
262 | + "If scripting is false then no scripting operations happen.\n" | ||
263 | + "If teleport is true then some extra teleport debug information is logged.", | ||
264 | Debug); | ||
258 | 265 | ||
259 | m_console.Commands.AddCommand("General", false, "change region", | 266 | m_console.Commands.AddCommand("General", false, "change region", |
260 | "change region <region name>", | 267 | "change region <region name>", |
@@ -291,7 +298,7 @@ namespace OpenSim | |||
291 | 298 | ||
292 | m_console.Commands.AddCommand("Archiving", false, "save oar", | 299 | m_console.Commands.AddCommand("Archiving", false, "save oar", |
293 | //"save oar [-v|--version=<N>] [-p|--profile=<url>] [<OAR path>]", | 300 | //"save oar [-v|--version=<N>] [-p|--profile=<url>] [<OAR path>]", |
294 | "save oar [-h|--home=<url>] [--noassets] [--publish] [--perm=<permissions>] [<OAR path>]", | 301 | "save oar [-h|--home=<url>] [--noassets] [--publish] [--perm=<permissions>] [--all] [<OAR path>]", |
295 | "Save a region's data to an OAR archive.", | 302 | "Save a region's data to an OAR archive.", |
296 | // "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine | 303 | // "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine |
297 | "-h|--home=<url> adds the url of the profile service to the saved user information.\n" | 304 | "-h|--home=<url> adds the url of the profile service to the saved user information.\n" |
@@ -301,6 +308,7 @@ namespace OpenSim | |||
301 | + " this is useful if you're making oars generally available that might be reloaded to the same grid from which you published\n" | 308 | + " this is useful if you're making oars generally available that might be reloaded to the same grid from which you published\n" |
302 | + "--perm=<permissions> stops objects with insufficient permissions from being saved to the OAR.\n" | 309 | + "--perm=<permissions> stops objects with insufficient permissions from being saved to the OAR.\n" |
303 | + " <permissions> can contain one or more of these characters: \"C\" = Copy, \"T\" = Transfer\n" | 310 | + " <permissions> can contain one or more of these characters: \"C\" = Copy, \"T\" = Transfer\n" |
311 | + "--all saves all the regions in the simulator, instead of just the current region.\n" | ||
304 | + "The OAR path must be a filesystem path." | 312 | + "The OAR path must be a filesystem path." |
305 | + " If this is not given then the oar is saved to region.oar in the current directory.", | 313 | + " If this is not given then the oar is saved to region.oar in the current directory.", |
306 | SaveOar); | 314 | SaveOar); |
@@ -310,8 +318,11 @@ namespace OpenSim | |||
310 | "Change the scale of a named prim", HandleEditScale); | 318 | "Change the scale of a named prim", HandleEditScale); |
311 | 319 | ||
312 | m_console.Commands.AddCommand("Users", false, "kick user", | 320 | m_console.Commands.AddCommand("Users", false, "kick user", |
313 | "kick user <first> <last> [message]", | 321 | "kick user <first> <last> [--force] [message]", |
314 | "Kick a user off the simulator", KickUserCommand); | 322 | "Kick a user off the simulator", |
323 | "The --force option will kick the user without any checks to see whether it's already in the process of closing\n" | ||
324 | + "Only use this option if you are sure the avatar is inactive and a normal kick user operation does not removed them", | ||
325 | KickUserCommand); | ||
315 | 326 | ||
316 | m_console.Commands.AddCommand("Users", false, "show users", | 327 | m_console.Commands.AddCommand("Users", false, "show users", |
317 | "show users [full]", | 328 | "show users [full]", |
@@ -328,10 +339,6 @@ namespace OpenSim | |||
328 | "show circuits", | 339 | "show circuits", |
329 | "Show agent circuit data", HandleShow); | 340 | "Show agent circuit data", HandleShow); |
330 | 341 | ||
331 | m_console.Commands.AddCommand("Comms", false, "show http-handlers", | ||
332 | "show http-handlers", | ||
333 | "Show all registered http handlers", HandleShow); | ||
334 | |||
335 | m_console.Commands.AddCommand("Comms", false, "show pending-objects", | 342 | m_console.Commands.AddCommand("Comms", false, "show pending-objects", |
336 | "show pending-objects", | 343 | "show pending-objects", |
337 | "Show # of objects on the pending queues of all scene viewers", HandleShow); | 344 | "Show # of objects on the pending queues of all scene viewers", HandleShow); |
@@ -416,6 +423,7 @@ namespace OpenSim | |||
416 | { | 423 | { |
417 | RunCommandScript(m_shutdownCommandsFile); | 424 | RunCommandScript(m_shutdownCommandsFile); |
418 | } | 425 | } |
426 | |||
419 | base.ShutdownSpecific(); | 427 | base.ShutdownSpecific(); |
420 | } | 428 | } |
421 | 429 | ||
@@ -453,11 +461,17 @@ namespace OpenSim | |||
453 | /// <param name="cmdparams">name of avatar to kick</param> | 461 | /// <param name="cmdparams">name of avatar to kick</param> |
454 | private void KickUserCommand(string module, string[] cmdparams) | 462 | private void KickUserCommand(string module, string[] cmdparams) |
455 | { | 463 | { |
456 | if (cmdparams.Length < 4) | 464 | bool force = false; |
465 | |||
466 | OptionSet options = new OptionSet().Add("f|force", delegate (string v) { force = v != null; }); | ||
467 | |||
468 | List<string> mainParams = options.Parse(cmdparams); | ||
469 | |||
470 | if (mainParams.Count < 4) | ||
457 | return; | 471 | return; |
458 | 472 | ||
459 | string alert = null; | 473 | string alert = null; |
460 | if (cmdparams.Length > 4) | 474 | if (mainParams.Count > 4) |
461 | alert = String.Format("\n{0}\n", String.Join(" ", cmdparams, 4, cmdparams.Length - 4)); | 475 | alert = String.Format("\n{0}\n", String.Join(" ", cmdparams, 4, cmdparams.Length - 4)); |
462 | 476 | ||
463 | IList agents = SceneManager.GetCurrentSceneAvatars(); | 477 | IList agents = SceneManager.GetCurrentSceneAvatars(); |
@@ -466,8 +480,8 @@ namespace OpenSim | |||
466 | { | 480 | { |
467 | RegionInfo regionInfo = presence.Scene.RegionInfo; | 481 | RegionInfo regionInfo = presence.Scene.RegionInfo; |
468 | 482 | ||
469 | if (presence.Firstname.ToLower().Contains(cmdparams[2].ToLower()) && | 483 | if (presence.Firstname.ToLower().Contains(mainParams[2].ToLower()) && |
470 | presence.Lastname.ToLower().Contains(cmdparams[3].ToLower())) | 484 | presence.Lastname.ToLower().Contains(mainParams[3].ToLower())) |
471 | { | 485 | { |
472 | MainConsole.Instance.Output( | 486 | MainConsole.Instance.Output( |
473 | String.Format( | 487 | String.Format( |
@@ -480,7 +494,7 @@ namespace OpenSim | |||
480 | else | 494 | else |
481 | presence.ControllingClient.Kick("\nYou have been logged out by an administrator.\n"); | 495 | presence.ControllingClient.Kick("\nYou have been logged out by an administrator.\n"); |
482 | 496 | ||
483 | presence.Scene.IncomingCloseAgent(presence.UUID); | 497 | presence.Scene.IncomingCloseAgent(presence.UUID, force); |
484 | } | 498 | } |
485 | } | 499 | } |
486 | 500 | ||
@@ -743,33 +757,13 @@ namespace OpenSim | |||
743 | switch (cmdparams[0].ToLower()) | 757 | switch (cmdparams[0].ToLower()) |
744 | { | 758 | { |
745 | case "list": | 759 | case "list": |
746 | foreach (IRegionModule irm in m_moduleLoader.GetLoadedSharedModules) | 760 | //TODO: Convert to new region modules |
747 | { | ||
748 | MainConsole.Instance.Output(String.Format("Shared region module: {0}", irm.Name)); | ||
749 | } | ||
750 | break; | 761 | break; |
751 | case "unload": | 762 | case "unload": |
752 | if (cmdparams.Length > 1) | 763 | //TODO: Convert to new region modules |
753 | { | ||
754 | foreach (IRegionModule rm in new ArrayList(m_moduleLoader.GetLoadedSharedModules)) | ||
755 | { | ||
756 | if (rm.Name.ToLower() == cmdparams[1].ToLower()) | ||
757 | { | ||
758 | MainConsole.Instance.Output(String.Format("Unloading module: {0}", rm.Name)); | ||
759 | m_moduleLoader.UnloadModule(rm); | ||
760 | } | ||
761 | } | ||
762 | } | ||
763 | break; | 764 | break; |
764 | case "load": | 765 | case "load": |
765 | if (cmdparams.Length > 1) | 766 | //TODO: Convert to new region modules |
766 | { | ||
767 | foreach (Scene s in new ArrayList(SceneManager.Scenes)) | ||
768 | { | ||
769 | MainConsole.Instance.Output(String.Format("Loading module: {0}", cmdparams[1])); | ||
770 | m_moduleLoader.LoadRegionModules(cmdparams[1], s); | ||
771 | } | ||
772 | } | ||
773 | break; | 767 | break; |
774 | } | 768 | } |
775 | } | 769 | } |
@@ -922,7 +916,8 @@ namespace OpenSim | |||
922 | } | 916 | } |
923 | else | 917 | else |
924 | { | 918 | { |
925 | MainConsole.Instance.Output("Usage: debug scene scripting|collisions|physics|teleport true|false"); | 919 | MainConsole.Instance.Output( |
920 | "Usage: debug scene active|scripting|collisions|physics|teleport true|false"); | ||
926 | } | 921 | } |
927 | 922 | ||
928 | break; | 923 | break; |
@@ -1002,56 +997,10 @@ namespace OpenSim | |||
1002 | HandleShowCircuits(); | 997 | HandleShowCircuits(); |
1003 | break; | 998 | break; |
1004 | 999 | ||
1005 | case "http-handlers": | ||
1006 | System.Text.StringBuilder handlers = new System.Text.StringBuilder("Registered HTTP Handlers:\n"); | ||
1007 | |||
1008 | handlers.AppendFormat("* XMLRPC:\n"); | ||
1009 | foreach (String s in HttpServer.GetXmlRpcHandlerKeys()) | ||
1010 | handlers.AppendFormat("\t{0}\n", s); | ||
1011 | |||
1012 | handlers.AppendFormat("* HTTP:\n"); | ||
1013 | List<String> poll = HttpServer.GetPollServiceHandlerKeys(); | ||
1014 | foreach (String s in HttpServer.GetHTTPHandlerKeys()) | ||
1015 | handlers.AppendFormat("\t{0} {1}\n", s, (poll.Contains(s) ? "(poll service)" : string.Empty)); | ||
1016 | |||
1017 | handlers.AppendFormat("* Agent:\n"); | ||
1018 | foreach (String s in HttpServer.GetAgentHandlerKeys()) | ||
1019 | handlers.AppendFormat("\t{0}\n", s); | ||
1020 | |||
1021 | handlers.AppendFormat("* LLSD:\n"); | ||
1022 | foreach (String s in HttpServer.GetLLSDHandlerKeys()) | ||
1023 | handlers.AppendFormat("\t{0}\n", s); | ||
1024 | |||
1025 | handlers.AppendFormat("* StreamHandlers ({0}):\n", HttpServer.GetStreamHandlerKeys().Count); | ||
1026 | foreach (String s in HttpServer.GetStreamHandlerKeys()) | ||
1027 | handlers.AppendFormat("\t{0}\n", s); | ||
1028 | |||
1029 | MainConsole.Instance.Output(handlers.ToString()); | ||
1030 | break; | ||
1031 | |||
1032 | case "modules": | 1000 | case "modules": |
1033 | MainConsole.Instance.Output("The currently loaded shared modules are:"); | ||
1034 | foreach (IRegionModule module in m_moduleLoader.GetLoadedSharedModules) | ||
1035 | { | ||
1036 | MainConsole.Instance.Output("Shared Module: " + module.Name); | ||
1037 | } | ||
1038 | |||
1039 | SceneManager.ForEachScene( | ||
1040 | delegate(Scene scene) { | ||
1041 | m_log.Error("The currently loaded modules in " + scene.RegionInfo.RegionName + " are:"); | ||
1042 | foreach (IRegionModule module in scene.Modules.Values) | ||
1043 | { | ||
1044 | if (!module.IsSharedModule) | ||
1045 | { | ||
1046 | m_log.Error("Region Module: " + module.Name); | ||
1047 | } | ||
1048 | } | ||
1049 | } | ||
1050 | ); | ||
1051 | |||
1052 | SceneManager.ForEachScene( | 1001 | SceneManager.ForEachScene( |
1053 | delegate(Scene scene) { | 1002 | delegate(Scene scene) { |
1054 | MainConsole.Instance.Output("Loaded new region modules in" + scene.RegionInfo.RegionName + " are:"); | 1003 | MainConsole.Instance.Output("Loaded region modules in" + scene.RegionInfo.RegionName + " are:"); |
1055 | foreach (IRegionModuleBase module in scene.RegionModules.Values) | 1004 | foreach (IRegionModuleBase module in scene.RegionModules.Values) |
1056 | { | 1005 | { |
1057 | Type type = module.GetType().GetInterface("ISharedRegionModule"); | 1006 | Type type = module.GetType().GetInterface("ISharedRegionModule"); |
@@ -1123,7 +1072,7 @@ namespace OpenSim | |||
1123 | aCircuit.Name, | 1072 | aCircuit.Name, |
1124 | aCircuit.child ? "child" : "root", | 1073 | aCircuit.child ? "child" : "root", |
1125 | aCircuit.circuitcode.ToString(), | 1074 | aCircuit.circuitcode.ToString(), |
1126 | aCircuit.IPAddress.ToString(), | 1075 | aCircuit.IPAddress != null ? aCircuit.IPAddress.ToString() : "not set", |
1127 | aCircuit.Viewer); | 1076 | aCircuit.Viewer); |
1128 | }); | 1077 | }); |
1129 | 1078 | ||
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index d107b7a..7bef1aa 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -131,14 +131,6 @@ namespace OpenSim | |||
131 | get { return m_httpServerPort; } | 131 | get { return m_httpServerPort; } |
132 | } | 132 | } |
133 | 133 | ||
134 | public ModuleLoader ModuleLoader | ||
135 | { | ||
136 | get { return m_moduleLoader; } | ||
137 | set { m_moduleLoader = value; } | ||
138 | } | ||
139 | |||
140 | protected ModuleLoader m_moduleLoader; | ||
141 | |||
142 | protected IRegistryCore m_applicationRegistry = new RegistryCore(); | 134 | protected IRegistryCore m_applicationRegistry = new RegistryCore(); |
143 | 135 | ||
144 | public IRegistryCore ApplicationRegistry | 136 | public IRegistryCore ApplicationRegistry |
@@ -216,27 +208,36 @@ namespace OpenSim | |||
216 | IConfig simDataConfig = m_config.Source.Configs["SimulationDataStore"]; | 208 | IConfig simDataConfig = m_config.Source.Configs["SimulationDataStore"]; |
217 | if (simDataConfig == null) | 209 | if (simDataConfig == null) |
218 | throw new Exception("Configuration file is missing the [SimulationDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?"); | 210 | throw new Exception("Configuration file is missing the [SimulationDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?"); |
211 | |||
219 | string module = simDataConfig.GetString("LocalServiceModule", String.Empty); | 212 | string module = simDataConfig.GetString("LocalServiceModule", String.Empty); |
220 | if (String.IsNullOrEmpty(module)) | 213 | if (String.IsNullOrEmpty(module)) |
221 | throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [SimulationDataStore] section."); | 214 | throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [SimulationDataStore] section."); |
215 | |||
222 | m_simulationDataService = ServerUtils.LoadPlugin<ISimulationDataService>(module, new object[] { m_config.Source }); | 216 | m_simulationDataService = ServerUtils.LoadPlugin<ISimulationDataService>(module, new object[] { m_config.Source }); |
217 | if (m_simulationDataService == null) | ||
218 | throw new Exception( | ||
219 | string.Format( | ||
220 | "Could not load an ISimulationDataService implementation from {0}, as configured in the LocalServiceModule parameter of the [SimulationDataStore] config section.", | ||
221 | module)); | ||
223 | 222 | ||
224 | // Load the estate data service | 223 | // Load the estate data service |
225 | IConfig estateDataConfig = m_config.Source.Configs["EstateDataStore"]; | 224 | IConfig estateDataConfig = m_config.Source.Configs["EstateDataStore"]; |
226 | if (estateDataConfig == null) | 225 | if (estateDataConfig == null) |
227 | throw new Exception("Configuration file is missing the [EstateDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?"); | 226 | throw new Exception("Configuration file is missing the [EstateDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?"); |
227 | |||
228 | module = estateDataConfig.GetString("LocalServiceModule", String.Empty); | 228 | module = estateDataConfig.GetString("LocalServiceModule", String.Empty); |
229 | if (String.IsNullOrEmpty(module)) | 229 | if (String.IsNullOrEmpty(module)) |
230 | throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [EstateDataStore] section"); | 230 | throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [EstateDataStore] section"); |
231 | |||
231 | m_estateDataService = ServerUtils.LoadPlugin<IEstateDataService>(module, new object[] { m_config.Source }); | 232 | m_estateDataService = ServerUtils.LoadPlugin<IEstateDataService>(module, new object[] { m_config.Source }); |
233 | if (m_estateDataService == null) | ||
234 | throw new Exception( | ||
235 | string.Format( | ||
236 | "Could not load an IEstateDataService implementation from {0}, as configured in the LocalServiceModule parameter of the [EstateDataStore] config section.", | ||
237 | module)); | ||
232 | 238 | ||
233 | base.StartupSpecific(); | 239 | base.StartupSpecific(); |
234 | 240 | ||
235 | m_stats = StatsManager.SimExtraStats; | ||
236 | |||
237 | // Create a ModuleLoader instance | ||
238 | m_moduleLoader = new ModuleLoader(m_config.Source); | ||
239 | |||
240 | LoadPlugins(); | 241 | LoadPlugins(); |
241 | 242 | ||
242 | if (m_plugins.Count == 0) // We failed to load any modules. Mono Addins glitch! | 243 | if (m_plugins.Count == 0) // We failed to load any modules. Mono Addins glitch! |
@@ -249,51 +250,51 @@ namespace OpenSim | |||
249 | plugin.PostInitialise(); | 250 | plugin.PostInitialise(); |
250 | } | 251 | } |
251 | 252 | ||
252 | AddPluginCommands(); | 253 | if (m_console != null) |
254 | { | ||
255 | StatsManager.RegisterConsoleCommands(m_console); | ||
256 | AddPluginCommands(m_console); | ||
257 | } | ||
253 | } | 258 | } |
254 | 259 | ||
255 | protected virtual void AddPluginCommands() | 260 | protected virtual void AddPluginCommands(CommandConsole console) |
256 | { | 261 | { |
257 | // If console exists add plugin commands. | 262 | List<string> topics = GetHelpTopics(); |
258 | if (m_console != null) | ||
259 | { | ||
260 | List<string> topics = GetHelpTopics(); | ||
261 | 263 | ||
262 | foreach (string topic in topics) | 264 | foreach (string topic in topics) |
263 | { | 265 | { |
264 | string capitalizedTopic = char.ToUpper(topic[0]) + topic.Substring(1); | 266 | string capitalizedTopic = char.ToUpper(topic[0]) + topic.Substring(1); |
265 | 267 | ||
266 | // This is a hack to allow the user to enter the help command in upper or lowercase. This will go | 268 | // This is a hack to allow the user to enter the help command in upper or lowercase. This will go |
267 | // away at some point. | 269 | // away at some point. |
268 | m_console.Commands.AddCommand(capitalizedTopic, false, "help " + topic, | 270 | console.Commands.AddCommand(capitalizedTopic, false, "help " + topic, |
269 | "help " + capitalizedTopic, | 271 | "help " + capitalizedTopic, |
270 | "Get help on plugin command '" + topic + "'", | 272 | "Get help on plugin command '" + topic + "'", |
271 | HandleCommanderHelp); | 273 | HandleCommanderHelp); |
272 | m_console.Commands.AddCommand(capitalizedTopic, false, "help " + capitalizedTopic, | 274 | console.Commands.AddCommand(capitalizedTopic, false, "help " + capitalizedTopic, |
273 | "help " + capitalizedTopic, | 275 | "help " + capitalizedTopic, |
274 | "Get help on plugin command '" + topic + "'", | 276 | "Get help on plugin command '" + topic + "'", |
275 | HandleCommanderHelp); | 277 | HandleCommanderHelp); |
276 | 278 | ||
277 | ICommander commander = null; | 279 | ICommander commander = null; |
278 | 280 | ||
279 | Scene s = SceneManager.CurrentOrFirstScene; | 281 | Scene s = SceneManager.CurrentOrFirstScene; |
280 | 282 | ||
281 | if (s != null && s.GetCommanders() != null) | 283 | if (s != null && s.GetCommanders() != null) |
282 | { | 284 | { |
283 | if (s.GetCommanders().ContainsKey(topic)) | 285 | if (s.GetCommanders().ContainsKey(topic)) |
284 | commander = s.GetCommanders()[topic]; | 286 | commander = s.GetCommanders()[topic]; |
285 | } | 287 | } |
286 | 288 | ||
287 | if (commander == null) | 289 | if (commander == null) |
288 | continue; | 290 | continue; |
289 | 291 | ||
290 | foreach (string command in commander.Commands.Keys) | 292 | foreach (string command in commander.Commands.Keys) |
291 | { | 293 | { |
292 | m_console.Commands.AddCommand(capitalizedTopic, false, | 294 | console.Commands.AddCommand(capitalizedTopic, false, |
293 | topic + " " + command, | 295 | topic + " " + command, |
294 | topic + " " + commander.Commands[command].ShortHelp(), | 296 | topic + " " + commander.Commands[command].ShortHelp(), |
295 | String.Empty, HandleCommanderCommand); | 297 | String.Empty, HandleCommanderCommand); |
296 | } | ||
297 | } | 298 | } |
298 | } | 299 | } |
299 | } | 300 | } |
@@ -387,12 +388,6 @@ namespace OpenSim | |||
387 | 388 | ||
388 | m_log.Info("[MODULES]: Loading Region's modules (old style)"); | 389 | m_log.Info("[MODULES]: Loading Region's modules (old style)"); |
389 | 390 | ||
390 | List<IRegionModule> modules = m_moduleLoader.PickupModules(scene, "."); | ||
391 | |||
392 | // This needs to be ahead of the script engine load, so the | ||
393 | // script module can pick up events exposed by a module | ||
394 | m_moduleLoader.InitialiseSharedModules(scene); | ||
395 | |||
396 | // Use this in the future, the line above will be deprecated soon | 391 | // Use this in the future, the line above will be deprecated soon |
397 | m_log.Info("[REGIONMODULES]: Loading Region's modules (new style)"); | 392 | m_log.Info("[REGIONMODULES]: Loading Region's modules (new style)"); |
398 | IRegionModulesController controller; | 393 | IRegionModulesController controller; |
@@ -402,28 +397,29 @@ namespace OpenSim | |||
402 | } | 397 | } |
403 | else m_log.Error("[REGIONMODULES]: The new RegionModulesController is missing..."); | 398 | else m_log.Error("[REGIONMODULES]: The new RegionModulesController is missing..."); |
404 | 399 | ||
405 | if (m_securePermissionsLoading) | 400 | // XPTO: Fix this |
406 | { | 401 | // if (m_securePermissionsLoading) |
407 | foreach (string s in m_permsModules) | 402 | // { |
408 | { | 403 | // foreach (string s in m_permsModules) |
409 | if (!scene.RegionModules.ContainsKey(s)) | 404 | // { |
410 | { | 405 | // if (!scene.RegionModules.ContainsKey(s)) |
411 | bool found = false; | 406 | // { |
412 | foreach (IRegionModule m in modules) | 407 | // bool found = false; |
413 | { | 408 | // foreach (IRegionModule m in modules) |
414 | if (m.Name == s) | 409 | // { |
415 | { | 410 | // if (m.Name == s) |
416 | found = true; | 411 | // { |
417 | } | 412 | // found = true; |
418 | } | 413 | // } |
419 | if (!found) | 414 | // } |
420 | { | 415 | // if (!found) |
421 | m_log.Fatal("[MODULES]: Required module " + s + " not found."); | 416 | // { |
422 | Environment.Exit(0); | 417 | // m_log.Fatal("[MODULES]: Required module " + s + " not found."); |
423 | } | 418 | // Environment.Exit(0); |
424 | } | 419 | // } |
425 | } | 420 | // } |
426 | } | 421 | // } |
422 | // } | ||
427 | 423 | ||
428 | scene.SetModuleInterfaces(); | 424 | scene.SetModuleInterfaces(); |
429 | // First Step of bootreport sequence | 425 | // First Step of bootreport sequence |
@@ -500,13 +496,6 @@ namespace OpenSim | |||
500 | { | 496 | { |
501 | scene.SnmpService.BootInfo("Initializing region modules", scene); | 497 | scene.SnmpService.BootInfo("Initializing region modules", scene); |
502 | } | 498 | } |
503 | if (do_post_init) | ||
504 | { | ||
505 | foreach (IRegionModule module in modules) | ||
506 | { | ||
507 | module.PostInitialise(); | ||
508 | } | ||
509 | } | ||
510 | scene.EventManager.OnShutdown += delegate() { ShutdownRegion(scene); }; | 499 | scene.EventManager.OnShutdown += delegate() { ShutdownRegion(scene); }; |
511 | 500 | ||
512 | mscene = scene; | 501 | mscene = scene; |
@@ -623,7 +612,7 @@ namespace OpenSim | |||
623 | if (account == null) | 612 | if (account == null) |
624 | { | 613 | { |
625 | m_log.ErrorFormat( | 614 | m_log.ErrorFormat( |
626 | "[OPENSIM]: Unable to store account. If this simulator is connected to a grid, you must create the estate owner account first."); | 615 | "[OPENSIM]: Unable to store account. If this simulator is connected to a grid, you must create the estate owner account first at the grid level."); |
627 | } | 616 | } |
628 | else | 617 | else |
629 | { | 618 | { |
@@ -807,7 +796,7 @@ namespace OpenSim | |||
807 | 796 | ||
808 | return new Scene( | 797 | return new Scene( |
809 | regionInfo, circuitManager, sceneGridService, | 798 | regionInfo, circuitManager, sceneGridService, |
810 | simDataService, estateDataService, m_moduleLoader, false, | 799 | simDataService, estateDataService, false, |
811 | m_config.Source, m_version); | 800 | m_config.Source, m_version); |
812 | } | 801 | } |
813 | 802 | ||