diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 497864fac5669d99808c600bd6d8ad3a91d3b47c..119e69f6fbceaf6cb671255cca90d0c7354ca0f9 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2448,6 +2448,7 @@ These functions return the leftover itemstack. * `minetest.request_shutdown([message],[reconnect])`: request for server shutdown. Will display `message` to clients, and `reconnect` == true displays a reconnect button. * `minetest.get_server_status()`: returns server status string +* `minetest.get_server_uptime()`: returns the server uptime in seconds ### Bans * `minetest.get_ban_list()`: returns the ban list (same as `minetest.get_ban_description("")`) diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp index 95e5da07f03ee2249f746b6fa7fb621d9aa13b29..b6d44e0ff5251a98e64f999f59d8fe35c4366001 100644 --- a/src/script/lua_api/l_server.cpp +++ b/src/script/lua_api/l_server.cpp @@ -45,6 +45,15 @@ int ModApiServer::l_get_server_status(lua_State *L) return 1; } +// get_server_uptime() +int ModApiServer::l_get_server_uptime(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + lua_pushnumber(L, getServer(L)->getUptime()); + return 1; +} + + // print(text) int ModApiServer::l_print(lua_State *L) { @@ -507,6 +516,7 @@ void ModApiServer::Initialize(lua_State *L, int top) { API_FCT(request_shutdown); API_FCT(get_server_status); + API_FCT(get_server_uptime); API_FCT(get_worldpath); API_FCT(is_singleplayer); diff --git a/src/script/lua_api/l_server.h b/src/script/lua_api/l_server.h index 06a5ddc24d23a66e229864f0d1722c770d20b314..1ad46d44048f994edd61e8c5903a407055f7b316 100644 --- a/src/script/lua_api/l_server.h +++ b/src/script/lua_api/l_server.h @@ -30,6 +30,9 @@ class ModApiServer : public ModApiBase { // get_server_status() static int l_get_server_status(lua_State *L); + // get_server_uptime() + static int l_get_server_uptime(lua_State *L); + // get_worldpath() static int l_get_worldpath(lua_State *L); diff --git a/src/server.h b/src/server.h index 5fc2a913369d607a27101a40dcae9726c5972fc3..f8b3ec106484035cb354179e2f593a4c57d097b2 100644 --- a/src/server.h +++ b/src/server.h @@ -216,6 +216,7 @@ class Server : public con::PeerHandler, public MapEventReceiver, // Connection must be locked when called std::wstring getStatusString(); + inline double getUptime() const { return m_uptime.m_value; } // read shutdown state inline bool getShutdownRequested() const { return m_shutdown_requested; }