Add minetest.get_server_uptime() function to Lua API (#4702)
authorBrandon <brandon@bremaweb.com>
Wed, 2 Nov 2016 16:36:58 +0000 (11:36 -0500)
committerAuke Kok <sofar+github@foo-projects.org>
Wed, 2 Nov 2016 16:36:58 +0000 (09:36 -0700)
Add minetest.get_server_uptime() function to Lua API

doc/lua_api.txt
src/script/lua_api/l_server.cpp
src/script/lua_api/l_server.h
src/server.h

index 497864fac5669d99808c600bd6d8ad3a91d3b47c..119e69f6fbceaf6cb671255cca90d0c7354ca0f9 100644 (file)
@@ -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("")`)
index 95e5da07f03ee2249f746b6fa7fb621d9aa13b29..b6d44e0ff5251a98e64f999f59d8fe35c4366001 100644 (file)
@@ -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);
 
index 06a5ddc24d23a66e229864f0d1722c770d20b314..1ad46d44048f994edd61e8c5903a407055f7b316 100644 (file)
@@ -30,6 +30,9 @@ private:
        // 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);
 
index 5fc2a913369d607a27101a40dcae9726c5972fc3..f8b3ec106484035cb354179e2f593a4c57d097b2 100644 (file)
@@ -216,6 +216,7 @@ public:
 
        // 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; }