diff --git a/polymod/Polymod.hx b/polymod/Polymod.hx index de714ae3..e68689d7 100644 --- a/polymod/Polymod.hx +++ b/polymod/Polymod.hx @@ -1704,8 +1704,16 @@ class ModMetadata m.license = JsonHelp.str(json, 'license'); m.metadata = JsonHelp.mapStr(json, 'metadata'); - m.dependencies = JsonHelp.mapVersionRule(json, 'dependencies'); - m.optionalDependencies = JsonHelp.mapVersionRule(json, 'optionalDependencies'); + try + { + m.dependencies = JsonHelp.mapVersionRule(json, 'dependencies'); + m.optionalDependencies = JsonHelp.mapVersionRule(json, 'optionalDependencies'); + } + catch (msg:Dynamic) + { + Polymod.error(MOD_METADATA_PARSE_FAILED, 'Error parsing mod dependencies from metadata: ${msg}', origin); + return null; + } return m; } diff --git a/polymod/format/JsonHelp.hx b/polymod/format/JsonHelp.hx index 9bc01235..65a99fe2 100644 --- a/polymod/format/JsonHelp.hx +++ b/polymod/format/JsonHelp.hx @@ -69,7 +69,8 @@ class JsonHelp { for (field in Reflect.fields(val)) { - var fieldVal = Reflect.field(val, field); + var fieldVal:Null = Reflect.field(val, field); + if (fieldVal == null || StringTools.trim(fieldVal) == '') fieldVal = '*'; map.set(field, VersionRule.stringToVersionRule(fieldVal)); } }