public void OnMessage(object sender, CQEventEventArgs e) { Match m; string msg = null; if (e.GetType() == typeof(CQGroupMessageEventArgs)) { msg = ((CQGroupMessageEventArgs)e).Message.Text; } else { msg = ((CQPrivateMessageEventArgs)e).Message.Text; } if ((m = Commands[0].Match(msg)).Success) { Ai.Reply(e, " 欢迎使用憨批链接生成器,输入格式\"生成!!{url}!!{title}!!{content}(optional:!!{image_url})\""); } else if ((m = Commands[1].Match(msg)).Success) { Ai.Reply(e, CQApi.CQCode_ShareLink(m.Groups[1].Value, m.Groups[2].Value, m.Groups[3].Value, m.Groups[4].Value).ToSendString()); } else if ((m = Commands[2].Match(msg)).Success) { Ai.Reply(e, CQApi.CQCode_ShareLink(m.Groups[1].Value, m.Groups[2].Value, m.Groups[3].Value).ToSendString()); } }
public static void Reply(CQEventEventArgs e, params object[] message) { if (e.GetType() == typeof(CQGroupMessageEventArgs)) { ((CQGroupMessageEventArgs)e).FromGroup.SendGroupMessage(message); } else { ((CQPrivateMessageEventArgs)e).FromQQ.SendPrivateMessage(message); } }
/// <summary> /// 路由处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <returns></returns> public int Handle(object sender, CQEventEventArgs e) { foreach (CommandServiceProvider ACommand in CommandList) { if (ACommand.Handle(sender, e) == 1) { return(1); } } return(0); }
public static UserService GetFromEvent(CQEventEventArgs CQEventArgsArgs) { if (CQEventArgsArgs == null) { return(null); } else if (CQEventArgsArgs is CQGroupMessageEventArgs) { return(new GroupUserService(((CQGroupMessageEventArgs)CQEventArgsArgs).FromGroup, ((CQGroupMessageEventArgs)CQEventArgsArgs).FromQQ)); } else if (CQEventArgsArgs is CQPrivateMessageEventArgs) { return(new PersonalUserService(((CQPrivateMessageEventArgs)CQEventArgsArgs).FromQQ)); } else { return(null); } }
/// <summary> /// 路由判断 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <returns>0:忽略 1:拦截</returns> public int Handle(object sender, CQEventEventArgs oe) { bool Flag = false; EventType ActualEventType; dynamic e = oe; if (oe == null) { ActualEventType = EventType; } else if (oe is CQGroupMessageEventArgs) { ActualEventType = EventType.GroupMessage; } else if (oe is CQPrivateMessageEventArgs) { ActualEventType = EventType.PrivateMessage; } else { return(0); } if ((EventType & ActualEventType) != ActualEventType) { return(0); } if (e != null) { if (MatchType == MatchType.Any) { Flag = true; } else if ((MatchType & MatchType.Contains) == MatchType.Contains) { if (((string)e.Message).Contains(MatchStr)) { Flag = true; } } else if ((MatchType & MatchType.StartsWith) == MatchType.StartsWith) { if (((string)e.Message).StartsWith(MatchStr)) { Flag = true; } } } else { Flag = true; } if (Flag) { AbstractCommand Command = (AbstractCommand)System.Activator.CreateInstance(CommandProvider); Command.EventType = EventType; Command.ActualEventType = ActualEventType; Command.MatchType = MatchType; Command.CQEventArgsArgs = oe; return(Command.Handle()); } return(0); }
public void OnMessage(object sender, CQEventEventArgs e) { CQCode atCode = null; Match m; string msg; if (e.GetType() == typeof(CQGroupMessageEventArgs)) { atCode = ((CQGroupMessageEventArgs)e).FromQQ.CQCode_At(); msg = ((CQGroupMessageEventArgs)e).Message.Text; } else { msg = ((CQPrivateMessageEventArgs)e).Message.Text; } if ((m = Commands[0].Match(msg.Trim(' '))).Success) { Ai.Reply(e, $" 想让爱梅斯帮你搜什么呀?请用 点歌+歌名 或者 点歌+歌名+By:+作者 呼叫我哦~"); } else if ((m = Commands[1].Match(msg.ToLower())).Success) { if (m.Groups[1].Value.Trim(' ').Length == 0) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), " 没告诉我歌名我怎么搜索呀"); } else { Music music = FindBetter(Client, m.Groups[1].Value.Trim(' ').Replace('\n', ' ').Replace('&', ' '), m.Groups[2].Value.Trim(' ').Replace('\n', ' ').Replace('&', ' ')); ClientType client = music.Client; if (music.Stat == Music.Status.E404A) { if (music.StatText != null) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" 找不到这个名字的歌曲,你是不是想搜索{ m.Groups[2].Value.Trim(' ') }呢?"); } else { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), " 搜索不到哦..."); }; } else if (music.Stat == Music.Status.E404B) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" 爱梅斯没有找到由这个作者演唱的歌曲哦"); } else { Ai.Reply(e, $" [CQ:music,type={(client == ClientType.Netease ? "163" : "qq")},id={music.Id}]"); if (IsWithLink && client == ClientType.Netease) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" https://music.163.com/#/song?id={music.Id}"); } else if (IsWithLink && client == ClientType.QQ) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" https://y.qq.com/n/yqq/song/{music.Id}_num.html"); } } } } else if ((m = Commands[2].Match(msg)).Success) { if (m.Groups[1].Value.Trim(' ').Length == 0) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), " 没告诉我歌名我怎么搜索呀"); } else { Music music = FindBetter(Client, m.Groups[1].Value.Trim(' ').Replace('\n', ' ').Replace('&', ' ')); ClientType client = music.Client; if (music.Stat == Music.Status.E404A) { if (m.Groups[2].Value.Trim(' ').Length > 0) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" 找不到这个名字的歌曲,你是不是想搜索{ m.Groups[2].Value.Trim(' ') }呢?"); } else { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), " 搜索不到哦..."); } } else if (music.Stat == Music.Status.E404B) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" 爱梅斯找不到符合要求的歌曲呢..."); } else { Ai.Reply(e, $" [CQ:music,type={(client == ClientType.Netease ? "163" : "qq")},id={music.Id}]"); if (IsWithLink && client == ClientType.Netease) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" https://music.163.com/#/song?id={music.Id}"); } else if (IsWithLink && client == ClientType.QQ) { Ai.Reply(e, atCode == null ? "" : atCode.ToSendString(), $" https://y.qq.com/n/yqq/song/{music.Id}_num.html"); } } } } }