diff --git a/OpenSim/Region/Environment/Interfaces/ICommander.cs b/OpenSim/Region/Environment/Interfaces/ICommander.cs index c4102af7d7..a267115beb 100644 --- a/OpenSim/Region/Environment/Interfaces/ICommander.cs +++ b/OpenSim/Region/Environment/Interfaces/ICommander.cs @@ -29,6 +29,11 @@ namespace OpenSim.Region.Environment.Interfaces { public interface ICommander { + /// + /// The name of this commander + /// + string Name { get; } + void ProcessConsoleCommand(string function, string[] args); void RegisterCommand(string commandName, ICommand command); void Run(string function, object[] args); diff --git a/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/Commander.cs b/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/Commander.cs index 8b1904352f..caaa808977 100644 --- a/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/Commander.cs +++ b/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/Commander.cs @@ -41,18 +41,36 @@ namespace OpenSim.Region.Environment.Modules.Framework.InterfaceCommander public class Commander : ICommander { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private Dictionary m_commands = new Dictionary(); + + /// + /// Used in runtime class generation + /// + private string m_generatedApiClassName; + + public string Name + { + get { return m_name; } + } private string m_name; + /// + /// Constructor + /// + /// public Commander(string name) { m_name = name; + m_generatedApiClassName = m_name; } + /// + /// Commands that this commander knows about + /// public Dictionary Commands { get { return m_commands; } } + private Dictionary m_commands = new Dictionary(); #region ICommander Members @@ -67,7 +85,7 @@ namespace OpenSim.Region.Environment.Modules.Framework.InterfaceCommander /// Returns C# source code to create a binding public string GenerateRuntimeAPI() { - string classSrc = "\n\tpublic class " + m_name + " {\n"; + string classSrc = "\n\tpublic class " + m_generatedApiClassName + " {\n"; foreach (ICommand com in m_commands.Values) { classSrc += "\tpublic void " + EscapeRuntimeAPICommand(com.Name) + "( "; diff --git a/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/CommanderTestModule.cs b/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/CommanderTestModule.cs index c56924090e..f4b56b7027 100644 --- a/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/CommanderTestModule.cs +++ b/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/CommanderTestModule.cs @@ -62,7 +62,7 @@ namespace OpenSim.Region.Environment.Modules.Framework.InterfaceCommander m_commander.RegisterCommand("hello", testCommand); // Register me - m_scene.RegisterModuleCommander("commandertest", m_commander); + m_scene.RegisterModuleCommander(m_commander); } public void Close() diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs index f765cfe725..0fac278662 100644 --- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs @@ -237,7 +237,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions debugCommand.AddArgument("enable_debug_perms", "true to enable debugging to console all perms", "Boolean"); m_commander.RegisterCommand("debug", debugCommand); - m_scene.RegisterModuleCommander("CommanderPermissions", m_commander); + m_scene.RegisterModuleCommander(m_commander); m_scene.EventManager.OnPluginConsole += new EventManager.OnPluginConsoleDelegate(EventManager_OnPluginConsole); } diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs index c1af947b50..885dbaeddf 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs @@ -47,7 +47,7 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser public void Initialise(Scene scene, IConfigSource source) { - scene.RegisterModuleCommander("Export", m_commander); + scene.RegisterModuleCommander(m_commander); scene.EventManager.OnPluginConsole += EventManager_OnPluginConsole; scene.RegisterModuleInterface(this); diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs index d56bc8e0e7..cc9b4d2ca4 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs @@ -993,7 +993,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain m_commander.RegisterCommand("flip", flipCommand); // Add this to our scene so scripts can call these functions - m_scene.RegisterModuleCommander("Terrain", m_commander); + m_scene.RegisterModuleCommander(m_commander); } #endregion diff --git a/OpenSim/Region/Environment/Scenes/SceneBase.cs b/OpenSim/Region/Environment/Scenes/SceneBase.cs index 4d6a39adfe..5e7eae5038 100644 --- a/OpenSim/Region/Environment/Scenes/SceneBase.cs +++ b/OpenSim/Region/Environment/Scenes/SceneBase.cs @@ -278,11 +278,11 @@ namespace OpenSim.Region.Environment.Scenes } } - public void RegisterModuleCommander(string name, ICommander commander) + public void RegisterModuleCommander(ICommander commander) { lock (m_moduleCommanders) { - m_moduleCommanders.Add(name, commander); + m_moduleCommanders.Add(commander.Name, commander); } }