From 24d8ef5b3c9340eb42ded2c59d3b967b86539a24 Mon Sep 17 00:00:00 2001 From: LyMysterious Date: Sun, 2 Nov 2025 19:28:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=81=B5=E7=94=B0=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E9=80=82=E9=85=8D=E6=96=B0=E7=89=88=E6=96=87=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Group/TextProcess/LingTianProcess.cs | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/LingTianProcess.cs b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/LingTianProcess.cs index 3548560..e9bfa8a 100644 --- a/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/LingTianProcess.cs +++ b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/LingTianProcess.cs @@ -23,13 +23,30 @@ namespace NapCatRobotClient.Service.Group.TextProcess { return false; } + string groupMsg = null; + + var keywords = new[] + { + "道友的灵田还不能收取", + "道友本次采集成果", + "道友成功收获药材", + "道友的灵田灵气未满" + }; + + var messageArray = JArray.Parse(json["message"].ToString()); + + groupMsg = messageArray + .Where(o => o["type"]?.ToString() == "text") + .Select(o => o["data"]?["text"]?.ToString()) + .FirstOrDefault(text => + !string.IsNullOrWhiteSpace(text) && + keywords.Any(k => text.Contains(k)) + ); - string groupMsg = JArray.Parse(json["message"].ToString()).FirstOrDefault(o => o["type"].ToString() == "text" - && !string.IsNullOrWhiteSpace(o["data"]["text"].ToString()) && (o["data"]["text"].ToString().Contains("道友的灵田还不能收取") || o["data"]["text"].ToString().Contains("道友本次采集成果") || o["data"]["text"].ToString().Contains("道友成功收获药材")))?["data"]?["text"]?.ToString(); if (string.IsNullOrWhiteSpace(groupMsg)) return false; List goods = new(); - if (groupMsg.Contains("道友的灵田还不能收取")) + if (groupMsg.Contains("道友的灵田还不能收取")|| groupMsg.Contains("道友的灵田灵气未满")) { double ts = ConvertLastTime(groupMsg); if (ts > 0) @@ -149,6 +166,10 @@ namespace NapCatRobotClient.Service.Group.TextProcess if (match.Success) { hours = double.Parse(match.Groups[1].Value); + } + else + { + } return hours; }