Small fix
This commit is contained in:
parent
f9c4522899
commit
7781ca6daf
@ -32,7 +32,7 @@ namespace config
|
|||||||
|
|
||||||
std::unordered_map<std::string, field_definition_t> field_definitions =
|
std::unordered_map<std::string, field_definition_t> field_definitions =
|
||||||
{
|
{
|
||||||
{define_field("language", config::field_type::string, language::get_default_language(), language::is_valid_language)},
|
{define_field("language", field_type::string, language::get_default_language(), language::is_valid_language)},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,6 +61,28 @@ namespace config
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nlohmann::json get_default_value(const std::string& key)
|
||||||
|
{
|
||||||
|
const auto iter = field_definitions.find(key);
|
||||||
|
if (iter == field_definitions.end())
|
||||||
|
{
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
return iter->second.default_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
nlohmann::json get_raw(const std::string& key)
|
||||||
|
{
|
||||||
|
const auto cfg = read_config();
|
||||||
|
if (!cfg.is_object() || !cfg.contains(key))
|
||||||
|
{
|
||||||
|
return get_default_value(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return validate_config_field(key, cfg[key]);
|
||||||
|
}
|
||||||
|
|
||||||
void write_config(const nlohmann::json& json)
|
void write_config(const nlohmann::json& json)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -9,6 +9,7 @@ namespace config
|
|||||||
void write_config(const nlohmann::json& json);
|
void write_config(const nlohmann::json& json);
|
||||||
|
|
||||||
nlohmann::json validate_config_field(const std::string& key, const field_value& value);
|
nlohmann::json validate_config_field(const std::string& key, const field_value& value);
|
||||||
|
nlohmann::json get_default_value(const std::string& key);
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
std::optional<T> get(const std::string& key)
|
std::optional<T> get(const std::string& key)
|
||||||
@ -23,6 +24,8 @@ namespace config
|
|||||||
return {value.get<T>()};
|
return {value.get<T>()};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nlohmann::json get_raw(const std::string& key);
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void set(const std::string& key, const T& value)
|
void set(const std::string& key, const T& value)
|
||||||
{
|
{
|
||||||
|
@ -482,17 +482,8 @@ namespace ui_scripting
|
|||||||
config_table["get"] = [](const std::string& key, const variadic_args& va)
|
config_table["get"] = [](const std::string& key, const variadic_args& va)
|
||||||
-> script_value
|
-> script_value
|
||||||
{
|
{
|
||||||
const auto default_value = va.size() >= 1 ? va[0] : script_value();
|
const auto value = config::get_raw(key);
|
||||||
const auto value = config::get<nlohmann::json>(key);
|
return json_to_lua(value);
|
||||||
|
|
||||||
if (value.has_value())
|
|
||||||
{
|
|
||||||
return json_to_lua(value.value());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return default_value;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config_table["getstring"] = [](const std::string& key, const variadic_args& va)
|
config_table["getstring"] = [](const std::string& key, const variadic_args& va)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user