From 4e34e438f12abb31f2409ce9d50df8acc2128555 Mon Sep 17 00:00:00 2001 From: faketruth Date: Thu, 26 Jan 2012 20:39:46 +0000 Subject: Working on a new plugin design with Lua. While retaining backwards compatibility of course... In this new design a plugin consists of a folder with Lua files, this should enable plugin developers to keep things separate and have more overview. git-svn-id: http://mc-server.googlecode.com/svn/trunk@172 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cPluginManager.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'source/cPluginManager.cpp') diff --git a/source/cPluginManager.cpp b/source/cPluginManager.cpp index f1369bf46..007e0fd92 100644 --- a/source/cPluginManager.cpp +++ b/source/cPluginManager.cpp @@ -1,6 +1,7 @@ #include "cPluginManager.h" #include "cPlugin.h" #include "cPlugin_Lua.h" +#include "cPlugin_NewLua.h" #include "cMCLogger.h" #include "cWebAdmin.h" #include "cItem.h" @@ -99,6 +100,18 @@ void cPluginManager::ReloadPluginsNow() } } } + else if( ValueName.compare("NewPlugin") == 0 ) // New plugin style + { + std::string PluginFile = IniFile.GetValue(KeyNum, i ); + if( !PluginFile.empty() ) + { + cPlugin_NewLua* Plugin = new cPlugin_NewLua( PluginFile.c_str() ); + if( !AddPlugin( Plugin ) ) + { + delete Plugin; + } + } + } #if USE_SQUIRREL else if( ValueName.compare("Squirrel") == 0 ) // Squirrel plugin { @@ -481,6 +494,11 @@ cPlugin_Lua* cPluginManager::GetLuaPlugin( lua_State* a_State ) void cPluginManager::AddHook( cPlugin* a_Plugin, PluginHook a_Hook ) { + if( !a_Plugin ) + { + LOGWARN("Called cPluginManager::AddHook while a_Plugin is NULL"); + return; + } PluginList & Plugins = m_pState->Hooks[ a_Hook ]; Plugins.remove( a_Plugin ); Plugins.push_back( a_Plugin ); -- cgit v1.2.3