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
This commit is contained in:
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user