From d8a0efa6af9a10a0d5f97fbc9dc3c107a7c118b5 Mon Sep 17 00:00:00 2001
From: sapier <Sapier at GMX dot net>
Date: Wed, 16 Jan 2013 20:23:56 +0000
Subject: [PATCH] add support for saving settings by lua command (server
 doesn't autosave on exit)

---
 doc/lua_api.txt   | 1 +
 src/scriptapi.cpp | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index 94fc78b2e..f935849ca 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -860,6 +860,7 @@ minetest.setting_set(name, value)
 minetest.setting_get(name) -> string or nil
 minetest.setting_getbool(name) -> boolean value or nil
 minetest.setting_get_pos(name) -> position or nil
+minetest.setting_save() -> nil, save all settings to config file
 minetest.add_to_creative_inventory(itemstring)
 
 Authentication:
diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp
index ec3d34676..13ba72056 100644
--- a/src/scriptapi.cpp
+++ b/src/scriptapi.cpp
@@ -4881,6 +4881,13 @@ static int l_setting_getbool(lua_State *L)
 	return 1;
 }
 
+// setting_save()
+static int l_setting_save(lua_State *L)
+{
+	get_server(L)->saveConfig();
+	return 0;
+}
+
 // chat_send_all(text)
 static int l_chat_send_all(lua_State *L)
 {
@@ -5350,6 +5357,7 @@ static const struct luaL_Reg minetest_f [] = {
 	{"setting_set", l_setting_set},
 	{"setting_get", l_setting_get},
 	{"setting_getbool", l_setting_getbool},
+	{"setting_save",l_setting_save},
 	{"chat_send_all", l_chat_send_all},
 	{"chat_send_player", l_chat_send_player},
 	{"get_player_privs", l_get_player_privs},
-- 
GitLab