Пример #1
0
 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);
 }
Пример #2
0
    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());
        }
    }
Пример #3
0
 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);
 }
Пример #6
0
 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);
 }
Пример #7
0
 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中注册
 }
Пример #8
0
 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);
 }
Пример #9
0
        /// <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);
            }
        }
Пример #10
0
 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中注册
 }
Пример #11
0
 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);
 }
Пример #12
0
 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);
 }
Пример #13
0
 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);
 }
Пример #14
0
 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);
 }
Пример #15
0
 /// <summary>
 /// 群消息处理
 /// </summary>
 /// <param name="msg"></param>
 public abstract void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel);
Пример #16
0
        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);
        }
Пример #17
0
 public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel)
 {
     successor.ProcessRequset(msg, nowModel);
 }
Пример #18
0
 public override void ProcessRequset(PrivateMessageFromFriendReceivedContext msg, AnalysisMsg nowModel)
 {
     return;
 }
Пример #19
0
 public override void ProcessRequset(GroupMessageReceivedContext msg, AnalysisMsg nowModel)
 {
     return;
 }
Пример #20
0
 public override void ProcessRequset(PrivateMessageFromFriendReceivedContext msg, AnalysisMsg nowModel)
 {
     successor.ProcessRequset(msg, nowModel);
 }
Пример #21
0
        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);
        }
Пример #22
0
        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中注册
        }
Пример #23
0
 /// <summary>
 /// 私聊消息处理
 /// </summary>
 /// <param name="msg"></param>
 public abstract void ProcessRequset(PrivateMessageFromFriendReceivedContext msg, AnalysisMsg nowModel);
Пример #24
0
 /// <summary>
 /// 发送网络数据
 /// </summary>
 /// <param name="msg"></param>
 public void SendMsg(T msg)
 {
     byte[] data = AnalysisMsg.PackLenInfo(AnalysisMsg.Serialize <T>(msg));
     SendMsg(data);
 }