From 77bd135d8c83cc354b4ab116140b6b2096b5a267 Mon Sep 17 00:00:00 2001 From: Pooki <170284226+Pooki-LTSC@users.noreply.github.com> Date: Mon, 19 Oct 2026 15:57:24 -0500 Subject: [PATCH] Catch invalid dependency versions and treat empty strings as any version second fix is to match what is said here https://github.com/FunkinCrew/polymod/blob/develop/docs/docs/dependencies.markdown (credits to ComedyLost for pointing this out) --- polymod/Polymod.hx | 12 ++++++++++-- polymod/format/JsonHelp.hx | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) 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)); } }