public async void DoHandleAsync(MiraiHttpSession session, IMessageBase[] chain, IBaseInfo info, bool isGroupMessage = true) { List <IMessageBase> result = null; IMessageBase img = null; sb.Clear(); switch (chain.First(m => m.Type == "Plain").ToString()) { case "单抽": logger.LogInformation($"{info.Name} 单抽"); var card = await GachaSingle(); var message = $"单抽结果: {stars[card.Item2.Rarity]} {data.Characters[card.Item2.CharacterId.ToString()].CharacterName[0]} - {card.Item2.Prefix[0]}"; img = await session.UploadPictureAsync(UploadTarget.Group, await client.GetCardThumbPath(card.Item2.ResourceSetName, card.Item1)); result = new List <IMessageBase> { new PlainMessage(message), img }; logger.LogInformation(message); break; case "当期池子": GachaDetail gd = GetRecentGachaDetail(); DateTime endTime = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse(gd.ClosedAt[0])).LocalDateTime; DateTime startTime = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse(gd.PublishedAt[0])).LocalDateTime; sb.AppendLine(gd.GachaName[0]); sb.AppendLine(gd.Information.NewMemberInfo[0]); sb.AppendLine($"{startTime} - {endTime}"); img = await session.UploadPictureAsync(UploadTarget.Group, await client.GetGachaBannerImagePath(gd.BannerAssetBundleName)); result = new List <IMessageBase> { new PlainMessage(sb.ToString()), img }; logger.LogInformation(sb.ToString()); break; case "十连": List <(string, Card)> cards = new List <(string, Card)>(11); for (int i = 0; i < 9; i++) { cards.Add(await GachaSingle()); } cards.Add(await GachaSingle(tenTimes: true)); img = await session.UploadPictureAsync(UploadTarget.Group, await render.RenderGachaImageAsync(cards)); sb.AppendLine("十连结果:"); foreach (var item in cards) { sb.AppendLine($"{stars[item.Item2.Rarity]} {data.Characters[item.Item2.CharacterId.ToString()].CharacterName[0]} - {item.Item2.Prefix[0]}"); } result = new List <IMessageBase> { new PlainMessage(sb.ToString()), img }; logger.LogInformation(sb.ToString()); break; default: break; } if (isGroupMessage) { await session.SendGroupMessageAsync(((IGroupMemberInfo)info).Group.Id, result.ToArray()); } else { await session.SendFriendMessageAsync(info.Id, result.ToArray()); } }