コード例 #1
0
 public static int Event_eventGroupMsg(int subType, int msgId, long fromGroup, long fromQQ, string fromAnonymous, IntPtr msg, int font)
 {
     if (Event_eventGroupMsgHandler != null)
     {
         CQGroupMessageEventArgs args = new CQGroupMessageEventArgs(AppData.CQApi, AppData.CQLog, 2, 2, "群消息处理", "_eventGroupMsg", 30000, subType, msgId, fromGroup, fromQQ, fromAnonymous, msg.ToString(CQApi.DefaultEncoding), false);
         Event_eventGroupMsgHandler(typeof(CQEventExport), args);
         return((int)(args.Handler ? CQMessageHandler.Intercept : CQMessageHandler.Ignore));
     }
     return(0);
 }
コード例 #2
0
ファイル: GiveHandle.cs プロジェクト: ZGarry/SimpleXW-Code
        /// <summary>
        /// 赠送
        /// </summary>
        /// <param name="e"></param>
        public static void GiveHandle(CQGroupMessageEventArgs e)
        {
            //解析参数
            CQCode cqat = e.FromQQ.CQCode_At();
            var    qq   = e.FromQQ.Id;

            //获取个人信息
            if (!Game.Players.ContainsKey(qq))
            {
                FixStroy.WarnNoCreateUser(e);
                return;
            }
            var p = Game.Players[qq];

            p.SetEIn(e);

            if (p.LevelNum < 7)
            {
                p.SendMes("境界达到寻灵境才可以赠送东西给伴侣物品");
                return;
            }

            if (e.Message.Text == "赠送")
            {
                //展示信息
                p.SendMes("使用‘赠送#物品名’来把自己背包中的一个道具,赠送给自己的伴侣");
                return;
            }

            if (e.Message.Text.Contains("赠送#"))
            {
                //展示信息
                var name = e.Message.Text.Split('#')[1];
                if (!p.Package.Contain(name))
                {
                    p.SendMes("请不要送出你没有的物品");
                    return;
                }


                if (p.StatusInt.Get("双修分") < 50)
                {
                    p.SendMes("清热分还不到50,还不能赠送物品~请再接再厉");
                    return;
                }
                p.Package.LoseOne(name);
                var p2 = Game.Players[long.Parse(p.StatusStr.Get("双修对象"))];
                //获得
                p2.Package.AddOne(name);
                p.SendMes($"你失去了{name},对方获得了{name}");
            }

            return;
        }
コード例 #3
0
 public static void processGroupMessage(CQGroupMessageEventArgs context)
 {
     foreach (MessageProcess messageObserver in list)
     {
         messageObserver.processGroupMsg(context);
         if (context.Handler)
         {
             return;
         }
     }
 }
コード例 #4
0
        public void GroupMessage(object sender, CQGroupMessageEventArgs e)
        {
            var config      = WhatDidToday.Config;
            var commandUrge = config.GroupCommandUrge.Replace("%Name%", config.CreatorName);
            var qq          = config.CreatorQQ;

            if (e.Message.OriginalMessage == commandUrge)
            {
                AppData.CQApi.SendPrivateMessage(qq, config.PrivateUrge.Replace("%Name%", config.CreatorName));
            }
        }
