diff --git a/src/MaaCore/Assistant.cpp b/src/MaaCore/Assistant.cpp index 67286346c8..b6efd4cea5 100644 --- a/src/MaaCore/Assistant.cpp +++ b/src/MaaCore/Assistant.cpp @@ -423,7 +423,7 @@ void Assistant::working_proc() callback_json["finished_tasks"] = json::array(finished_tasks); const auto& sanity_report = status()->get_str(Status::FightSanityReport); - if (sanity_report) { + if (sanity_report && !sanity_report.value().empty()) { // [100, 135, "2023-09-01 09:31:53.527"] auto sanity_array = json::array(json::parse(*sanity_report).value_or(json::value(json::array()))); callback_json["sanity"] = sanity_array; diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index cb060b255a..c199d0658b 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -623,6 +623,11 @@ namespace MaaWpfGui.Main break; } + if (!sanity_report.Select(i => i.Type).SequenceEqual(new[] { JTokenType.Integer, JTokenType.Integer, JTokenType.String })) + { + break; + } + int[] sanity = sanity_report.Take(2).Select(i => (int)i).ToArray(); if (sanity[0] < 0 || sanity[1] <= 1) {