aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWuzzy <wuzzy2@mail.ru>2021-02-19 18:59:48 +0000
committerGitHub <noreply@github.com>2021-02-19 19:59:48 +0100
commitc12e9cdcba6b4183de6df4fd05f61a06f804642c (patch)
tree309d56e8b2d47216d0a4c3dfb44b1111e8fe4672
parente441ab9675238b9530cf6ab1911fa9b5fd4ae13e (diff)
downloadminetest-c12e9cdcba6b4183de6df4fd05f61a06f804642c.tar.gz
minetest-c12e9cdcba6b4183de6df4fd05f61a06f804642c.tar.bz2
minetest-c12e9cdcba6b4183de6df4fd05f61a06f804642c.zip
Fail gracefully if main_menu_script has bad value (#10938)
Builtin: Move :close() before dofile
-rw-r--r--builtin/init.lua15
1 files changed, 13 insertions, 2 deletions
diff --git a/builtin/init.lua b/builtin/init.lua
index 75bb3db85..89b1fdc64 100644
--- a/builtin/init.lua
+++ b/builtin/init.lua
@@ -39,9 +39,20 @@ if INIT == "game" then
assert(not core.get_http_api)
elseif INIT == "mainmenu" then
local mm_script = core.settings:get("main_menu_script")
+ local custom_loaded = false
if mm_script and mm_script ~= "" then
- dofile(mm_script)
- else
+ local testfile = io.open(mm_script, "r")
+ if testfile then
+ testfile:close()
+ dofile(mm_script)
+ custom_loaded = true
+ core.log("info", "Loaded custom main menu script: "..mm_script)
+ else
+ core.log("error", "Failed to load custom main menu script: "..mm_script)
+ core.log("info", "Falling back to default main menu script")
+ end
+ end
+ if not custom_loaded then
dofile(core.get_mainmenu_path() .. DIR_DELIM .. "init.lua")
end
elseif INIT == "async" then