using Furion.Logging;
using NapCatRobotClient.Core.RobotAPI.Dto.Request;
namespace NapCatRobotClient.Service.Group.TextProcess
{
///
/// 查丹方
///
public class ImmortalElixirProcess
{
///
/// 处理群消息
///
///
///
public static async Task ProcessGroupRequest(string groupId, string message)
{
try
{
JObject json = JObject.Parse(message);
var messageArray = JArray.Parse(json["message"].ToString());
string groupMsg = messageArray.FirstOrDefault(o => o["type"].ToString() == "text"
&& !string.IsNullOrWhiteSpace(o["data"]["text"].ToString())
&& o["data"]["text"].ToString().Contains("查丹方")
)?["data"]?["text"]?.ToString();
if (string.IsNullOrWhiteSpace(groupMsg)) return false;
var rbotQ = messageArray.FirstOrDefault(o => o["type"].ToString() == "at")?["data"]?["qq"]?.ToString();
// 判断是否@了机器人
if (rbotQ == App.Configuration["QQConfig:RobotQQ"])
{
// 提取物品名称
var goodsName = groupMsg
.Split(' ', StringSplitOptions.RemoveEmptyEntries)
.FirstOrDefault(word => word != "查丹方")
?.Replace("查丹方", "")?.Trim();
if (!string.IsNullOrWhiteSpace(goodsName))
{
Dictionary dict = App.GetConfig>("丹方");
if (dict?.Count > 0)
{
dict.TryGetValue(goodsName, out string doc);
if (string.IsNullOrWhiteSpace(doc) is false)
{
GroupSendMessageRequest request = new()
{
GroupId = groupId,
Message = new()
{
new MessageItem()
{
Type = "text",
Data = new()
{
Text = doc
}
},
}
};
await RobotAPI.SendGroupText(request);
}
}
}
}
}
catch (Exception ex)
{
Log.Error($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 查丹方命令 发生异常,异常信息:{ex.Message},异常堆栈:{ex.StackTrace}", true);
}
return await Task.FromResult(true);
}
}
}