コード例 #5
0
        void ReadConfig(CQGroupMessageEventArgs e)
        {
            string path = $@"{cq.CQApi.AppDirectory}Config.ini";

            order_KC1          = INIhelper.IniRead("Order", "KC1", "#扩充单抽", path);
            order_KC10         = INIhelper.IniRead("Order", "KC10", "#扩充十连", path);
            order_JZ1          = INIhelper.IniRead("Order", "JZ1", "#精准单抽", path);
            order_JZ10         = INIhelper.IniRead("Order", "JZ10", "#精准十连", path);
            order_register     = INIhelper.IniRead("Order", "Register", "#抽卡注册", path);
            order_sign         = INIhelper.IniRead("Order", "Sign", "#打扫甲板", path);
            order_signreset    = INIhelper.IniRead("Order", "SignReset", "#甲板积灰", path);
            order_querydiamond = INIhelper.IniRead("Order", "QueryDiamond", "#我的水晶", path);
            order_help         = INIhelper.IniRead("Order", "Help", "#抽卡帮助", path);
            order_getpool      = INIhelper.IniRead("Order", "GetPool", "#获取池子", path);

            KC1          = INIhelper.IniRead("Answer", "KC1", "少女祈祷中……", path);
            KC10         = INIhelper.IniRead("Answer", "KC10", "少女祈祷中……", path);
            JZ1          = INIhelper.IniRead("Answer", "JZ1", "少女祈祷中……", path);
            JZ10         = INIhelper.IniRead("Answer", "JZ10", "少女祈祷中……", path);
            register     = INIhelper.IniRead("Answer", "Register", "<@>欢迎上舰,这是你的初始资源(<#>)水晶", path);
            mutiRegister = INIhelper.IniRead("Answer", "MutiRegister", "重复注册是不行的哦", path);
            sign1        = INIhelper.IniRead("Answer", "Sign1", "大姐你回来了,天气这么好一起多逛逛吧", path);
            sign2        = INIhelper.IniRead("Answer", "Sign2", "<@>这是你今天清扫甲板的报酬,拿好(<#>水晶)", path);
            mutiSign     = INIhelper.IniRead("Answer", "MutiSign", "今天的甲板挺亮的,擦一遍就行了", path);
            noReg        = INIhelper.IniRead("Answer", "NoReg", "<@>不是清洁工吧?来输入#抽卡注册 来上舰", path);
            lowDiamond   = INIhelper.IniRead("Answer", "LowDiamond", "<@>水晶不足,无法进行抽卡,你还剩余<#>水晶", path);
            queryDiamond = INIhelper.IniRead("Answer", "QueryDiamond", "<@>你手头还有<#>水晶", path);
            IniObject iObject = IniObject.Load(path, Encoding.Default);     // 从指定的文件中读取 Ini 配置项, 参数1: 文件路径, 参数2: 编码格式 [默认: ANSI]

            try
            {
                IniValue value1 = iObject["Answer"]["Help"];
                help = value1.ToString().Replace("\\", @"\");
            }
            catch
            {
                help = "";
            }
            if (help == "")
            {
                help = "水银抽卡人 给你抽卡的自信(~ ̄▽ ̄)~ \n合成图片以及发送图片需要一些时间,请耐心等待\n单抽是没有保底的\n#抽卡注册\n#我的水晶\n#打扫甲板(签到)\n#甲板积灰(重置签到,管理员限定)\n\n#精准单抽\n#扩充单抽\n#精准十连\n#扩充十连";
            }
            reset1 = INIhelper.IniRead("Answer", "Reset1", "贝贝龙来甲板找女王♂van,把甲板弄脏了,大家又得打扫一遍", path);
            reset2 = INIhelper.IniRead("Answer", "Reset2", "草履虫非要给鸭子做饭,厨房爆炸了,黑紫色的东西撒了一甲板,把甲板弄脏了,大家又得打扫一遍", path);
            reset3 = INIhelper.IniRead("Answer", "Reset3", "你和女武神们被从深渊扔了回来,来自深渊的炉灰把甲板弄脏了,大家又得打扫一遍", path);
            reset4 = INIhelper.IniRead("Answer", "Reset4", "由于神秘东方村庄的诅咒,你抽卡的泪水把甲板弄脏了,大家又得打扫一遍", path);
            reset5 = INIhelper.IniRead("Answer", "Reset5", "理律疯狂在甲板上逮虾户,把甲板弄脏了,大家又得打扫一遍", path);
            reset6 = INIhelper.IniRead("Answer", "Reset6", "希儿到处找不到鸭子,里人格暴走,把甲板弄脏了,大家又得打扫一遍", path);

            registermin = Convert.ToInt32(INIhelper.IniRead("GetDiamond", "RegisterMin", "0", path));
            registermax = Convert.ToInt32(INIhelper.IniRead("GetDiamond", "RegisterMax", "14000", path));
            signmin     = Convert.ToInt32(INIhelper.IniRead("GetDiamond", "SignMin", "0", path));
            signmax     = Convert.ToInt32(INIhelper.IniRead("GetDiamond", "SignMax", "14000", path));
        }
コード例 #6
0
        private static string DBPath;                                              //数据库路径

        #endregion

        #region 构造函数

        /// <summary>
        /// 在接受到群消息时使用
        /// </summary>
        /// <param name="sender">sender object</param>
        /// <param name="eventArgs">CQAppEnableEventArgs类</param>
        /// <param name="time">触发时间</param>
        public GuildManagerDBHelper(object sender, CQGroupMessageEventArgs eventArgs)
        {
            this.QQID      = eventArgs.FromQQ.Id;
            this.GroupId   = eventArgs.FromGroup.Id;
            this.Sender    = sender;
            this.EventArgs = eventArgs;
            GuildId        = new string[] //公会信息
            {
                GroupId.ToString(),       //公会所在群号
            };
            DBPath = SugarUtils.GetDBPath(eventArgs.CQApi.GetLoginQQ().Id.ToString());
        }
コード例 #7
0
    /// <summary>
    /// Type=2 群消息<para/>
    /// 处理收到的群消息
    /// </summary>
    /// <param name="sender">事件的触发对象</param>
    /// <param name="e">事件的附加参数</param>
    public void GroupMessage(object sender, CQGroupMessageEventArgs e)
    {
        // 本子程序会在酷Q【线程】中被调用,请注意使用对象等需要初始化(CoInitialize,CoUninitialize)。
        // 这里处理消息
        if (e.IsFromAnonymous)
        {
            e.Handler = false;
            return;
        }

        MessageProcessInterface.processGroupMessage(e);
    }
コード例 #8
0
 public string Handler(CQGroupMessageEventArgs e, Base_SQLHelper.SQLHelperData b)
 {
     if (e.FromGroup.SetGroupMemberBanSpeak(e.FromQQ, TimeSpan.FromHours(2)))
     {
         if (SQL.UserExists(b, e.FromQQ))
         {
             SQL.AddFavorEveryChat(b, e.FromQQ);
         }
         return(CQApi.CQCode_Image("sm/cai.jpg").ToString());
     }
     return("臣妾做不到啊");
 }
コード例 #9
0
        public static void MenuHandle(CQGroupMessageEventArgs e)
        {
            //解析参数
            CQCode cqat = e.FromQQ.CQCode_At();

            //展示信息
            e.FromGroup.SendGroupMessage(cqat, " ", Face.RandomFace(), @"
签到 挑战@一个玩家 查看
查看#物品名 装备栏 看大佬
使用#物品名 购买#物品名 商店
双修@一个玩家");
        }
コード例 #10
0
 public string Handler(CQGroupMessageEventArgs e, Base_SQLHelper.SQLHelperData b)
 {
     if (e.FromGroup.SetGroupMemberBanSpeak(e.FromQQ, TimeSpan.FromHours(8)))
     {
         if (SQL.UserExists(b, e.FromQQ))
         {
             SQL.AddFavorEveryChat(b, e.FromQQ);
         }
         return("有个好梦~");
     }
     return("臣妾做不到啊");
 }
コード例 #11
0
ファイル: RobustHandle.cs プロジェクト: ZGarry/SimpleXW-Code
        public static void RobustHandle(CQGroupMessageEventArgs e)
        {
            //解析参数
            var qq    = e.FromQQ.Id;
            var codes = e.Message.CQCodes;

            //无此人,直接返回
            if (!Game.Players.ContainsKey(qq))
            {
                return;
            }
            var p = Game.Players[qq];

            p.SetEIn(e);

            //无此道具,提示返回
            if (!p.Package.Contain("神偷手套"))
            {
                p.SendMes("你没有神偷手套,无法偷取");
                return;
            }

            //异常处理
            if (codes.Count != 1)
            {
                p.SendMes("请选择唯一一个角色");
                return;
            }

            //获取被偷玩家
            long qq2 = long.Parse(codes[0].Items["qq"]);

            //如果这名玩家是自己
            if (p.QQ == qq2)
            {
                p.SendMes("请不要偷取自己");
                return;
            }
            if (!Game.Players.ContainsKey(qq2))
            {
                FixStroy.WarnNoUser(e);
                return;
            }
            var p2 = Game.Players[qq2];

            int num = p2.StatusInt.Get("修为增加数值");

            p.XW  += num;
            p2.XW -= num;
            p.SendMes($"你成功从对方处偷取了修为{num}点");
            p.Package.LoseOne("神偷手套");
        }
コード例 #12
0
ファイル: Event_GroupMessage.cs プロジェクト: hd80606b/AVtoBV
        /// <summary>
        /// 收到群消息
        /// </summary>
        /// <param name="sender">事件来源</param>
        /// <param name="e">事件参数</param>
        public void GroupMessage(object sender, CQGroupMessageEventArgs e)
        {
            #region ---AV号与BV号的转换---
            if (e.Message.Text.Contains("bilibili.com/video/BV"))
            {
                {
                    try
                    {
                        string bv_replace = "/BV(.){9,10}";
                        string bv         = System.Text.RegularExpressions.Regex.Match(e.Message.Text, bv_replace).ToString();
                        bv = bv.Replace("/", "");
                        WebClient                wb           = new WebClient();
                        byte[]                   DownloadData = wb.DownloadData("http://api.bilibili.com/x/web-interface/archive/stat?bvid=" + bv);
                        string                   EncodeStr    = System.Text.Encoding.UTF8.GetString(DownloadData);
                        JavaScriptSerializer     js           = new JavaScriptSerializer();
                        bilibiliClass.Rootobject root         = js.Deserialize <bilibiliClass.Rootobject>(EncodeStr);
                        e.CQApi.SendGroupMessage(e.FromGroup, CQApi.CQCode_At(e.FromQQ), "AV号:av" + root.data.aid + "\nBV号:" + root.data.bvid + "\n播放量:" + root.data.view + "\n收藏量:" + root.data.favorite);
                    }
                    catch
                    {
                        e.CQApi.SendGroupMessage(e.FromGroup, CQApi.CQCode_At(e.FromQQ) + "哦豁,出错了。");
                        e.Handler = false;
                        return;
                    }
                }
            }

            if (e.Message.Text.Contains("bilibili.com/video/av"))
            {
                {
                    try
                    {
                        string av_replace = "/av(.){1,10}";
                        string av         = System.Text.RegularExpressions.Regex.Match(e.Message.Text, av_replace).ToString();
                        av = av.Replace("/av", "");
                        WebClient                wb           = new WebClient();
                        byte[]                   DownloadData = wb.DownloadData("http://api.bilibili.com/x/web-interface/archive/stat?aid=" + av);
                        string                   EncodeStr    = System.Text.Encoding.UTF8.GetString(DownloadData);
                        JavaScriptSerializer     js           = new JavaScriptSerializer();
                        bilibiliClass.Rootobject root1        = js.Deserialize <bilibiliClass.Rootobject>(EncodeStr);
                        e.CQApi.SendGroupMessage(e.FromGroup, CQApi.CQCode_At(e.FromQQ), "AV号:av" + root1.data.aid + "\nBV号:" + root1.data.bvid + "\n播放量:" + root1.data.view + "\n收藏量:" + root1.data.favorite);
                    }
                    catch
                    {
                        e.CQApi.SendGroupMessage(e.FromGroup, CQApi.CQCode_At(e.FromQQ) + "哦豁,出错了。");
                        e.Handler = false;
                        return;
                    }
                }
            }
            #endregion
        }
コード例 #13
0
        /// <summary>
        /// 收到群消息
        /// </summary>
        /// <param name="sender">事件来源</param>
        /// <param name="e">事件参数</param>
        public void GroupMessage(object sender, CQGroupMessageEventArgs e)
        {
            // 获取 At 某人对象
            if (e.FromGroup.Id == 451362594)
            {
                CQCode cqat = e.FromQQ.CQCode_At();

                // 往来源群发送一条群消息, 下列对象会合并成一个字符串发送
                e.FromGroup.SendGroupMessage(cqat, " 您发送了一条消息: ", e.Message);
                // 设置该属性, 表示阻塞本条消息, 该属性会在方法结束后传递给酷Q
                e.Handler = true;
            }
        }
コード例 #14
0
 public static void MineHandle(CQGroupMessageEventArgs e)
 {
     e.FromGroup.SendGroupMessage($"你说了’{cookies.ThatWords.word}’,踩到地雷了!'负伤'加入物品栏!");
     //如果他没创建游戏,也没关系
     try
     {
         Game.Players[e.FromQQ.Id].Package.AddOne("负伤");
     }
     catch
     {
         e.FromGroup.SendGroupMessage("你还未开始游戏,物品栏未创建,输入‘签到’来开始");
     }
     cookies.ThatWords.Reset();
 }
コード例 #15
0
        public void GroupMessage(object sender, CQGroupMessageEventArgs e)
        {
            Chat   chat = Chat.Of(e.FromGroup.Id);
            string msg  = e.Message.Text;

            if (msg.StartsWith(Global.Prefix))
            {
                chat.AddMessage(e.Message.Text, e.FromQQ.Id, Chat.Message.Command);
                QQGroupMemberType memberType = e.FromGroup.GetGroupMemberInfo(e.FromQQ).MemberType;
                DMEnv             env        = new DMEnv(
                    e.FromQQ.Id,
                    e.FromGroup.Id,
                    memberType == QQGroupMemberType.Manage || memberType == QQGroupMemberType.Creator
                    );
                if (Global.DoAt)
                {
                    env.Append(CQApi.CQCode_At(e.FromQQ));
                }
                if (Global.Reply(msg, env))
                {
                    string reply = env.ToString().Trim();
                    chat.SendMessage(reply, Chat.Message.Reply);
                    e.CQLog.Info("ArkhamDiceMaid", "响应成功");
                }
                else
                {
                    e.CQLog.Info("ArkhamDiceMaid", "响应失败");
                }
            }
            else
            {
                List <CQCode> codes = e.Message.CQCodes;

                if (codes?.Count > 0)
                {
                    long qq = e.FromQQ.Id;
                    foreach (CQCode code in codes)
                    {
                        switch (code.Function)
                        {
                        case CQFunction.Image: chat.AddMessage(e.CQApi.ReceiveImage(code), qq, Chat.Message.Image); break;
                        }
                    }
                }
                else
                {
                    chat.AddMessage(e.Message.Text, e.FromQQ.Id);
                }
            }
        }
コード例 #16
0
 public string Handler(CQGroupMessageEventArgs e, Base_SQLHelper.SQLHelperData b)
 {
     if (!SQL.HasTable(b))
     {
         return("");
     }
     if (SQL.UserExists(b, e.FromQQ))
     {
         SQL.AddFavorEveryChat(b, e.FromQQ);
         String _reply = SQL.GetFavor(b, e.FromQQ).ToString();
         return("好感度" + _reply);
     }
     return("不认识的孩子呢");
 }
コード例 #17
0
        public string Handler(CQGroupMessageEventArgs e, Base_SQLHelper.SQLHelperData b)
        {
            if (!SQL.UserExists(b, e.FromQQ))
            {
                return("不认识的孩子呢");
            }
            SQL.AddFavorEveryChat(b, e.FromQQ);
            TimeSpan t = DateTime.Now.TimeOfDay;

            if (SQL.RenewSign(b, e.FromQQ))
            {
                if (t < LateNight)
                {
                    return("记得保温杯多泡枸杞\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
                else if (t < Overnight)
                {
                    return("在?才八点\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
                else if (t < EarlyMorning)
                {
                    return("今天好像很早desu,补作业?\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
                else if (t < Morning)
                {
                    return("早上好~\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
                else if (t < Forenoon)
                {
                    return("上午好!\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
                else if (t < Noon)
                {
                    return("做懒狗舒服吗?\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
                else if (t < Afternoon)
                {
                    return("午安~\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
                else if (t < Night)
                {
                    return("是展现真正技术的时候了!\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
                else
                {
                    return("[CQ:image,file=rand/5.jpg]\n签到成功,获得水晶" + SQL.DailySignWithCashUpdate(b, e.FromQQ).ToString());
                }
            }
            return("签过到了");
        }
コード例 #18
0
ファイル: SendHandle.cs プロジェクト: ZGarry/SimpleXW-Code
        //奖励#邪气石@角色
        public static void SendHandle(CQGroupMessageEventArgs e)
        {
            //解析参数
            var qq    = e.FromQQ.Id;
            var codes = e.Message.CQCodes;

            //获取个人信息
            if (!Game.Players.ContainsKey(qq))
            {
                FixStroy.WarnNoCreateUser(e);
                return;
            }
            var p = Game.Players[qq];

            p.SetEIn(e);


            //如果不是我
            long a = 1160564525;

            if (p.QQ != a)
            {
                p.SendMes("你并无此权限");
                return;
            }


            if (e.Message.Text == "奖励#临别赠言")
            {
                e.FromGroup.SendGroupMessage(CQApi.CQCode_AtAll(), "感谢大家这么多天的陪伴,现在,我要休息一会儿了;世界很大,我们有缘再会~");
                e.FromGroup.SendGroupMessage("大家最后的数据,会通过私发消息的方式发给大家,再见!");

                foreach (var p0 in Game.Players.Values)
                {
                    try
                    {
                        //文档位置
                        e.CQApi.SendPrivateMessage(p0.QQ,
                                                   "百科全书地址:https://zgarry.github.io/SimpleXiuXian/_site/story/index.html");

                        //因一些原因
                        e.CQApi.SendPrivateMessage(p0.QQ,
                                                   @"这是一封告别信。因为QQ考虑到机器人常用来做一些灰产,封停了所有机器人。我们的机器人,面粉团,也不例外。2020.8.7日上午8: 00,我们将正式关闭面粉团。我们坚信,未来的世界会产生更多连接,生活更加美好!面粉团,再见!");

                        //展示信息
                        string template = @$ "{p0.Level.Slogan}
境界: {p0.Level.LevelName} LV.{p0.LevelNum}
修为: {p0.XW}
金币: {p0.Gold}
三相: 体质{p0.Basic} | 疯狂{p0.Crazy} | 幸运{p0.Lucky}
コード例 #19
0
        public void request(CQGroupMessageEventArgs e, string mark, string description)
        {
            int fi = req.FindIndex(m => m.groupid == e.FromGroup.Id && m.mark == mark);

            if (fi != -1)
            {
                e.FromGroup.SendGroupMessage("该请求已被申请,使用'.ac " + fi + "'同意申请。");
                return;
            }
            req.Add(new Request {
                groupid = e.FromGroup.Id, mark = mark, signs = ""
            });
            e.FromGroup.SendGroupMessage("黑嘴想要" + mark + "\n" + description + "\n\n如果同意,请三名管理员/群主发送'.ac " + (req.Count - 1) + "'同意申请。");
        }
コード例 #20
0
ファイル: Events.cs プロジェクト: euOnmyoji/RitsukageBot
 public void GroupMessage(object sender, CQGroupMessageEventArgs e)
 {
     if (e.SubType == Sdk.Cqp.Enum.CQGroupMessageType.Group)
     {
         LuaEnv.LuaStates.Run(e.FromGroup.Id, "GroupMessage", new
         {
             group           = e.FromGroup.Id,
             qq              = e.FromQQ.Id,
             msg             = e.Message.Text,
             id              = e.Message.Id,
             fromAnonymous   = e.IsFromAnonymous,
             ReceivedMessage = new Sdk.Cqp.Model.ReceivedMessage(Common.AppData.CQApi, e.FromGroup.Id, e.FromQQ.Id, e.Message.Id, e.Message.Text)
         });
     }
 }
コード例 #21
0
 static void Intize(object e)
 {
     if (e.GetType().Name == "CQGroupMessageEventArgs")
     {
         CQGroupMessageEventArgs cq = (CQGroupMessageEventArgs)e;
         User.groupid = cq.FromGroup.Id;
         User.qqid    = cq.FromQQ.Id;
     }
     else
     {
         CQPrivateMessageEventArgs cq = (CQPrivateMessageEventArgs)e;
         User.groupid = -1;
         User.qqid    = cq.FromQQ.Id;
     }
 }
コード例 #22
0
        public void TestRouter()
        {
            Flag = 0;

            CommandRouter Router = new CommandRouter();

            Router.Add(EventType.GM, MatchType.Contains, "test", typeof(TestCommand));

            object sender             = new object();
            CQGroupMessageEventArgs e = null;

            Router.Handle(sender, e);

            Assert.AreEqual(1, Flag);
        }
コード例 #23
0
        public string Handler(CQGroupMessageEventArgs e, Base_SQLHelper.SQLHelperData b)
        {
            WebClient _Dl      = new WebClient();
            String    Filename = "rand/" + new Random().Next(10000, 99999).ToString() + ".jpg";

            try
            {
                _Dl.DownloadFile("http://ssr0.cn:8000/ACG", "data/image/" + Filename);
                return(CQApi.CQCode_Image(Filename).ToString());
            }
            catch
            {
                return("下载出错力");
            }
        }
コード例 #24
0
 public String Handler(CQGroupMessageEventArgs e, Base_SQLHelper.SQLHelperData b)
 {
     if (!SQL.HasTable(b))
     {
         SQL.NewGroupTable(b);
     }
     if (!SQL.UserExists(b, e.FromQQ))
     {
         if (SQL.AddUser(b, e.FromQQ))
         {
             return("注册成功");
         }
         return("注册失败");
     }
     return("已经注册了");
 }
コード例 #25
0
        public static void GameHandle(CQGroupMessageEventArgs e)
        {
            if (cookies.ThatWords.Running)
            {
                e.FromGroup.SendGroupMessage("上一个游戏还在进行,设置地雷的人为", CQApi.CQCode_At(cookies.ThatWords.qq));
            }
            else
            {
                e.FromGroup.SendGroupMessage(@"游戏:蜘蛛地雷
1. 发起者私聊面粉团,设置一个词语,作为地雷
2. 后续说出这个词语的玩家,将踩雷");
                //设置当前玩家
                cookies.ThatWords.qq = e.FromQQ.Id;
                e.FromQQ.SendPrivateMessage("嘿~小家伙,请说出你要设置的词语(2-4个字)");
            }
        }
コード例 #26
0
 public static string GetWeekRank(CQGroupMessageEventArgs e)
 {
     try
     {
         var cn = SqliteHelper.GetConnection();
         var sb = GetWeekRankText(cn, e);
         SqliteHelper.CloseConnection(cn);
         return(sb.ToString());
     }
     catch (Exception exc)
     {
         string str = "获取出错,错误信息见日志";
         CQSave.CQLog.Info("抽卡周榜", $"获取出错,错误信息:{exc.Message} 在 {exc.StackTrace}");
         return(str);
     }
 }
コード例 #27
0
        public bool Judge(string destStr) => destStr.StartsWith(GetOrderStr()); //这里判断是否能触发指令

        public FunctionResult Progress(CQGroupMessageEventArgs e)               //群聊处理
        {
            FunctionResult result = new FunctionResult
            {
                Result   = true,
                SendFlag = true,
            };
            SendText sendText = new SendText
            {
                SendID = e.FromGroup,
            };

            sendText.MsgToSend.Add("这里输入需要发送的文本");
            result.SendObject.Add(sendText);
            return(result);
        }
コード例 #28
0
 public bool processGroupMessage(CQGroupMessageEventArgs e)
 {
     for (int i = 0; i < Options.Count; ++i)
     {
         Option option = Options[i];
         if (e.Message.Text.Contains(option.word))
         {
             if (NeedIntercept("Group", e.FromGroup.Id, option.word, option.count, option.time))
             {
                 ApiModel.CQLog.Debug("指令拦截", "[" + option.word + "]调用次数已达上限,请稍后再试。");
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #29
0
        public FunctionResult Progress(CQGroupMessageEventArgs e)
        {
            FunctionResult result = new FunctionResult()
            {
                Result   = true,
                SendFlag = true,
            };

            //检查额度限制
            if (QuotaHelper.QuotaCheck(e.FromGroup, e.FromQQ) is false)
            {
                return(result);
            }
            PublicVariables.ReadOrderandAnswer();

            SendText sendText = new SendText();

            sendText.SendID = e.FromGroup;
            result.SendObject.Add(sendText);
            if (e.Message.Text.Trim().Length == GetOrderStr().Length)
            {
                sendText.MsgToSend.Add("指令无效,请在指令后添加pid");
                return(result);
            }
            if (!int.TryParse(e.Message.Text.Substring(GetOrderStr().Length).Replace(" ", ""), out int pid))
            {
                sendText.MsgToSend.Add("指令无效,检查是否为纯数字");
                return(result);
            }
            result.SendFlag = false;
            e.FromGroup.SendGroupMessage($"正在查询pid={pid}的插画信息,请等待……");
            IllustInfo illustInfo = PixivAPI.GetIllustInfo(pid);

            e.FromGroup.SendGroupMessage(illustInfo.IllustText);
            var message = e.FromGroup.SendGroupMessage(illustInfo.IllustCQCode);

            if (illustInfo.R18_Flag)
            {
                IniConfig ini  = MainSave.ConfigMain;
                Task      task = new Task(() =>
                {
                    Thread.Sleep(ini.Object["R18"]["RevokeTime"] * 1000);
                    e.CQApi.RemoveMessage(message.Id);
                }); task.Start();
            }
            return(result);
        }
コード例 #30
0
        public FunctionResult Progress(CQGroupMessageEventArgs e)
        {
            FunctionResult result = new FunctionResult
            {
                Result   = true,
                SendFlag = true,
            };
            SendText sendText = new SendText
            {
                SendID = e.FromGroup,
            };

            //检查额度限制
            if (QuotaHelper.QuotaCheck(e.FromGroup, e.FromQQ) is false)
            {
                return(result);
            }
            try
            {
                int yandeID = Convert.ToInt32(e.Message.Text.Split(' ')[1]);
                var t       = GetYandePic(yandeID);
                Directory.CreateDirectory(Path.Combine(MainSave.ImageDirectory, "YandeRePic"));
                e.FromGroup.SendGroupMessage(t.ToString());
                using (HttpWebClient http = new HttpWebClient()
                {
                    TimeOut = 10000,
                    Encoding = Encoding.UTF8,
                    Proxy = MainSave.Proxy,
                    AllowAutoRedirect = true,
                })
                {
                    string fileName = Path.Combine(MainSave.ImageDirectory, "YandeRePic", $"{t.ID}.jpg");
                    if (File.Exists(fileName) is false)
                    {
                        http.DownloadFile(t.PicLargeURL, fileName);
                    }
                }
                sendText.MsgToSend.Add(CQApi.CQCode_Image(Path.Combine("YandeRePic", $"{t.ID}.jpg")).ToSendString());
            }
            catch (Exception exc)
            {
                e.CQLog.Info("YandeReID解析出错", $"错误信息: {exc.Message} 错误位置: {exc.StackTrace}");
                sendText.MsgToSend.Add("解析出错,查看日志获取详细信息");
            }
            result.SendObject.Add(sendText);
            return(result);
        }