From 548da26ddc1e38bffbc05c5577fe9a60476f8e71 Mon Sep 17 00:00:00 2001 From: Matthew I Date: Sat, 28 Jul 2012 15:27:31 -0400 Subject: Extend Lua API in order to implement chat commands minetest.get_server_status() minetest.request_shutdown() EnvRef:clear_objects() --- src/scriptapi.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src') diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index a1975971f..a6eaabf97 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -3810,6 +3810,15 @@ private: return 1; } + // EnvRef:clear_objects() + // clear all objects in the environment + static int l_clear_objects(lua_State *L) + { + EnvRef *o = checkobject(L, 1); + o->m_env->clearAllObjects(); + return 0; + } + public: EnvRef(ServerEnvironment *env): m_env(env) @@ -3891,6 +3900,7 @@ const luaL_reg EnvRef::methods[] = { method(EnvRef, find_node_near), method(EnvRef, find_nodes_in_area), method(EnvRef, get_perlin), + method(EnvRef, clear_objects), {0,0} }; @@ -4170,6 +4180,20 @@ static int l_log(lua_State *L) return 0; } +// request_shutdown() +static int l_request_shutdown(lua_State *L) +{ + get_server(L)->requestShutdown(); + return 0; +} + +// get_server_status() +static int l_get_server_status(lua_State *L) +{ + lua_pushstring(L, wide_to_narrow(get_server(L)->getStatusString()).c_str()); + return 1; +} + // register_item_raw({lots of stuff}) static int l_register_item_raw(lua_State *L) { @@ -4911,6 +4935,8 @@ static int l_rollback_revert_actions_by(lua_State *L) static const struct luaL_Reg minetest_f [] = { {"debug", l_debug}, {"log", l_log}, + {"request_shutdown", l_request_shutdown}, + {"get_server_status", l_get_server_status}, {"register_item_raw", l_register_item_raw}, {"register_alias_raw", l_register_alias_raw}, {"register_craft", l_register_craft}, -- cgit v1.2.3