diff --git a/src/content/mods.h b/src/content/mods.h index 228684c6e..6597eaeae 100644 --- a/src/content/mods.h +++ b/src/content/mods.h @@ -49,6 +49,7 @@ struct ModSpec std::unordered_set optdepends; std::unordered_set unsatisfied_depends; + bool valid = true; /// False if incomplete bool part_of_modpack = false; bool is_modpack = false; diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 6f7d86447..c22ed121d 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -2576,4 +2576,7 @@ void push_mod_spec(lua_State *L, const ModSpec &spec, bool include_unsatisfied) lua_rawseti(L, -2, i++); } lua_setfield(L, -2, "unsatisfied_depends"); + + lua_pushboolean(L, spec.valid); + lua_setfield(L, -2, "valid"); } diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index acc600a6c..e8246c15d 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -450,10 +450,7 @@ int ModApiMainMenu::l_check_mod_configuration(lua_State *L) spec.name = fs::GetFilenameFromPath(modpath.c_str()); spec.path = modpath; spec.virtual_path = virtual_path; - if (!parseModContents(spec)) { - warningstream << "Mod \"" << spec.name - << "\" has no \"init.lua\" or \"modpack.conf\"" << std::endl; - } + spec.valid = parseModContents(spec); } modmgr.addMods(modSpecs);