From 88b9b9652ab77f91eaa7c6e40b8a48e3a35a7948 Mon Sep 17 00:00:00 2001 From: red-001 Date: Thu, 6 Apr 2017 21:50:45 +0100 Subject: [PATCH] [CSM] Add function to get the server protocol version. (#5529) --- clientmods/preview/init.lua | 1 + doc/client_lua_api.md | 3 +++ src/script/lua_api/l_client.cpp | 8 ++++++++ src/script/lua_api/l_client.h | 3 +++ 4 files changed, 15 insertions(+) diff --git a/clientmods/preview/init.lua b/clientmods/preview/init.lua index 07464e927..3c96fae55 100644 --- a/clientmods/preview/init.lua +++ b/clientmods/preview/init.lua @@ -69,6 +69,7 @@ core.after(2, function() print("[PREVIEW] loaded " .. modname .. " mod") modstorage:set_string("current_mod", modname) print(modstorage:get_string("current_mod")) + print("Server version:" .. core.get_protocol_version()) preview_minimap() end) diff --git a/doc/client_lua_api.md b/doc/client_lua_api.md index 25055c98a..6d62de8a2 100644 --- a/doc/client_lua_api.md +++ b/doc/client_lua_api.md @@ -696,6 +696,9 @@ Call these functions only at load time! * `minetest.disconnect()` * Disconnect from the server and exit to main menu. * Returns `false` if the client is already disconnecting otherwise returns `true`. +* `minetest.get_protocol_version()` + * Returns the protocol version of the server. + * Might not be accurate at start up as the client might not be connected to the server yet, in that case it will return 0. ### Misc. * `minetest.parse_json(string[, nullvalue])`: returns something diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp index 458c1d1f4..0f4d7eaae 100644 --- a/src/script/lua_api/l_client.cpp +++ b/src/script/lua_api/l_client.cpp @@ -234,6 +234,13 @@ int ModApiClient::l_sound_stop(lua_State *L) return 0; } +// get_protocol_version() +int ModApiClient::l_get_protocol_version(lua_State *L) +{ + lua_pushinteger(L, getClient(L)->getProtoVersion()); + return 1; +} + void ModApiClient::Initialize(lua_State *L, int top) { API_FCT(get_current_modname); @@ -251,4 +258,5 @@ void ModApiClient::Initialize(lua_State *L, int top) API_FCT(get_meta); API_FCT(sound_play); API_FCT(sound_stop); + API_FCT(get_protocol_version); } diff --git a/src/script/lua_api/l_client.h b/src/script/lua_api/l_client.h index 4e7f63d6a..478b8ed6c 100644 --- a/src/script/lua_api/l_client.h +++ b/src/script/lua_api/l_client.h @@ -69,6 +69,9 @@ private: static int l_sound_stop(lua_State *L); + // get_protocol_version() + static int l_get_protocol_version(lua_State *L); + public: static void Initialize(lua_State *L, int top); };