public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("查日常")) { WeiBoContentItem item = new WeiBoContentItem(); if (nowModel.What == "查日常") { if (lastestItem != null) { item = lastestItem.Time.Date == DateTime.Now.Date ? lastestItem : WeiboTool.GetWeiboByUid("1761587065", "1076031761587065", "#剑网3江湖百晓生#").OrderByDescending(p => p.Time).FirstOrDefault(); //WeiboTool.GetWeiBoTopicContentV1("剑网3江湖百晓生", "剑网3官方微博").FirstOrDefault(); } else { item = WeiboTool.GetWeiboByUid("1761587065", "1076031761587065", "#剑网3江湖百晓生#").OrderByDescending(p => p.Time).FirstOrDefault();//WeiboTool.GetWeiBoTopicContentV1("剑网3江湖百晓生", "剑网3官方微博").OrderByDescending(p => p.Time).FirstOrDefault(); } if (item == null) { _mahuaApi.SendGroupMessage(msg.FromGroup, "[日常]QAQ查询失败,请联系管理员"); } else { if (nowModel.Who == "文") { _mahuaApi.SendGroupMessage(msg.FromGroup).Text("[日常]来自 " + item.Author + ":").Newline().Text(item.ContentStr).Newline().Text(@"本信息由新浪微博-剑网3江湖百晓生-超话提供").Done(); } else { _mahuaApi.SendGroupMessage(msg.FromGroup).Text(CQCode.SendLink("查日常-" + item.Time.ToShortDateString(), item.Pic, item.ContentStr.Replace("#剑网3江湖百晓生#", "").Trim(), item.Pic)).Done(); } } } } successor.ProcessRequset(msg, nowModel); }
public void Analysis(SocketMessage sm) { if (sm == null) { Logger.Instance.WriteLog("sm结构体为空"); return; } if (sm.realHeader == null) { Logger.Instance.WriteLog("sm.realHeader值为空"); return; } UInt16 cmd = sm.realHeader.wType; if (m_MsgMap.ContainsKey(cmd)) { AnalysisMsg am = (AnalysisMsg)m_MsgMap[cmd]; am(sm); } else { Logger.Instance.WriteLog("没有对应的Cmd指令 :" + sm.realHeader.ToString()); } }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("签到")) { if (msg.Message == "签到") { var signEnt = DALSign.GetSign(msg.FromQq); bool signed = false; string content = $"给小可爱10个赞!\r\n麻花疼:每天每Q最多点500赞~先到先得!"; if (signEnt != null) { signed = (signEnt.LastSign.Date == DateTime.Now.Date); if (signed) { content = $"您于{signEnt.LastSign.ToShortTimeString()}在{(signEnt.SignGid == msg.FromGroup ? "本群" : "隔壁群")}签过到了!\r\n没有多的赞惹TuT"; } } if (!signed) { SendLike(msg.FromQq); DALSign.SetSign(msg.FromQq, msg.FromGroup); } _mahuaApi.SendGroupMessage(msg.FromGroup). Text(CQCode.SendLink(signed ? "您签过到了!" : "签到成功!", CQCode.GetQQHead(msg.FromQq), content)) .Done(); return; } } successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("建议")) { if (nowModel.What == "建议") { _mahuaApi.SendPrivateMessage(Config.ConfigModel.MasterQQ).Text($"来自群{msg.FromGroup}的{msg.FromQq}:{nowModel.Who} {nowModel.How}").Done(); return; } } successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("Roll点")) { if (nowModel.What.ToLower() == "/roll") { _mahuaApi.SendGroupMessage(msg.FromGroup).At(msg.FromQq).Text($"Roll了 {ToolClass.RandomGet(0,100)} 点").Done(); return; } } successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("菜单")) { if (msg.Message.Trim() == "菜单") { _mahuaApi.SendGroupMessage(msg.FromGroup).Text(Config.ConfigModel.MenuStr).Done(); _mahuaApi.SendGroupMessage(msg.FromGroup).Text(CQCode.SendLink("小T完全手册", CQCode.GetQQHead(_mahuaApi.GetLoginQq()), "小T操作手册:最新最全的小T使用攻略", "https://traceless.site/index.php/archives/62/")).Done(); return; } } successor.ProcessRequset(msg, nowModel); }
public void ProcessFriendMessage(PrivateMessageFromFriendReceivedContext context) { try { AnalysisMsg nowModel = new AnalysisMsg(context.Message); _MenuApp.ProcessRequset(context, nowModel); } catch (Exception ex) { _mahuaApi.SendPrivateMessage(Config.ConfigModel.MasterQQ).Text(ex.ToString()); } // 不要忘记在MahuaModule中注册 }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("签到")) { if (msg.Message == "签到") { var signEnt = DALSign.GetSign(msg.FromQq); string content = $"给小可爱10个赞!\r\n麻花疼:每天每Q最多点500赞~先到先得!"; _mahuaApi.SendGroupMessage(msg.FromGroup). Text(CQCode.SendLink("签到成功!", CQCode.GetQQHead(msg.FromQq), content)) .Done(); return; } } successor.ProcessRequset(msg, nowModel); }
/// <summary> /// 接收包体数据 /// </summary> /// <param name="ar"></param> private void RcvBodyData(IAsyncResult ar) { try { NetPkg pack = (NetPkg)ar.AsyncState; int len = skt.EndReceive(ar); if (len > 0) { pack.bodyIndex += len; if (pack.bodyIndex < pack.bodyLen) { skt.BeginReceive(pack.bodyBuff, pack.bodyIndex, pack.headLen - pack.bodyIndex, SocketFlags.None, new AsyncCallback(RcvBodyData), pack ); } else { T msg = AnalysisMsg.DeSerialize <T>(pack.bodyBuff); OnReciveMsg(msg); //循环接收 pack.ResetData(); skt.BeginReceive( pack.headBuff, 0, pack.headLen, SocketFlags.None, new AsyncCallback(RcvHeadData), pack); } } else { OnDisConnected(); Clear(); } } catch (Exception e) { NetLogger.LogMsg("接收包体数据错误:" + e.Message, LogLevel.Error); } }
public void ProcessGroupMessage(GroupMessageReceivedContext context) { if (IsDebug && context.FromGroup != DebugGid) { return; } try { AnalysisMsg nowModel = new AnalysisMsg(context.Message); _MenuApp.ProcessRequset(context, nowModel); } catch (Exception ex) { _mahuaApi.SendPrivateMessage(Config.ConfigModel.MasterQQ).Text(ex.ToString()).Done(); } // 不要忘记在MahuaModule中注册 }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("开服监控")) { if (nowModel.What == "开服监控") { _serverRemind.StartAsync(msg.FromGroup, nowModel.Who).GetAwaiter().GetResult(); return; } } if (Config.ConfigModel.IsFuncOpen("开服查询")) { if (nowModel.What == "开服查询") { _serverRemind.GoServerQuery(msg.FromGroup, nowModel.Who); return; } } successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("查日常")) { WeiBoContentItem item = new WeiBoContentItem(); if (nowModel.What == "查日常") { if (lastestItem != null) { item = (lastestItem.Time.Date == DateTime.Now.Date) ? lastestItem : WeiboTool.GetWeiboByUid("1761587065", "1076031761587065", "#剑网3江湖百晓生#").OrderByDescending(p => p.Time).FirstOrDefault(); } else { item = WeiboTool.GetWeiboByUid("1761587065", "1076031761587065", "#剑网3江湖百晓生#").OrderByDescending(p => p.Time).FirstOrDefault(); } lastestItem = item; if (nowModel.OriginStr.Contains("文") && item != null) { _mahuaApi.SendGroupMessage(msg.FromGroup).Text("[日常]来自 " + item.Author + ":").Newline().Text(item.ContentStr).Newline().Text($"图片-{item.Pic}").Newline().Text(@"本信息由新浪微博-剑网3江湖百晓生-超话提供").Done(); } else if (item != null) { _mahuaApi.SendGroupMessage(msg.FromGroup).Text(CQCode.SendLink("查日常-" + item.Time.ToShortDateString(), item.Pic, item.ContentStr.Replace("#剑网3江湖百晓生#", "").Trim(), item.Pic)).Done(); } if (item == null) { if (Config.DefaltItem != null) { _mahuaApi.SendGroupMessage(msg.FromGroup).Text("[日常]QAQ官微又偷懒了,为您提供" + Config.DefaltItem.Time.ToShortDateString() + " 来自 " + Config.DefaltItem.Author + ":").Newline().Text(Config.DefaltItem.ContentStr).Newline().Text(@"本信息由官博偷懒没发日常倾情触发,更新请通过建议提交日常信息给我~").Done(); } else { _mahuaApi.SendGroupMessage(msg.FromGroup, "[日常]QAQ查询失败,请联系管理员"); } } } } successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("宠物")) { if (nowModel.What == "宠物") { if (nowModel.OrderCount > 1) { var url = Config.jx3ToolClass.GetPetCd(nowModel.Who, nowModel.How); if (url != "[宠物CD] 服务器不存在,请联系管理员!") { _mahuaApi.SendGroupMessage(msg.FromGroup).Text(CQCode.SendLink("宠物CD-" + nowModel.Who, "http://file.yayaquanzhidao.com/logo.ico", "点击查看'" + nowModel.Who + "' 结果【来自:鸭鸭宠物CD查询】", url)).Done(); } else { _mahuaApi.SendGroupMessage(msg.FromGroup).Text(url).Done(); } return; } } } successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { if (Config.ConfigModel.IsFuncOpen("抽锦鲤")) { if (nowModel.What == "抽锦鲤") { try { var data = ToolClass.GetIni(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{msg.FromGroup}.ini")); if (data == null) { _mahuaApi.SendGroupMessage(msg.FromGroup).At(msg.FromQq) .Text($"群成员未导入,请联系管理员").Done(); } else { var allMember = data.ToList(); var str = nowModel.Who; var orderid = Guid.NewGuid().ToString("N").Substring(0, 5); _mahuaApi.SendGroupMessage(msg.FromGroup).At(msg.FromQq) .Text($"5S后,开始从{allMember.Count()}人中抽取幸运锦鲤{str}!").Newline().Text($"锦鲤编号:{orderid}").Done(); System.Threading.Thread.Sleep(5000); _mahuaApi.SendGroupMessage(msg.FromGroup).Text($"Boom!{orderid}号{str}的锦鲤为!").Newline() .At(allMember[ToolClass.RandomGet(0, allMember.Count())]).Newline() .Text("围殴他ヽ(●-`Д´-)ノ!").Done(); } } catch { successor.ProcessRequset(msg, nowModel); } } } successor.ProcessRequset(msg, nowModel); }
/// <summary> /// 群消息处理 /// </summary> /// <param name="msg"></param> public abstract void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel);
public override void ProcessRequset(PrivateMessageFromFriendReceivedContext msg, AnalysisMsg nowModel) { if (msg.FromQq == Config.ConfigModel.MasterQQ) { if (nowModel.What == "反馈") { _mahuaApi.SendGroupMessage(nowModel.Who).Text($"{nowModel.How}").Newline().Text("[来自作者的反馈]").Done(); return; } if (nowModel.What == "个人反馈") { _mahuaApi.SendPrivateMessage(nowModel.Who).Text($"{nowModel.How}").Newline().Text("[来自作者的反馈]").Done(); return; } } successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(PrivateMessageFromFriendReceivedContext msg, AnalysisMsg nowModel) { return; }
public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel) { return; }
public override void ProcessRequset(PrivateMessageFromFriendReceivedContext msg, AnalysisMsg nowModel) { successor.ProcessRequset(msg, nowModel); }
public override void ProcessRequset(PrivateMessageFromFriendReceivedContext msg, AnalysisMsg nowModel) { if (msg.FromQq == Config.ConfigModel.MasterQQ) { if (nowModel.What == "反馈") { _mahuaApi.SendGroupMessage(nowModel.Who).Text($"{nowModel.How}").Newline().Text("[来自作者的反馈]").Done(); return; } if (nowModel.What == "个人反馈") { _mahuaApi.SendPrivateMessage(nowModel.Who).Text($"{nowModel.How}").Newline().Text("[来自作者的反馈]").Done(); return; } if (nowModel.What == "设日常") { Config.DefaltItem = new WeiBoContentItem { Author = "帅气的作者手动创建", Time = Convert.ToDateTime(nowModel.Who), ContentStr = nowModel.How, Pic = @"https://traceless.site/" }; } } successor.ProcessRequset(msg, nowModel); }
public void ProcessGroupMessage(GroupMessageReceivedContext context) { try { AnalysisMsg nowModel = new AnalysisMsg(context.Message); string cmd = nowModel.What.ToUpper(); if (cmd == "R6战绩") { var ret = Apis.GetUserBaseInfo(nowModel.Who); UserDetailInfoResp resp = Apis.GetUserDetailInfo(ret); if (resp == null) { _mahuaApi.SendGroupMessage(context.FromGroup) .Text(@"[R6战绩]查无此人").Done(); return; } var res = resp.result; var gen = res.game_queues[0]; var rank = res.game_queues[1]; var cas = res.game_queues[2]; _mahuaApi.SendGroupMessage(context.FromGroup) .Text($"[{res.player.level}]{res.player.nickname}-{res.player.update_desc}更新 战绩如下:").Newline() .Text(Utils.ConvertToDetailStr(gen)).Newline().Newline() .Text(Utils.ConvertToDetailStr(rank)).Newline().Newline() .Text(Utils.ConvertToDetailStr(cas)) .Done(); } else if (cmd == "R6排位") { UserBaseInfoResp baseRes = Apis.GetUserBaseInfo(nowModel.Who); UserSeasonResp res = Apis.GetUserSeasonInfo(baseRes); if (res == null) { _mahuaApi.SendGroupMessage(context.FromGroup) .Text(@"[R6排位]查无此人").Done(); } List <SeasonItem> infos = res.seasons.Getinfos().OrderByDescending(p => p.id).Take(3).ToList(); StringBuilder sb = new StringBuilder(); RegionsItem nowSeason = infos.FirstOrDefault().regions.getBest(); var rankItem = infos.FirstOrDefault().rankings; sb.AppendLine($"{baseRes.result.player_list.FirstOrDefault().name}-排名(全球/亚/美/欧):{rankItem.global}/{rankItem.apac}/{rankItem.ncsa}/{rankItem.emea}-MMR[{nowSeason.mmr}]-({nowSeason.prev_rank_mmr}/{nowSeason.next_rank_mmr})"); infos.ForEach(p => { var item = p.regions.getBest(); sb.AppendLine($"[{p.name}]现/顶:{Utils.ConvertToRankDes(item.rank)}/{Utils.ConvertToRankDes(item.max_rank)}-能力:{item.skill_mean}(±{item.skill_standard_deviation})"); }); _mahuaApi.SendGroupMessage(context.FromGroup) .Text(sb.ToString()) .Text(@"详情:https://r6stats.com/zh/stats/" + res.uplay_id + "/seasons").Done(); } else if (cmd == "R6记录") { var ret = Apis.GetUserBaseInfo(nowModel.Who); UserDetailInfoResp resp = Apis.GetUserDetailInfo(ret); if (resp == null) { _mahuaApi.SendGroupMessage(context.FromGroup) .Text(@"[R6记录]查无此人").Done(); return; } var res = resp.result; var hisItems = res.items.FirstOrDefault(p => p.type == "matches"); StringBuilder sb = new StringBuilder(); foreach (var his in hisItems.content) { if (his.mode == "休闲") { sb.AppendLine( $"[{his.mode}]-场次(胜/负){his.count}({his.win}/{his.lose})-KD(K/D){his.kd}({his.k}/{his.d})-{his.time}"); } else { sb.AppendLine( $"[{his.rating}{(his.trend=="down"?"↓":"↑")}({his.diff})]-场次(胜/负){his.count}({his.win}/{his.lose})-KD(K/D){his.kd}({his.k}/{his.d})-{his.time}"); } } _mahuaApi.SendGroupMessage(context.FromGroup) .Text($"[{res.player.level}]{res.player.nickname}-{res.player.update_desc}更新 记录如下:").Newline() .Text(sb.ToString().Trim()).Done(); } } catch (Exception ex) { _mahuaApi.SendPrivateMessage("415206409").Text(ex.ToString()).Done(); } // 不要忘记在MahuaModule中注册 }
/// <summary> /// 私聊消息处理 /// </summary> /// <param name="msg"></param> public abstract void ProcessRequset(PrivateMessageFromFriendReceivedContext msg, AnalysisMsg nowModel);
/// <summary> /// 发送网络数据 /// </summary> /// <param name="msg"></param> public void SendMsg(T msg) { byte[] data = AnalysisMsg.PackLenInfo(AnalysisMsg.Serialize <T>(msg)); SendMsg(data); }