예제 #1
0
 public void GroupMessage(object sender, XQAppGroupMsgEventArgs e)
 {
     if (e.Content == "测试群消息事件")
     {
         e.FromGroup.SendMessage(e.RobotQQ, "测试成功\n-Native.XQ.Net");
     }
 }
예제 #2
0
        public void GroupMessage(object sender, XQAppGroupMsgEventArgs e)
        {
            //throw new NotImplementedException();
            e.FromGroup.SendMessage(e.RobotQQ, "欢迎使用C# 先驱SKD");
            // e.FromGroup.SendMessage(e.RobotQQ, "[@All]");
            string json = @"{""app"":""com.tencent.autoreply"",""desc"":"""",""view"":""autoreply"",""ver"":""0.0.0.1"",""prompt"":""[动画表情]"",""meta"":{""metadata"":{""title"":""点击蓝色字体有惊喜"",""buttons"":[{""slot"":1,""action_data"":""我是傻逼"",""name"":""点我"",""action"":""notify""},{""slot"":1,""action_data"":""我是傻逼"",""name"":""点我1"",""action"":""notify""}],""type"":""guest"",""token"":""LAcV49xqyE57S17B8ZT6FU7odBveNMYJzux288tBD3c=""}},""config"":{""forward"":1,""showSender"":1}}";

            e.FromGroup.SendJSON(e.RobotQQ, 1, json);
            e.FromGroup.AtAllCode()
        }
예제 #3
0
 public static void onGroupMsg(object sender, XQAppGroupMsgEventArgs e)
 {
     if (!string.IsNullOrWhiteSpace(Regex.Match(e.Message.Text, @"^(起名|取名)( )?\d{0,2}$").Value))
     {
         e.FromGroup.SendMessage(e.RobotQQ, 起名(e.Message.Text).Replace("用户昵称", $"{e.FromQQ.GetNick(e.RobotQQ)}"));
     }
     else
     {
         return;
     }
 }
예제 #4
0
파일: Genshin.cs 프로젝트: yztjyy/HyperBot
        public static void onGroupMsg(object sender, XQAppGroupMsgEventArgs e)
        {
            // XQ.Net.SDK.XQAPI.OutPutLog(e.FromGroup.GetGroupMemberList_B(e.RobotQQ));
            //GroupClient client = new GroupClient()
            //{
            //    EventArgs = e,
            //    Group = e.FromGroup,
            //    QQ = e.FromQQ,
            //    RobotQQ = e.RobotQQ
            //};
            //string r=CommandSystem.Execute(e.Message.Text, client);
            //if (!string.IsNullOrEmpty(r))
            //{
            //    e.FromGroup.SendMessage(e.RobotQQ, r);
            //}
            //if (e.Message.Text == "hello")
            //{
            //    e.FromGroup.SendMessage(e.RobotQQ, "Hi nice to meet you!");
            //}
            try
            {
                GroupClient client = DataCenter.GetClient(e.FromGroup, e.RobotQQ);
                client.Update(e.FromGroup);

                MessageContent content = new MessageContent()
                {
                    FromQQ    = e.FromQQ,
                    FromGroup = client,
                    Message   = e.Message.Text
                };

                CommandSystem.Execute(content, (msg, target) =>
                {
                    if (!string.IsNullOrEmpty(msg))
                    {
                        target.Group.SendMessage(target.RobotQQ, msg);
                    }
                });
            }
            catch (Exception ex)
            {
                XQ.Net.SDK.XQAPI.OutPutLog(ex.ToString());
            }
        }
예제 #5
0
        public void GroupMessage(object sender, XQAppGroupMsgEventArgs e)
        {
            if (e.Message.Text == "苏醒吧,冰箱的主人!")
            {
                e.FromGroup.SendMessage(e.RobotQQ, "咕噜咕噜...");
                isOn = true;
            }

            if (e.Message.Text == "苏醒吧,冰霜的主人!")
            {
                if (isOn)
                {
                    e.FromGroup.ShutUpMember(e.RobotQQ, e.FromQQ.Id, 60);
                    e.FromGroup.SendMessage(e.RobotQQ, "...力量,请借我一用!");
                    Task.Factory.StartNew(async() =>
                    {
                        await Task.Delay(2000);
                        e.FromGroup.SendMessage(e.RobotQQ, "显现吧,白银之月!");
                        e.FromGroup.ShutUpAll(e.RobotQQ);
                        await Task.Delay(3000);
                        e.FromGroup.SendMessage(e.RobotQQ, "极寒风暴!");
                        e.FromGroup.UnShutUpAll(e.RobotQQ);
                        isOn = false;
                    });
                }
            }
            //if (e.Message.Content.StartsWith("测试禁言"))
            //{
            //    XQApi.Api_OutPutLog("禁言测试:at"+ e.Message.Content.Substring(4).Trim('[','@',']'));
            //    //e.FromGroup.SendMessage(e.RobotQQ, "测试成功\n-Native.XQ.Net");
            //    long qq;
            //    if (long.TryParse(e.Message.Content.Substring(4).TrimStart('[', '@').TrimEnd(']'), out qq))//用来判断是否是qq号
            //    {
            //        e.FromGroup.ShutUpMember(e.RobotQQ, qq.ToString(), 60);
            //    }
            //    else
            //    {
            //    }
            //}
        }
예제 #6
0
        public static int XQ_Event(string robotQQ, int EventType, int ExtraType, string From, string FromQQ, string targetQQ, string content, string index, string id, string udpmsg, string unix, int p)
        {
            XQApi.Api_OutPutLog($"来自:{From}的消息,Type{EventType}被我捉到啦!");
            if (EventType == (int)XQEventType.Group)
            {
                if (Event_GroupMsgHandler != null)
                {
                    XQAppGroupMsgEventArgs args = new XQAppGroupMsgEventArgs(robotQQ, (int)EventType, (int)ExtraType, From, content);
                    Event_GroupMsgHandler(typeof(XQEvent), args);
                }


                if (From == "894727248")
                {
                    if (content == "测试XQ框架")
                    {
                        //XQApi.Api_OutPutLog($"恶臭测试");
                        XQApi.Native_SendGroupMsg(robotQQ, From, "恶臭测试-Native.XQ.Net");
                    }
                    if (content.StartsWith("复读机"))
                    {
                        XQApi.Native_SendGroupMsg(robotQQ, From, $"{content.Substring(3).Trim()}\n-Native.XQ.Net");
                    }
                }
            }
            if (EventType == (int)XQEventType.Friend)
            {
                XQApi.Api_OutPutLog($"h测试的状态{XQApi.Api_IsEnable()}");
                var botqq  = Marshal.StringToHGlobalAnsi(robotQQ);
                var group  = Marshal.StringToHGlobalAnsi(From);
                var target = Marshal.StringToHGlobalAnsi(FromQQ);
                var msg    = Marshal.StringToHGlobalAnsi("恶臭测试-Native.XQ.Net");

                XQApi.Api_SendMsgIntPtr(botqq, 1, group, target, msg, 0);

                //XQApi.Api_SendMsg(Marshal.PtrToStringAnsi(robotQQ), EventType,"",Marshal.PtrToStringAnsi(From),Marshal.StringToHGlobalAnsi(strMsg), 0);
            }
            return(1);
        }
예제 #7
0
        public static int XQ_Event(string robotQQ, int eventType, int extraType, string from, string fromQQ, string targetQQ, string content, string index, string msgid, string udpmsg, string unix, int p)
        {
            try
            {
                if (eventType == (int)XQEventType.Group)
                {
                    if (Event_GroupMsgHandler != null)//群聊消息
                    {
                        XQAppGroupMsgEventArgs args = new XQAppGroupMsgEventArgs(robotQQ, (int)eventType, (int)extraType, from, fromQQ, content, index, msgid, xqapi);
                        Event_GroupMsgHandler(typeof(XQEvent), args);
                        return(args.Handler ? 2 : 1);
                        //阻塞返回2,继续返回1
                    }
                }
                if (eventType == (int)XQEventType.Friend)//好友消息
                {
                    if (Event_PrivateMsgHandler != null)
                    {
                        XQAppPrivateMsgEventArgs args = new XQAppPrivateMsgEventArgs(robotQQ, (int)eventType, (int)extraType, from, content, index, msgid, xqapi);
                        Event_PrivateMsgHandler(typeof(XQEvent), args);
                        return(args.Handler ? 2 : 1);
                        //阻塞返回2,继续返回1
                    }
                }

                if (eventType == (int)XQEventType.PluginEnable)//插件启动
                {
                    if (Event_AppEnableHandler != null)
                    {
                        var args = new XQEventArgs(xqapi);
                        Event_AppEnableHandler(typeof(XQEvent), args);
                    }
                }

                if (eventType == (int)XQEventType.AddGroup || eventType == (int)XQEventType.InvitedToGroup)//群申请/邀请事件AddGroup
                {
                    if (Event_AddGroupHandler != null)
                    {
                        var args = new XQAddGroupEventArgs(xqapi, robotQQ, eventType, fromQQ, from, udpmsg);
                        Event_AddGroupHandler(typeof(XQEvent), args);
                    }
                }
                if (eventType == (int)XQEventType.AddFriend)//加好友事件
                {
                    if (Event_AddFriendHandler != null)
                    {
                        var args = new XQAddFriendEventArgs(xqapi, robotQQ, eventType, fromQQ);
                        Event_AddFriendHandler(typeof(XQEvent), args);
                    }
                }

                if (eventType == (int)XQEventType.BanSpeak)//被禁言
                {
                    if (Event_BanSpeak != null)
                    {
                        var args = new XQBanSpeakEventArgs(xqapi, robotQQ, eventType, fromQQ, targetQQ, from);
                        Event_BanSpeak(typeof(XQEvent), args);
                    }
                }

                if (eventType == (int)XQEventType.AddFriend)//被解除禁言
                {
                    if (Event_UnBanSpeak != null)
                    {
                        var args = new XQUnBanSpeakEventArgs(xqapi, robotQQ, eventType, fromQQ, targetQQ, from);
                        Event_UnBanSpeak(typeof(XQEvent), args);
                    }
                }
                return(1);
            }
            catch (Exception ex)
            {
                xqapi.Error(ex.Message);
                return(1);
            }
        }
예제 #8
0
        public void GroupMessage(object sender, XQAppGroupMsgEventArgs e)
        {
            if (e.FromQQ.Id == e.RobotQQ)
            {
                return;
            }
            //手动的全体12s禁言策略
            if (e.Message.Text == "苏醒吧,冰霜的主人!")
            {
                isOn = true;
                if (isOn)
                {
                    e.FromGroup.SendMessage(e.RobotQQ, "...力量,请借我一用!");
                    Task.Factory.StartNew(async() =>
                    {
                        await Task.Delay(1000);
                        e.FromGroup.SendMessage(e.RobotQQ, "显现吧,白银之月!");
                        e.FromGroup.ShutUpAll(e.RobotQQ);
                        await Task.Delay(12000);
                        e.FromGroup.SendMessage(e.RobotQQ, "极寒风暴!");
                        e.FromGroup.UnShutUpAll(e.RobotQQ);
                        isOn = false;
                    });
                }
            }

            if (MoonSliver.Settings.FliterOn)
            {
                //检测是否有符合的敏感词
                foreach (var item in MoonSliver.KeyWordsDic)
                {
                    var word = item.Value.FindAll(w => e.Message.Text.Contains(w));
                    if (word != null)
                    {
                        if (word.Count < 4)
                        {
                            return;
                        }
                        isOn = true;
                        //符合的违禁词
                        e.XQAPI.Log($"{e.FromQQ.Id}触发了敏感词");

                        if (MoonSliver.Settings.WithdrawAll)
                        {
                            if (!MoonSliver.Settings.WithdrawDelay)
                            {
                                e.Message.Withdraw(e.RobotQQ, e.FromGroup.Id);//立刻撤回
                            }
                            else
                            {
                                Task.Factory.StartNew(async() =>
                                {
                                    e.FromGroup.SendMessage(e.RobotQQ, "苏醒吧,冰" + (new Random().NextDouble() <= 0.5 ? "霜" : "箱") + "的主人!");
                                    await Task.Delay(2000);
                                    //随机处理
                                    var r = new Random().NextDouble();
                                    if (r < 0.1)
                                    {
                                        e.FromGroup.SendMessage(e.RobotQQ, "德莉莎其实是个很可爱...");
                                        await Task.Delay(400);
                                        e.FromGroup.SendMessage(e.RobotQQ, "哦不...抱歉我失态了");
                                    }
                                    else if (r < 0.2)
                                    {
                                        e.FromGroup.SendMessage(e.RobotQQ, "万能的白银之月...你说我要怎么对付刚刚那个人呢...");
                                    }
                                    else if (r < 0.3)
                                    {
                                        e.FromGroup.SendMessage(e.RobotQQ, "我刚刚说的是冰霜..还是冰箱来着");
                                    }
                                    await Task.Delay(1000);
                                    e.FromGroup.SendMessage(e.RobotQQ, "上吧,白银之月!");
                                    e.Message.Withdraw(e.RobotQQ, e.FromGroup.Id);
                                    await Task.Delay(1000);
                                });
                            }
                        }

                        if (MoonSliver.Settings.ShutUp)
                        {
                            e.FromGroup.SendMessage(e.RobotQQ, "[@" + e.FromQQ.Id + "] 陷入寒冰之中吧!");
                            e.FromGroup.ShutUpMember(e.RobotQQ, e.FromQQ.Id, MoonSliver.Settings.ShutUpTime);
                        }

                        //记录频率
                        if (MoonSliver.Settings.ShutUpAll)
                        {
                            if (!MoonSliver.Frequency.ContainsKey(e.FromGroup.Id))
                            {
                                //处理不存在key
                                List <TimeSpan> times = new List <TimeSpan>();
                                MoonSliver.Frequency.Add(e.FromGroup.Id, times);
                            }

                            MoonSliver.Frequency[e.FromGroup.Id].Add(DateTime.Now.TimeOfDay);
                            if (MoonSliver.Frequency[e.FromGroup.Id].Count(s => DateTime.Now.TimeOfDay - s <= TimeSpan.FromSeconds(60)) >= 10)
                            {
                                //1分钟之内出现十条违禁词,直接触发

                                Task.Factory.StartNew(async() =>
                                {
                                    e.FromGroup.SendMessage(e.RobotQQ, "苏醒吧,冰" + (new Random().NextDouble() <= 0.5 ? "霜" : "箱") + "的主人!");
                                    await Task.Delay(2000);
                                    //随机处理
                                    var r = new Random().NextDouble();

                                    if (r < 0.1)
                                    {
                                        e.FromGroup.SendMessage(e.RobotQQ, "恒霜之斯卡蒂...来了吗");
                                        await Task.Delay(400);
                                        e.FromGroup.SendMessage(e.RobotQQ, "哈!协助我吧,白银之月");
                                    }
                                    else if (r < 0.2)
                                    {
                                        e.FromGroup.SendMessage(e.RobotQQ, "K423的行踪...唔...现在似乎并不是考虑这个问题的时候");
                                    }
                                    else if (r < 0.3)
                                    {
                                        e.FromGroup.SendMessage(e.RobotQQ, "放风时间到了!哦不对...好像不是那个装甲...");
                                    }

                                    await Task.Delay(1000);
                                    e.FromGroup.SendMessage(e.RobotQQ, "极寒风暴!");
                                    e.FromGroup.ShutUpAll(e.RobotQQ);
                                    await Task.Delay((int)TimeSpan.FromMinutes(5).TotalMilliseconds);//禁言5分钟
                                    e.FromGroup.UnShutUpAll(e.RobotQQ);
                                });
                            }

                            //清理赘余
                            if (MoonSliver.Frequency[e.FromGroup.Id].Count >= 100)
                            {
                                var c = MoonSliver.Frequency[e.FromGroup.Id].RemoveAll(s => DateTime.Now.TimeOfDay - s >= TimeSpan.FromSeconds(120));//清理超过120s的记录
                                e.XQAPI.Info("清理了" + c.ToString() + "个赘余记录");
                            }
                        }

                        isOn = false;
                        return;
                    }
                }
            }
        }
예제 #9
0
파일: Class1.cs 프로젝트: zcwang666/fortune
        public static void onGroupMsg(object sender, XQAppGroupMsgEventArgs e)
        {
            string text  = e.Message.Text;
            string robot = e.RobotQQ;
            string group = e.FromGroup.Id;
            string user  = e.FromQQ.Id;

            string  configPath = Path.Combine(XQAPI.AppDir, "config.json");
            JObject configJson = OpenJson(@configPath);

            if (ReadJson(configJson, group, "触发", "null") == "null")
            {
                group = "默认";
            }
            else if (ReadJson(configJson, group, "触发", "null") == "关")
            {
                return;
            }
            string trigger = ReadJson(configJson, group, "触发", "运势");
            string reply   = ReadJson(configJson, group, "回复", "少女祈祷中......");
            string types   = ReadJson(configJson, group, "类型", "李清歌");
            string limit   = ReadJson(configJson, group, "限制", "池子");

            if (types.Contains("|"))
            {
                List <string> list    = new List <string>(types.Split('|'));
                int           length  = list.ToArray().Length;
                Random        ran     = new Random();
                int           RandKey = ran.Next(0, length);
                types = list[RandKey];
            }

            if (limit == "全局")
            {
                limit = "on";
            }
            else if (limit == "池子")
            {
                limit = "none";
            }
            else if (limit == "关")
            {
                limit = "off";
            }
            else
            {
                limit = "none";
            }

            if (text == trigger)
            {
                XQAPI.OutPutLog("[fortune-运势] 开始向服务器请求数据......");
                e.FromGroup.SendMessage(e.RobotQQ, reply);

                string aukey      = "test";
                string apifortune = "http://127.0.0.1:8000/fortune";
                string apipic     = "http://127.0.0.1:8000/fortune.jpg";

                FromDataParm fromDataParm;
                fromDataParm.Client    = "xq";
                fromDataParm.Version   = "4";
                fromDataParm.Bot       = robot;
                fromDataParm.Types     = types;
                fromDataParm.FromGroup = e.FromGroup.Id;
                fromDataParm.FromQQ    = user;
                fromDataParm.Ask       = text;
                fromDataParm.Limit     = limit;

                string     autime  = get_autime();
                string     authkey = get_authkey(aukey, autime);
                HeaderParm headerParm;
                headerParm.Authkey = authkey;
                headerParm.Au_time = autime;

                string fortuneJson = fortune(apifortune, fromDataParm, headerParm);

                JObject json = (JObject)JsonConvert.DeserializeObject(fortuneJson);

                string code = json["code"].ToString();
                string msg  = json["msg"].ToString();
                string info = json["info"].ToString();
                string warn = json["warn"].ToString();

                string message = "";
                string picPath = Path.Combine(XQAPI.AppDir, "output.jpg");

                if (code != "200")
                {
                    if (msg != "")
                    {
                        message += msg;
                        e.FromGroup.SendMessage(e.RobotQQ, message);
                        return;
                    }
                    else
                    {
                        message += "[fortune-运势] 服务器失联中......";
                        e.FromGroup.SendMessage(e.RobotQQ, message);
                        return;
                    }
                }
                if (msg != "success")
                {
                    message += msg;
                    e.FromGroup.SendMessage(e.RobotQQ, message);
                    return;
                }
                if (warn != "")
                {
                    pic(apipic, fromDataParm, headerParm);
                    message += warn;
                    message += "[pic=" + picPath + "]";
                    e.FromGroup.SendMessage(e.RobotQQ, message);
                    return;
                }
                if (info != "")
                {
                    pic(apipic, fromDataParm, headerParm);
                    if (notSend())
                    {
                        message += info;
                    }
                    message += "[pic=" + picPath + "]";
                    e.FromGroup.SendMessage(e.RobotQQ, message);
                    return;
                }
                if (code == "200")
                {
                    pic(apipic, fromDataParm, headerParm);
                    message += "[pic=" + picPath + "]";
                    e.FromGroup.SendMessage(e.RobotQQ, message);
                    return;
                }
            }
        }
예제 #10
0
        public static int Event(string robotQQ, int eventType, int extraType, string from, string fromQQ, string targetQQ, string content, string index, string msgid, string udpmsg, string unix, int p)
        {
            try
            {
                if (eventType == (int)XQEventType.Group)
                {
                    if (Event_GroupMsgHandler != null)//群聊消息
                    {
                        XQAppGroupMsgEventArgs args = new XQAppGroupMsgEventArgs(robotQQ, (int)eventType, (int)extraType, from, fromQQ, content, index, msgid, Common.xQAPI);
                        Event_GroupMsgHandler(typeof(_Event), args);
                        return(args.Handler ? 2 : 1);
                        //阻塞返回2,继续返回1
                    }
                }
                if (eventType == (int)XQEventType.Friend)//好友消息
                {
                    if (Event_PrivateMsgHandler != null)
                    {
                        XQAppPrivateMsgEventArgs args = new XQAppPrivateMsgEventArgs(robotQQ, (int)eventType, (int)extraType, from, content, index, msgid, Common.xQAPI);
                        Event_PrivateMsgHandler(typeof(_Event), args);
                        return(args.Handler ? 2 : 1);
                        //阻塞返回2,继续返回1
                    }
                }
                if (eventType == (int)XQEventType.GroupTmp)//群临时消息
                {
                    if (Event_PrivateMsgHandler != null)
                    {
                        XQAppPrivateMsgEventArgs args = new XQAppPrivateMsgEventArgs(robotQQ, (int)eventType, (int)extraType, fromQQ, content, index, msgid, Common.xQAPI);
                        args.FromGroup = new XQ.Net.SDK.Models.XQGroup(from, Common.xQAPI);
                        Event_PrivateMsgHandler(typeof(_Event), args);
                        return(args.Handler ? 2 : 1);
                        //阻塞返回2,继续返回1
                    }
                }

                if (eventType == (int)XQEventType.PluginEnable)//插件启动
                {
                    if (Event_AppEnableHandler != null)
                    {
                        var args = new XQEventArgs(Common.xQAPI);
                        Event_AppEnableHandler(typeof(_Event), args);
                    }
                }

                if (eventType == (int)XQEventType.AddGroup || eventType == (int)XQEventType.InvitedToGroup ||
                    eventType == (int)XQEventType.SomeoneInvitedToGroup || eventType == (int)XQEventType.AllowedToGroup)   //群申请/邀请事件AddGroup
                {
                    if (Event_AddGroupHandler != null)
                    {
                        var args = new XQAddGroupEventArgs(Common.xQAPI, robotQQ, eventType, fromQQ, from, udpmsg);
                        Event_AddGroupHandler(typeof(_Event), args);
                    }
                }
                if (eventType == (int)XQEventType.AddFriend)//加好友事件
                {
                    if (Event_AddFriendHandler != null)
                    {
                        var args = new XQAddFriendEventArgs(Common.xQAPI, robotQQ, eventType, fromQQ);
                        Event_AddFriendHandler(typeof(_Event), args);
                    }
                }

                if (eventType == (int)XQEventType.BanSpeak)//被禁言
                {
                    if (Event_BanSpeak != null)
                    {
                        var args = new XQBanSpeakEventArgs(Common.xQAPI, robotQQ, eventType, fromQQ, targetQQ, from);
                        Event_BanSpeak(typeof(_Event), args);
                    }
                }

                if (eventType == (int)XQEventType.UnBanSpeak)//被解除禁言
                {
                    if (Event_UnBanSpeak != null)
                    {
                        var args = new XQUnBanSpeakEventArgs(Common.xQAPI, robotQQ, eventType, fromQQ, targetQQ, from);
                        Event_UnBanSpeak(typeof(_Event), args);
                    }
                }

                return(1);
            }
            catch (Exception ex)
            {
                Common.Log(ex.ToString());
                return(1);
            }
        }