瀏覽代碼

Avoid crash if configs file is missing, e.g. broken version of mod

Ivan Savenko 1 年之前
父節點
當前提交
147db10a28
共有 1 個文件被更改,包括 14 次插入4 次删除
  1. 14 4
      lib/json/JsonUtils.cpp

+ 14 - 4
lib/json/JsonUtils.cpp

@@ -243,10 +243,20 @@ JsonNode JsonUtils::assembleFromFiles(const std::vector<std::string> & files, bo
 
 	for(const auto & file : files)
 	{
-		bool isValidFile = false;
-		JsonNode section(JsonPath::builtinTODO(file), isValidFile);
-		merge(result, section);
-		isValid |= isValidFile;
+		JsonPath path = JsonPath::builtinTODO(file);
+
+		if (CResourceHandler::get()->existsResource(path))
+		{
+			bool isValidFile = false;
+			JsonNode section(JsonPath::builtinTODO(file), isValidFile);
+			merge(result, section);
+			isValid |= isValidFile;
+		}
+		else
+		{
+			logMod->error("Failed to find file %s", file);
+			isValid = false;
+		}
 	}
 	return result;
 }