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; }