diff options
author | Wuzzy <wuzzy2@mail.ru> | 2021-02-19 18:59:48 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-19 19:59:48 +0100 |
commit | c12e9cdcba6b4183de6df4fd05f61a06f804642c (patch) | |
tree | 309d56e8b2d47216d0a4c3dfb44b1111e8fe4672 | |
parent | e441ab9675238b9530cf6ab1911fa9b5fd4ae13e (diff) | |
download | minetest-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.lua | 15 |
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 |