From e832736e0bf315585f873b43520d1d771930a1c2 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Mon, 4 Nov 2013 21:51:24 +0000 Subject: Autogeneration of settings.ini and webadmin.ini Fixes issue #75 --- source/PluginManager.cpp | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'source/PluginManager.cpp') diff --git a/source/PluginManager.cpp b/source/PluginManager.cpp index 5ae70d48d..ac79942b7 100644 --- a/source/PluginManager.cpp +++ b/source/PluginManager.cpp @@ -94,6 +94,17 @@ void cPluginManager::FindPlugins(void) void cPluginManager::ReloadPluginsNow(void) +{ + cIniFile a_SettingsIni; + a_SettingsIni.ReadFile("settings.ini"); + ReloadPluginsNow(a_SettingsIni); +} + + + + + +void cPluginManager::ReloadPluginsNow(cIniFile & a_SettingsIni) { LOG("-- Loading Plugins --"); m_bReloadPlugins = false; @@ -102,26 +113,22 @@ void cPluginManager::ReloadPluginsNow(void) FindPlugins(); cServer::BindBuiltInConsoleCommands(); - - cIniFile IniFile; - if (!IniFile.ReadFile("settings.ini")) + + unsigned int KeyNum = a_SettingsIni.FindKey("Plugins"); + unsigned int NumPlugins = ((KeyNum != -1) ? (a_SettingsIni.GetNumValues(KeyNum)) : 0); + if (KeyNum == -1) { - LOGWARNING("cPluginManager: Can't find settings.ini, so can't load any plugins."); + a_SettingsIni.AddKeyName("Plugins"); + a_SettingsIni.AddKeyComment("Plugins", " Plugin=Core"); } - - unsigned int KeyNum = IniFile.FindKey("Plugins"); - unsigned int NumPlugins = IniFile.GetNumValues(KeyNum); - if (NumPlugins > 0) + else if (NumPlugins > 0) { for(unsigned int i = 0; i < NumPlugins; i++) { - AString ValueName = IniFile.GetValueName(KeyNum, i ); - if ( - (ValueName.compare("NewPlugin") == 0) || - (ValueName.compare("Plugin") == 0) - ) + AString ValueName = a_SettingsIni.GetValueName(KeyNum, i); + if (ValueName.compare("Plugin") == 0) { - AString PluginFile = IniFile.GetValue(KeyNum, i); + AString PluginFile = a_SettingsIni.GetValue(KeyNum, i); if (!PluginFile.empty()) { if (m_Plugins.find(PluginFile) != m_Plugins.end()) @@ -137,7 +144,7 @@ void cPluginManager::ReloadPluginsNow(void) { LOG("-- No Plugins Loaded --"); } - else if ((GetNumPlugins() > 1) || (GetNumPlugins() == 0)) + else if (GetNumPlugins() > 1) { LOG("-- Loaded %i Plugins --", GetNumPlugins()); } -- cgit v1.2.3