From 41ba1a7642105ac21b67f4febac3eceef6a39f0a Mon Sep 17 00:00:00 2001 From: faketruth Date: Sat, 13 Oct 2012 23:34:47 +0000 Subject: Completely removed support for old style Lua plugins (can use both Plugin and NewPlugin in settings.ini for now) Removed cPlugin_Lua, obviously cPluginManager stores plugins by their (folder)name cPluginManager now scans the Plugins folder for potential plugins and adds them as non-loaded plugins Added a DisablePlugin and LoadPlugin to disable and load plugins on a per-plugin basis instead of all at once cPluginManager::FindPlugins refreshes the plugin list by removing non-existing plugins and adding new plugins Made it incredibly easy to use new plugins from the WebAdmin Exposed some food/hunger related functions in cPlayer to Lua git-svn-id: http://mc-server.googlecode.com/svn/trunk@959 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Plugin_Lua.cpp | 98 --------------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 source/Plugin_Lua.cpp (limited to 'source/Plugin_Lua.cpp') diff --git a/source/Plugin_Lua.cpp b/source/Plugin_Lua.cpp deleted file mode 100644 index 14258dd0d..000000000 --- a/source/Plugin_Lua.cpp +++ /dev/null @@ -1,98 +0,0 @@ - -#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules - -#define LUA_USE_POSIX -#include "Plugin_Lua.h" -#include "PluginManager.h" -#include "Root.h" - -extern "C" -{ - #include "lualib.h" -} - -#include "tolua++.h" -#include "Bindings.h" -#include "ManualBindings.h" - -bool report_errors(lua_State* lua, int status) -{ - if ( status!=0 ) - { - std::string s = lua_tostring(lua, -1); - LOGERROR("-- %s", s.c_str() ); - lua_pop(lua, 1); - return true; - } - return false; -} - -cPlugin_Lua::~cPlugin_Lua() -{ - UnloadPlugins(); - if( m_LuaState ) - { - lua_close( m_LuaState ); - m_LuaState = 0; - } -} - -cPlugin_Lua::cPlugin_Lua(const char* a_Plugin) -: m_LuaState( 0 ) -{ - m_FileName.assign( a_Plugin ); -} - -bool cPlugin_Lua::Initialize() -{ - if( !m_LuaState ) - { - m_LuaState = lua_open(); - luaL_openlibs( m_LuaState ); - tolua_AllToLua_open(m_LuaState); - ManualBindings::Bind( m_LuaState ); - } - - int s = luaL_loadfile(m_LuaState, (std::string("Plugins/") + m_FileName ).c_str() ); - if( report_errors( m_LuaState, s ) ) - { - LOGERROR("Can't load plugin %s", m_FileName.c_str() ); - lua_close( m_LuaState ); - m_LuaState = 0; - return false; - } - - s = lua_pcall(m_LuaState, 0, LUA_MULTRET, 0); - if( report_errors( m_LuaState, s ) ) - { - LOGERROR("Error in plugin %s", m_FileName.c_str() ); - lua_close( m_LuaState ); - m_LuaState = 0; - return false; - } - return true; -} - -void cPlugin_Lua::AddPlugin( cPlugin* a_Plugin ) -{ - m_Plugins.push_back( a_Plugin ); -} - -void cPlugin_Lua::RemovePlugin( cPlugin* a_Plugin ) -{ - m_Plugins.remove( a_Plugin ); - cRoot::Get()->GetPluginManager()->RemovePlugin( a_Plugin, true ); -} - -void cPlugin_Lua::UnloadPlugins() -{ - while( m_Plugins.begin() != m_Plugins.end() ) - { - RemovePlugin( *m_Plugins.begin() ); - } -} - -lua_State* cPlugin_Lua::GetLuaState() -{ - return m_LuaState; -} \ No newline at end of file -- cgit v1.2.3