From bd21f00f0a1bb23d4503d58a502a796dbe3fd5b4 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 11 Dec 2011 16:49:40 +0200 Subject: Add minetest.get_modpath(modname) --- src/scriptapi.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/scriptapi.cpp') diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index c759683ed..40ad4d547 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -1334,6 +1334,23 @@ static int l_get_player_privs(lua_State *L) return 1; } +// get_modpath(modname) +static int l_get_modpath(lua_State *L) +{ + const char *modname = luaL_checkstring(L, 1); + // Get server from registry + lua_getfield(L, LUA_REGISTRYINDEX, "minetest_server"); + Server *server = (Server*)lua_touserdata(L, -1); + // Do it + const ModSpec *mod = server->getModSpec(modname); + if(!mod){ + lua_pushnil(L); + return 1; + } + lua_pushstring(L, mod->path.c_str()); + return 1; +} + static const struct luaL_Reg minetest_f [] = { {"register_nodedef_defaults", l_register_nodedef_defaults}, {"register_entity", l_register_entity}, @@ -1350,6 +1367,7 @@ static const struct luaL_Reg minetest_f [] = { {"chat_send_all", l_chat_send_all}, {"chat_send_player", l_chat_send_player}, {"get_player_privs", l_get_player_privs}, + {"get_modpath", l_get_modpath}, {NULL, NULL} }; -- cgit v1.2.3