diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneBase.cs | 39 |
1 files changed, 8 insertions, 31 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs index 42f3d97..89b5d77 100644 --- a/OpenSim/Region/Framework/Scenes/SceneBase.cs +++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs | |||
@@ -78,11 +78,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
78 | protected Dictionary<string, ICommander> m_moduleCommanders = new Dictionary<string, ICommander>(); | 78 | protected Dictionary<string, ICommander> m_moduleCommanders = new Dictionary<string, ICommander>(); |
79 | 79 | ||
80 | /// <value> | 80 | /// <value> |
81 | /// The module commands available for this scene | ||
82 | /// </value> | ||
83 | protected Dictionary<string, ICommand> m_moduleCommands = new Dictionary<string, ICommand>(); | ||
84 | |||
85 | /// <value> | ||
86 | /// Registered classes that are capable of creating entities. | 81 | /// Registered classes that are capable of creating entities. |
87 | /// </value> | 82 | /// </value> |
88 | protected Dictionary<PCode, IEntityCreator> m_entityCreators = new Dictionary<PCode, IEntityCreator>(); | 83 | protected Dictionary<PCode, IEntityCreator> m_entityCreators = new Dictionary<PCode, IEntityCreator>(); |
@@ -311,38 +306,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
311 | lock (m_moduleCommanders) | 306 | lock (m_moduleCommanders) |
312 | { | 307 | { |
313 | m_moduleCommanders.Add(commander.Name, commander); | 308 | m_moduleCommanders.Add(commander.Name, commander); |
314 | |||
315 | lock (m_moduleCommands) | ||
316 | { | ||
317 | foreach (ICommand command in commander.Commands.Values) | ||
318 | { | ||
319 | if (m_moduleCommands.ContainsKey(command.Name)) | ||
320 | { | ||
321 | m_log.ErrorFormat( | ||
322 | "[MODULES]: Module commander {0} tried to register the command {1} which has already been registered", | ||
323 | commander.Name, command.Name); | ||
324 | continue; | ||
325 | } | ||
326 | |||
327 | m_moduleCommands[command.Name] = command; | ||
328 | } | ||
329 | } | ||
330 | } | 309 | } |
331 | } | 310 | } |
332 | 311 | ||
333 | /// <summary> | 312 | /// <summary> |
334 | /// Get an available module command | 313 | /// Unregister a module commander and all its commands |
335 | /// </summary> | 314 | /// </summary> |
336 | /// <param name="commandName"></param> | 315 | /// <param name="name"></param> |
337 | /// <returns>The command if it was found, null if no command is available with that name</returns> | 316 | public void UnregisterModuleCommander(string name) |
338 | public ICommand GetCommand(string commandName) | ||
339 | { | 317 | { |
340 | lock (m_moduleCommands) | 318 | lock (m_moduleCommanders) |
341 | { | 319 | { |
342 | if (m_moduleCommands.ContainsKey(commandName)) | 320 | ICommander commander; |
343 | return m_moduleCommands[commandName]; | 321 | if (m_moduleCommanders.TryGetValue(name, out commander)) |
344 | else | 322 | m_moduleCommanders.Remove(name); |
345 | return null; | ||
346 | } | 323 | } |
347 | } | 324 | } |
348 | 325 | ||