public void GroupMessage(object sender, XQAppGroupMsgEventArgs e) { if (e.Content == "测试群消息事件") { e.FromGroup.SendMessage(e.RobotQQ, "测试成功\n-Native.XQ.Net"); } }
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() }
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; } }
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()); } }
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 // { // } //} }
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); }
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); } }
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; } } } }
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; } } }
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); } }