private static int Evnet__eventPrivateMsg(int subType, int msgId, long fromQQ, IntPtr msg, int font) { CqPrivateMessageEventArgs args = new CqPrivateMessageEventArgs(1, "私聊消息处理", msgId, fromQQ, msg.ToString(_defaultEncoding)); if (subType == 11) { if (ReceiveFriendMessage_1 != null) { ReceiveFriendMessage_1(null, args); } } else if (subType == 1) { if (ReceiveOnlineStatusMessage_1 != null) { ReceiveOnlineStatusMessage_1(null, args); } } else if (subType == 2) { if (ReceiveGroupPrivateMessage_1 != null) { ReceiveGroupPrivateMessage_1(null, args); } } else if (subType == 3) { if (ReceiveDiscussPrivateMessage_1 != null) { ReceiveDiscussPrivateMessage_1(null, args); } } return(Convert.ToInt32(args.Handler)); }
private static int EventPrivateMsg(int subType, int msgId, long fromQQ, IntPtr msg, int font) { CqPrivateMessageEventArgs args = new CqPrivateMessageEventArgs(); args.MsgId = msgId; args.FromQQ = fromQQ; args.Message = NativeConvert.ToPtrString(msg, Encoding.GetEncoding("GB18030")); args.Handler = false; if (subType == 11) // 来自好友 { ReceiveFriendMessage(null, args); } else if (subType == 1) // 来自在线状态 { ReceiveQnlineStatusMessage(null, args); } else if (subType == 2) // 来自群 { ReceiveGroupPrivateMessage(null, args); } else if (subType == 3) // 来自讨论组 { ReceiveDiscussPrivateMessage(null, args); } else { Common.CqApi.AddLoger(LogerLevel.Info, "Native提示", "EventPrivateMsg 方法发现新的消息类型"); } return((int)(args.Handler ? MessageHanding.Intercept : MessageHanding.Ignored)); //如果处理过就截断消息 }
public void ReceiveALLPrivateMessage(object sender, CqPrivateMessageEventArgs e) { if (FEvent_BlackList.BlackData[e.FromQQ.ToString()] != null) { return; } MsgProcess msg = new MsgProcess(e.Message, e.FromQQ, msgtype.Private); }
/// <summary> /// Type=21 在线状态消息<para/> /// 处理收到的在线状态消息 /// </summary> /// <param name="sender">事件的触发对象</param> /// <param name="e">事件的附加参数</param> public void ReceiveOnlineStatusMessage(object sender, CqPrivateMessageEventArgs e) { // 本子程序会在酷Q【线程】中被调用,请注意使用对象等需要初始化(CoInitialize,CoUninitialize)。 // 这里处理消息 e.Handler = false; // 关于返回说明, 请参见 "Event_FriendMessage.ReceiveFriendMessage" 方法 }
public void ReceiveFriendMessage(object sender, CqPrivateMessageEventArgs e) { tryInit(); try { mmdk.dealPrivateMsg(e.FromQQ, e.Message); } catch (Exception ex) { sendPrivate(mmdk.masterQQ, ex.Message + "\r\n" + ex.StackTrace); } }
/// <summary> /// 收到好友消息 /// </summary> /// <param name="e"></param> public static void RecivesFriendMsg(CqPrivateMessageEventArgs e) { try { string f = Common.CqApi.GetGroupList(2812695303); string msg = "好友列表:\r\n" + f + "登录QQ:" + "\r\n"; MessageBox.Show(msg); Common.CqApi.SendPrivateMessage(2812695303, 320587491, msg, 0, 0); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary> /// Type=21 群私聊<para/> /// 处理收到的群私聊消息 /// </summary> /// <param name="sender">事件的触发对象</param> /// <param name="e">事件的附加参数</param> public void ReceiveGroupPrivateMessage(object sender, CqPrivateMessageEventArgs e) { // 本子程序会在酷Q【线程】中被调用,请注意使用对象等需要初始化(CoInitialize,CoUninitialize)。 // 这里处理消息 e.Handler = LuaEnv.LuaEnv.RunLua( "", "envent/ReceivePrivateMessage.lua", new ArrayList() { "fromqq", e.FromQQ, "message", e.Message, "id", e.MsgId, }); //e.Handled = false; // 关于返回说明, 请参见 "Event_FriendMessage.ReceiveFriendMessage" 方法 }
/// <summary> /// Type=21 好友消息<para/> /// 处理收到的好友消息 /// </summary> /// <param name="sender">事件的触发对象</param> /// <param name="e">事件的附加参数</param> public void ReceiveFriendMessage(object sender, CqPrivateMessageEventArgs e) { // 本子程序会在酷Q【线程】中被调用,请注意使用对象等需要初始化(CoInitialize,CoUninitialize)。 // 这里处理消息 e.Handler = LuaEnv.LuaEnv.RunLua( "", "envent/ReceivePrivateMessage.lua", new ArrayList() { "fromqq", e.FromQQ, "message", e.Message, "id", e.MsgId, }); // e.Handled 相当于 原酷Q事件的返回值 // 如果要回复消息,请调用api发送,并且置 true - 截断本条消息,不再继续处理 //注意:应用优先级设置为"最高"(10000)时,不得置 true // 如果不回复消息,交由之后的应用/过滤器处理,这里置 false - 忽略本条消息 }
public static int RecvicetPrivateMessage(IntPtr intPtr) { PrivateMessageEvent data = new PrivateMessageEvent(); data = (PrivateMessageEvent)Marshal.PtrToStructure(intPtr, typeof(PrivateMessageEvent)); if (data.MessageType == Sdk.Cqp.Enum.MsgType.MessageType.GroupTemp) { CqGroupPrivateMessageEventArgs e = new CqGroupPrivateMessageEventArgs(data); Event.Event_Group.ReciveGroupPrivateMsg(e); } else { CqPrivateMessageEventArgs e = new CqPrivateMessageEventArgs(data); Event.Event_Private.RecivesFriendMsg(e); } return(1); }
public void SaveReceiveGroupPrivateMessage(CqPrivateMessageEventArgs e) { string Message = e.Message; if (Message.StartsWith(".录入开始")) { try { if (Message.Contains("/")) { // var SP = Message.Split('/')[1]; string filePath = AppDomain.CurrentDomain.BaseDirectory + Message.Split('/')[1] + ".txt"; if (!FriendMesageDict.ContainsKey(e.FromQQ)) { FriendMesageDict.Add(e.FromQQ, filePath); // fs = new FileStream(path + SP[1]+".txt", FileMode.OpenOrCreate, FileAccess.Write); //sw = new StreamWriter(fs); // 创建写入流 Common.CqApi.SendPrivateMessage(e.FromQQ, "录入已开始"); Common.CqApi.SendPrivateMessage(e.FromQQ, "当前path位置" + filePath); } else { Common.CqApi.SendGroupMessage(e.FromQQ, "该地址已在录入"); } } else { Common.CqApi.SendGroupMessage(e.FromQQ, "未检测到/指令分割"); } } catch (Exception ee) { Common.CqApi.SendGroupMessage(e.FromQQ, ee.ToString()); } } if (FriendMesageDict.ContainsKey(e.FromQQ) == true) { if (!e.Message.StartsWith(".录入开始") && !e.Message.StartsWith(".录入结束")) { string value; FriendMesageDict.TryGetValue(e.FromQQ, out value); //将待写的入数据从字符串转换为字节数组 // var QQID = Common.CqApi.GetMemberInfo(e.FromGroup, e.FromQQ).Nick; var QQID = Common.CqApi.GetQQInfo(e.FromQQ).Nick; var QQMemberID = Common.CqApi.GetMemberInfo(e.FromQQ, Common.CqApi.GetQQInfo(e.FromQQ).Id).Nick; Encoding encoder = Encoding.UTF8; byte[] bytes = encoder.GetBytes(QQID + QQMemberID == ""?"" :'(' + QQMemberID + ')' + "\n" + e.Message + "\n"); FileStream fs = File.OpenWrite(value); //设定书写的开始位置为文件的末尾 fs.Position = fs.Length; //将待写入内容追加到文件末尾 fs.Write(bytes, 0, bytes.Length); fs.Close(); } } if (Message.StartsWith(".录入结束")) { try { FriendMesageDict.Remove(e.FromQQ); Common.CqApi.SendGroupMessage(e.FromQQ, "录入已结束"); } catch (Exception ee) { Common.CqApi.SendGroupMessage(e.FromQQ, ee.ToString()); } } }
public void ReceiveGroupPrivateMessage(object sender, CqPrivateMessageEventArgs e) { SaveReceiveGroupPrivateMessage(e); }
public void Help(CqPrivateMessageEventArgs e) { }
public static int OQ_Event(string micqq, int type, int lowtype, string from, string fromqq, string bqq, string msg, string MsgNum, string msgID, string teamsg, string json, int note) { int ret = 1; switch (type) { case 12000: ret = Event.Event_AppMain.CqStartup(); break; case 12001: ret = Event.Event_AppMain.CqAppEnable(); break; case 12002: ret = Event.Event_AppMain.CqAppDisable(); break; } if (type > 1100 && type < 1110) { CqQQStuatsChangeEventArgs e = new CqQQStuatsChangeEventArgs(Convert.ToInt64(micqq), type); ret = Event.Event_QQStauts.LoginSucess(e); } else if (type < 0) //未定义事件 { } else if (type == 1) //好友消息 { CqPrivateMessageEventArgs e = new CqPrivateMessageEventArgs(msgID, MsgNum, Convert.ToInt64(micqq), Convert.ToInt64(from), msg); ret = Event.Event_Private.ReceiveFriendMessage(e); } else if (type == 2) //群消息 { CqGroupMessageEventArgs e = new CqGroupMessageEventArgs("群聊消息", msgID, MsgNum, Convert.ToInt64(micqq), Convert.ToInt64(from), Convert.ToInt64(fromqq), msg); ret = Event.Event_Group.ReceiveGroupMessage(e); } else if (type == 4) //群私聊消息 { CqGroupPrivateMessageEventArgs e = new CqGroupPrivateMessageEventArgs(msgID, MsgNum, Convert.ToInt64(micqq), Convert.ToInt64(from), Convert.ToInt64(fromqq), msg); ret = Event.Event_Group.ReceiveGroupPrivateMessage(e); } else if (type == 6) //收到转账消息 { CqTransferAccountsEventArgs e = new CqTransferAccountsEventArgs(Convert.ToInt64(micqq), Convert.ToInt64(from), lowtype, msg); ret = Event.Event_Private.ReceiveTranceAccounts(e); } else if (type == 101) //收到好友申请 { CqAddFriendRequestEventArgs e = new CqAddFriendRequestEventArgs(DateTime.Now, Convert.ToInt64(micqq), Convert.ToInt64(from), msg, teamsg); ret = Event.Event_Private.ReceiveFriendAddRequest(e); } else if (type == 202) //群成员被移除 { CqGroupMemberDecreaseEventArgs e = new CqGroupMemberDecreaseEventArgs(DateTime.Now, Convert.ToInt64(from), Convert.ToInt64(micqq), Convert.ToInt64(fromqq), Convert.ToInt64(bqq)); ret = Event.Event_Group.ReceiveGroupMemberRemove(e); } else if (type == 212) //群成员主动进群 { CqGroupMemberIncreaseEventArgs e = new CqGroupMemberIncreaseEventArgs(DateTime.Now, Convert.ToInt64(micqq), Convert.ToInt64(from), Convert.ToInt64(fromqq), Convert.ToInt64(bqq)); ret = Event.Event_Group.ReceiveGroupMemberPass(e); } else if (type == 201) //群成员退出群 { CqGroupMemberDecreaseEventArgs e = new CqGroupMemberDecreaseEventArgs(DateTime.Now, Convert.ToInt64(from), Convert.ToInt64(micqq), Convert.ToInt64(fromqq), Convert.ToInt64(bqq)); ret = Event.Event_Group.ReceiveGroupMemberLeave(e); } else if (type == 213) //有人申请进群 { CqAddGroupRequestEventArgs e = new CqAddGroupRequestEventArgs(DateTime.Now, Convert.ToInt64(from), Convert.ToInt64(micqq), Convert.ToInt64(fromqq), msg, teamsg); ret = Event.Event_Group.ReceiveAddGroupRequest(e); } else if (type == 214) //机器人被邀请事件 { CqAddGroupRequestEventArgs e = new CqAddGroupRequestEventArgs(DateTime.Now, Convert.ToInt64(from), Convert.ToInt64(micqq), Convert.ToInt64(fromqq), msg, teamsg); ret = Event.Event_Group.ReceiveAddGroupBeInvitee(e); } else if (type == 219) //群成员被邀请进群 { CqGroupMemberIncreaseEventArgs e = new CqGroupMemberIncreaseEventArgs(DateTime.Now, Convert.ToInt64(micqq), Convert.ToInt64(from), Convert.ToInt64(fromqq), Convert.ToInt64(bqq)); ret = Event.Event_Group.ReceiveGroupMemberBeInvitee(e); } return(1); }
public void ReceiveFriendMessage(object sender, CqPrivateMessageEventArgs e) { TestObj = new Usual(); if (e.Message == "更新报时语言" && e.FromQQ == 403828602) { Usual.Change_Report_Language_Count = 2; Common.CqApi.SendPrivateMessage(e.FromQQ, "请开始输入两个报时语言,开头和结尾,分两次发送"); } else if (Usual.Change_Report_Language_Count == 2 && e.FromQQ == 403828602) { Usual.Change_Report_Language_Count--; Usual.languagemod1_start = e.Message + "\r\n"; Common.CqApi.SendPrivateMessage(e.FromQQ, "开头输入成功,请继续输入"); } else if (Usual.Change_Report_Language_Count == 1 && e.FromQQ == 403828602) { Usual.Change_Report_Language_Count--; Usual.languagemod1_over = "\r\n" + e.Message; Common.CqApi.SendPrivateMessage(e.FromQQ, "报时语言更新成功"); } if (e.Message == "/切换调试模式" && e.FromQQ == 403828602) { Usual.Trace_Enabled = !Usual.Trace_Enabled; if (Usual.Trace_Enabled) { Common.CqApi.SendPrivateMessage(e.FromQQ, "调试模式已开启"); } else { Common.CqApi.SendPrivateMessage(e.FromQQ, "调试模式已关闭"); } } if (e.Message.Contains("/添加图片")) { string FullList = ""; foreach (string list in Usual.Image_Group_Name) { FullList = FullList + list + "\r\n"; } if (FullList.Contains(e.Message.Substring(6))) { Usual.Input_Image = true; Usual.Image_Title = e.Message.Substring(6); Common.CqApi.SendPrivateMessage(e.FromQQ, "发送图片导入主题:" + e.Message.Substring(6) + "\r\n完毕后输入“/完成”"); } else { Common.CqApi.SendPrivateMessage(e.FromQQ, "不存在这个主题,请检查"); } } if (e.Message.Contains("/添加主题")) { Array.Resize(ref Usual.Image_Group_Name, Usual.Image_Group_Name.Length + 1); //名字数组加1 Array.Resize(ref Usual.Image_Group, Usual.Image_Group.Length + 1); //图片统计数组加1 Usual.Image_Group_Name[Usual.Image_Group_Name.Length - 1] = e.Message.Substring(6); Usual.Image_Group[Usual.Image_Group.Length - 1] = 0; Directory.CreateDirectory(Usual.Root_Path + "\\data\\image\\" + e.Message.Substring(6)); Common.CqApi.SendPrivateMessage(e.FromQQ, "成功导入主题:" + e.Message.Substring(6)); } if (e.Message.Contains("/完成") && Usual.Input_Image == true) { Usual.Input_Image = false; Usual.Image_Title = ""; Common.CqApi.SendPrivateMessage(e.FromQQ, "图片导入结束"); } if (Usual.Input_Image == true) { foreach (var cqMsg in CqMsg.Parse(e.Message).Contents) { string file = cqMsg.Dictionary["file"]; //如果“file”参数内容不是空的 if (!string.IsNullOrEmpty(file)) { //使用API将“cqimg”文件转换成图片文件,并返回图片文件路径 try { string fileName = Common.CqApi.ReceiveImage(file); FileInfo Files = new FileInfo(fileName); DirectoryInfo 目的 = new DirectoryInfo(Usual.Root_Path + "\\data\\image\\" + Usual.Image_Title); Files.MoveTo(目的 + "\\" + Path.GetFileName(file)); int GroupNum = Usual.Image_Group_Name.ToList().IndexOf(Usual.Image_Title); Usual.Image_Group[GroupNum]++; Common.CqApi.SendPrivateMessage(e.FromQQ, "图片导入成功"); } catch { Common.CqApi.SendPrivateMessage(e.FromQQ, "图片导入失败"); TestObj.Trace_Output("接收到的数据是" + cqMsg.Dictionary["file"]); } } } //Common.CqApi.SendPrivateMessage(e.FromQQ, e.Message.ToString()); //MessageBox.Show(e.Message.ToString()); } }
public void ReceiveFriendMessage(object sender, CqPrivateMessageEventArgs e) { Common.CqApi.SendPrivateMessage(e.FromQQ, e.Message); }
public void ReceiveGroupMessage(object sender, CqGroupMessageEventArgs e) { Event_Variable.isGroup = true; string input = e.Message; Event_Variable.QQQ = e.FromQQ; Event_Variable.varDelay = false; try { //检查是否启用变量延迟解释 if (input.StartsWith("~")) { Event_Variable.varDelay = true; input = input.Substring(1); } //用户输入的前缀为连续扳机,去掉第1个并传递给群私聊类处理 if (input.StartsWith("..") || input.StartsWith("。。") || input.StartsWith("!!") || input.StartsWith("!!")) { CqPrivateMessageEventArgs ee = new CqPrivateMessageEventArgs(e.Id, e.MsgId, e.FromQQ, input.Substring(1)); ReceiveFriendMessage.ReceiveFriendMessage(sender, ee); return; } } catch (Exception ex) { Common.CqApi.SendGroupMessage(e.FromGroup, Event_CheckError.CheckError(ex)); } input = new Regex("[\\s]+").Replace(input, " "); //合并复数空格 input = input.Trim(); //去除前后空格 //把用户输入的第一个中文句号替换为英文 if (input.StartsWith("。")) { input = "." + input.Remove(0, 1); //为什么不顺便把感叹号也替换了呢?因为感叹号是对应单条指令的。有的需要感叹号,有的不需要。 } if (!input.StartsWith(".") && !input.StartsWith("!") && !input.StartsWith("!")) //没有扳机就不触发 { return; } if (input.Length < 2 || input == ".." || input == ".。" || input == "!!" || input == "!!")//两个字都没有! { return; } try//插件开关 { if (input.StartsWith(".开启")) { if (input.Length > 8) { if (input.Substring(3).Trim() == Convert.ToString(Common.CqApi.GetLoginQQ())) { Event_Variable.botCloseList.Remove(e.FromGroup); Common.CqApi.SendGroupMessage(e.FromGroup, $"{Convert.ToString(Common.CqApi.GetLoginQQ())}已开启!"); } else { return; } } else { Event_Variable.botCloseList.Remove(e.FromGroup); Common.CqApi.SendGroupMessage(e.FromGroup, "已开启!"); } } if (input.StartsWith(".关闭")) { if (input.Length > 8) { if (input.Substring(3).Trim() == Convert.ToString(Common.CqApi.GetLoginQQ())) { Event_Variable.botCloseList.Add(e.FromGroup); Event_Variable.botCloseList = Event_Variable.botCloseList.Distinct().ToList(); Common.CqApi.SendGroupMessage(e.FromGroup, $"{Convert.ToString(Common.CqApi.GetLoginQQ())}已关闭!"); } else { return; } } else { Event_Variable.botCloseList.Add(e.FromGroup); Event_Variable.botCloseList = Event_Variable.botCloseList.Distinct().ToList(); Common.CqApi.SendGroupMessage(e.FromGroup, "已关闭!"); } } } catch (Exception) { Common.CqApi.SendGroupMessage(e.FromGroup, "意外的错误!"); } if (input.StartsWith(".帮助")) //帮助指令 { if (input.Length < 5) //无参帮助 { Common.CqApi.SendGroupMessage(e.FromGroup, Event_Variable.helpDescription); } else//含参帮助 { Common.CqApi.SendGroupMessage(e.FromGroup, Event_HelpDescription.helpDescription(input)); } return; } //用户输入指令 if (!Event_Variable.botCloseList.Exists((long f) => f == e.FromGroup)) { if (!Event_Variable.varDelay) { int vvc = 0; foreach (var item in Event_Variable.vValue)//变量解释器 { input = input.Replace(Event_Variable.vKey[vvc], item); vvc++; } } //判断路径是否存在 if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\Command\")) { Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\Command\"); //不存在就创建 Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\Att\"); //属性功能初始化 } try { List <string> commandInput = new List <string>(input.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)); //切割用户输入的指令 .xx a b c if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\Command\" + //如果找到用户定义的指令 "." + commandInput[0].TrimStart(Convert.ToChar(".")) + ".ini")) //复数点视为成单个点 { var tempLoad = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\Command\" + commandInput[0] + ".ini").Trim(); if (tempLoad.Substring(0, 1) == "#")//如果自定义指令无参 添加一个nil作为参数 { commandInput.Add("nil!"); tempLoad = "nil!" + tempLoad; } List <string> loadCommandList = new List <string>(tempLoad.Split(new string[] { "#" }, StringSplitOptions.RemoveEmptyEntries)); //A B C .删除 A B .插入 随机 C List <string> loadVarList = new List <string>(loadCommandList[0].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)); //A B C List <string> loadEndList = new List <string>(); //替换后的列表 string tempItem; foreach (var item in loadCommandList) { tempItem = item; for (int i = 0; i < loadVarList.Count; i++) { //将loadCommandList每一项中的 loadVarList第i项 替换为 commandInput第i+1项, 传入loadEndList tempItem = tempItem.Replace(loadVarList[i], commandInput[i + 1]); } loadEndList.Add(tempItem); } loadEndList.RemoveAt(0);//.删除 区域 牌名1 .插入 随机 牌名2 string temp; foreach (var item in loadEndList) { temp = item; if (temp.StartsWith("!!") || temp.StartsWith("!!") || temp.StartsWith(".."))//复合指令中的连续扳机 { CqPrivateMessageEventArgs ee = new CqPrivateMessageEventArgs(e.Id, e.MsgId, e.FromQQ, temp.Substring(1)); ReceiveFriendMessage.ReceiveFriendMessage(sender, ee); } else { Event_Variable.Defa = false; if (temp.StartsWith("!") || temp.StartsWith("!"))//该指令是自动补全参数指令 { Event_Variable.Defa = true; temp = "." + temp.Remove(0, 1); } if (Event_Variable.varDelay) { int vvc = 0; foreach (var itemx in Event_Variable.vValue)//变量解释器 { temp = temp.Replace(Event_Variable.vKey[vvc], itemx); vvc++; } } Event_OriginalCommand.CommandIn(temp, e.FromGroup, true); } } } else { Event_Variable.Defa = false; if (input.StartsWith("!") || (input.StartsWith("!")))//该指令是自动补全参数指令 { Event_Variable.Defa = true; input = "." + input.Remove(0, 1); } if (Event_Variable.varDelay) { int vvc = 0; foreach (var itemx in Event_Variable.vValue)//变量解释器 { input = input.Replace(Event_Variable.vKey[vvc], itemx); vvc++; } } Event_OriginalCommand.CommandIn(input, e.FromGroup, true);//查一下是不是固有指令 } } catch (Exception) { Common.CqApi.SendGroupMessage(e.FromGroup, "指令输入错误!输入'.帮助'检查你的格式!"); } } }
public void ReceiveFriendMessage(object sender, CqPrivateMessageEventArgs e) { string input = e.Message; input = new Regex("[\\s]+").Replace(input, " "); //合并复数空格 input = input.Trim().Replace("色子", "骰子"). Replace("RD", "骰子").Replace("rd", "骰子").Replace("Rd", "骰子"); //去除前后空格,统一一些措辞 //把用户输入的第一个中文句号替换为英文 if (input.Substring(0, 1) == "。") { input = "." + input.Remove(0, 1); } if (input == ".帮助") { Common.CqApi.SendPrivateMessage(e.FromQQ, @"恋梦桌游姬V0.9.0 By未来菌 方括号内为参数,带*的为选填参数: .计算 [算式]:进行四则运算 .骰子 [数量*] [面数]:投掷X枚骰子,默认为1 .创建 [区域]:创建一个可以放置卡牌或记录信息的区域 .销毁 [区域]:销毁区域 .清空 [区域]:清空区域 .添加 [区域] [牌名] [牌名*]:添加若干指定名称的牌进入区域,卡牌间用空格表示并列 .删除 [区域] [牌名] [牌名*]:删除区域中搜索到的最前方的指定卡牌 .抽牌 [旧区域] [新区域] [数量]:从旧区域抽X张牌到新区域 .查看 [区域]:打印区域内容 .洗牌 [区域]:区域卡牌乱序排序 .清点 [区域]:计算区域卡牌数量 .插入 [区域] [序号] [牌名] [牌名*]:在区域的第X张牌之前插入若干张牌 .发现 [区域] [数量*]:展示区域内随机X张牌,默认为3(施工中) .翻转 [区域]:私密变为公开,公开变为私密,牌序反转(施工中) .建表 [区域]:创建一个二维棋盘区域(施工中) 注:可以在区域开头加入“私密”字样,如[私密牌库]。非私密区域在某些卡牌变化场景会打印内容。 "); return; } if (input.Substring(0, 1) == ".") //检测到用户输入指令 { switch (input.Substring(1, 2)) //偷懒,只匹配.后2个字符 { case "计算": Common.CqApi.SendPrivateMessage(e.FromQQ, Calc(input)); return; case "骰子": Common.CqApi.SendPrivateMessage(e.FromQQ, Dices(input)); return; case "创建": switch (Crea(input)) { case 0: Common.CqApi.SendPrivateMessage(e.FromQQ, $@"创建{input.Trim().Substring(3).Trim()}成功!"); //待优化 return; default: Common.CqApi.SendPrivateMessage(e.FromQQ, $@"创建{input.Trim().Substring(3).Trim()}失败!"); return; } case "销毁": Common.CqApi.SendPrivateMessage(e.FromQQ, Boom(input)); return; case "清空": Boom(input); switch (Crea(input)) //创建 { case 0: Common.CqApi.SendPrivateMessage(e.FromQQ, $@"清空{input.Trim().Substring(3).Trim()}成功!"); //待优化 return; default: Common.CqApi.SendPrivateMessage(e.FromQQ, $@"{input.Trim().Substring(3).Trim()}丢失!"); return; } case "添加": Common.CqApi.SendPrivateMessage(e.FromQQ, Add(input)); return; case "删除": Common.CqApi.SendPrivateMessage(e.FromQQ, DelInfos(input)); return; case "移动": // return; case "抽牌": Common.CqApi.SendPrivateMessage(e.FromQQ, Draw(input)); return; case "查看": GetInfo(input, out string looname, out string looret); Common.CqApi.SendPrivateMessage(e.FromQQ, $@"{looname}: {looret}"); return; case "清点": CountNum(input, out string num); Common.CqApi.SendPrivateMessage(e.FromQQ, $@"{input.Substring(3).Trim()}有{num}张牌"); return; case "发现": return; case "存档": return; case "读档": return; case "复制": return; case "洗牌": Common.CqApi.SendPrivateMessage(e.FromQQ, Shuffle(input)); return; case "插入": Common.CqApi.SendPrivateMessage(e.FromQQ, Inser(input)); return; case "移除": // return; case "翻转": //顺序颠倒,私密变公开,公开变私密 return; case "建表": return; } Common.CqApi.SendPrivateMessage(e.FromQQ, "不存在的指令!获取指令目录请输入“.帮助”!"); } }
/// <summary> /// 好友消息事件接口 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public static int ReceiveFriendMessage(CqPrivateMessageEventArgs e) { Common.CqApi.SendPrivateMessage(e.RobotQQ, e.FromQQ, Common.CqApi.CqCode_At(e.FromQQ) + " 你发送了这样的消息:" + e.Message); return(1); }