diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-12-11 16:49:40 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-12-11 16:49:40 +0200 |
commit | bd21f00f0a1bb23d4503d58a502a796dbe3fd5b4 (patch) | |
tree | ba1e29a21fafe612bdb05bd2a5bfbf8466f92ee0 /src/scriptapi.cpp | |
parent | 012bcbcb4852c78e803485a4fc6fe6628ce0dcd3 (diff) | |
download | minetest-bd21f00f0a1bb23d4503d58a502a796dbe3fd5b4.tar.gz minetest-bd21f00f0a1bb23d4503d58a502a796dbe3fd5b4.tar.bz2 minetest-bd21f00f0a1bb23d4503d58a502a796dbe3fd5b4.zip |
Add minetest.get_modpath(modname)
Diffstat (limited to 'src/scriptapi.cpp')
-rw-r--r-- | src/scriptapi.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
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} }; |