private void OnPrivateMessage(PrivateMessageEvent e) { if (!this.ListeningBehavior.HasFlag(ListeningBehavior.PrivateMessage)) { return; } if (e.Message.Length == 0 || !e.Incoming) { return; } if (this.CommandPrefixes.Contains(e.Message[0])) { var player = e.Player; if (player == null) { return; } var cmd = new ParsedRequest(e.Message.Substring(1)); var source = new PlayerInvokeSource(player, PlayerInvokeOrigin.PrivateMessage, msg => Chat.Of(this.BotBits).PrivateMessage(player, msg)); new CommandEvent(source, cmd) .RaiseIn(this.BotBits); } }
private void MessageSorter(byte[] buffer, int start, int length, Socket clientSocket) { string content = Encoding.Default.GetString(buffer, 0, length); MessageDictionary messageD = new MessageDictionary(content); ShowMessage("从" + clientSocket.RemoteEndPoint.ToString() + "接收消息:" + content + "\n"); CommandType command = (CommandType)Enum.Parse(typeof(CommandType), messageD[MesKeyStr.CommandType]); switch (command) { case CommandType.Login: { LoginEvent?.Invoke(this, new LoginEventArgs() { UserID = messageD[MesKeyStr.UserID], PassWord = messageD[MesKeyStr.PassWord], ReceiveSocket = clientSocket }); break; } case CommandType.Logout: { LogoutEvent?.Invoke(this, new User(messageD[MesKeyStr.UserID], messageD[MesKeyStr.NickName])); break; } case CommandType.SignUp: { SignUpEvent?.Invoke(this, new SignUpEventArgs(clientSocket, messageD[MesKeyStr.NickName], messageD[MesKeyStr.PassWord])); break; } case CommandType.GroupMessage: { GroupMessageEvent?.Invoke(this, messageD); break; } case CommandType.PrivateMessage: { PrivateMessageEvent?.Invoke(this, messageD); break; } case CommandType.UserJoin: case CommandType.UserQuit: case CommandType.LoginResult: case CommandType.SignUpResult: case CommandType.ServerDisconnect: case CommandType.Remove: { ShowMessage("收到错误的消息类型!"); throw new Exception("收到错误的消息类型!"); } } }
static void Main(string[] args) { cqhttp.Cyan.Logger.LogLevel = cqhttp.Cyan.Enums.Verbosity.INFO; CQApiClient cli = new CQHTTPClient( accessUrl: "http://127.0.0.1:5700", listen_port: 210 ); Group.Jobs.StartJobs(cli, 00000000); Private.Operation.LoadData(); cli.OnEvent += (client, e) => { if (e is MessageEvent) { string text_message = getText((e as MessageEvent).message); Command cmd; try { cmd = Parser.ParseCommand(text_message, (e as MessageEvent).sender.nickname); } catch { return(new EmptyResponse()); } if (e is GroupMessageEvent) { GroupMessageEvent ge = (e as GroupMessageEvent); cmd.endPoint = (client, (ge.messageType, ge.group_id)); if (privateCommands.IndexOf(cmd.operation) != -1) { client.SendTextAsync( cmd.endPoint.Item2, "请私聊调用这项功能" ); client.SendTextAsync( cqhttp.Cyan.Enums.MessageType.private_, ge.sender.user_id, helpMsg ); } else { Group.Jobs.Handle(cmd); } } else if (e is PrivateMessageEvent) { PrivateMessageEvent pe = (e as PrivateMessageEvent); cmd.endPoint = (cli, (pe.messageType, pe.sender_id)); if (cmd.operation == "help") { cli.SendTextAsync(cmd.endPoint.Item2, helpMsg); return(new EmptyResponse()); } try { Private.Operation.Handle(cmd).Wait(); } catch (AggregateException ee) { throw ee.InnerException; } } } return(new EmptyResponse()); }; Console.ReadLine(); }
public static int RecvicetPrivateMessage(IntPtr intPtr) { if (Common.unityContainer.IsRegistered <IRecvicetPrivateMessage>()) { PrivateMessageEvent data = new PrivateMessageEvent(); data = (PrivateMessageEvent)Marshal.PtrToStructure(intPtr, typeof(PrivateMessageEvent)); //string content = Marshal.PtrToStringAnsi(data.MessageContent); Common.unityContainer.Resolve <IRecvicetPrivateMessage>().RecvicetPrivateMsg(data); return((int)EventMessageEnum.Ignore); } return((int)EventMessageEnum.Ignore); }
protected virtual void OnPrivateMessage(RemoteServer server, PrivateMessageEventArgs args) { PrivateMessageEvent?.Invoke(server, args); if (args.Sent) { PrivateMessageSentEvent?.Invoke(server, args); } else { PrivateMessageReceivedEvent?.Invoke(server, args); } }
private void On(PrivateMessageEvent e) { if (e.Incoming == false) { var username = e.Player.Username; var message = $"/pm {username} {e.Message}"; var channel = this.GetChatChannel(username); if (channel.LastSent == message) { channel.LastReceived = message; } } }
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 static int RecvicetPrivateMessage(ref PrivateMessageEvent sMsg) { API.MyQQ = sMsg.ThisQQ; long MessageRandom = 0; uint MessageReq = 0; if (SqliHelper.CheckDataExsit("中级权限", "QQID", sMsg.SenderQQ.ToString()) == false) //如果不在中级权限里不反馈 { if (sMsg.SenderQQ != sMsg.ThisQQ) { } } if (sMsg.SenderQQ != sMsg.ThisQQ) { if (sMsg.MessageContent.Contains("[pic,hash=")) { MatchCollection matches = Regex.Matches(sMsg.MessageContent, "\\[pic,hash.*?\\]", RegexOptions.Multiline | RegexOptions.IgnoreCase); foreach (Match match in matches) { API.GetImageLink(sMsg.ThisQQ, sMsg.SenderQQ, 0, match.Value); } } else if (sMsg.MessageContent.Contains("取好友列表")) { API.GetFriendLists(sMsg.ThisQQ, sMsg.SenderQQ); } else if (sMsg.MessageContent.Contains("查询好友信息")) { API.GetFriendData(sMsg.ThisQQ, sMsg.SenderQQ); } else if (sMsg.MessageContent == "取钱包") { var ret = API.GetQQWalletPersonalInformationEvent(sMsg.ThisQQ); API.SendPrivateMsg(PInvoke.plugin_key, sMsg.ThisQQ, sMsg.SenderQQ, ret, ref MessageRandom, ref MessageReq); } else { //复读机 //API.SendPrivateMsg(PInvoke.plugin_key,sMsg.ThisQQ, sMsg.SenderQQ, sMsg.SenderQQ.ToString() + "发送了这样的消息:" + sMsg.MessageContent, ref MessageRandom, ref MessageReq); } } return(0); }
public static void InvokePrivateMessageEvent(PrivateMessageEventArgs args) { PrivateMessageEvent?.Invoke(args); }
public void RecvicetPrivateMsg(PrivateMessageEvent e) { //if (e.ThisQQ == e.SenderQQ) //{ // return; //} //Common.xlzAPI.OutLog("我输出的日志"); //Common.xlzAPI.SendPrivateMessage(e.ThisQQ, e.SenderQQ, "欢迎使用小栗子SDK"); //Common.xlzAPI.RecviceImage(e.MessageContent, e.ThisQQ, e.SenderQQ); //Common.xlzAPI.GetFriendList(e.ThisQQ); //List<SDK.Model.GroupInfo> groupInfos = Common.xlzAPI.Getgrouplist(e.ThisQQ); //if (groupInfos != null) //{ // Common.xlzAPI.GetgroupMemberlist(e.ThisQQ, groupInfos[0].GroupID); //} //Common.xlzAPI.GetAdministratorList(e.ThisQQ,535107725); //Common.xlzAPI.GetgroupMemberlist(e.ThisQQ, 535107725); //Common.xlzAPI.GetFriendInfoEvent(e.ThisQQ, 414725048); //Common.xlzAPI.CreateGroupFolderEvent(e.ThisQQ, 247681297, "小栗子"); //Common.xlzAPI.SendFreeGiftEvent(e.ThisQQ, 247681297, 414725048, SDK.Enum.FreeGiftEnum.Gift_280); //Common.xlzAPI.GetGroupFileListEvent(e.ThisQQ, 480325208,""); //string imagepath = System.Environment.CurrentDirectory + "\\上传好友图片.png"; //string piccode = Common.xlzAPI.UploadGroupImage(e.ThisQQ, 480325208, imagepath, false); //if (e.MessageContent.Contains("转发")) //{ // Common.xlzAPI.SendPrivateMessage(e.ThisQQ, e.MessageGroupQQ, e.MessageContent); //} //for (int i = 0; i < 600; i++) //{ // //SDK.Core.API aPI = new SDK.Core.API(); // //aPI.SendPrivateMessage(e.ThisQQ, e.SenderQQ, "VDXXH-QDN62-K2MTB-G2P88-Q7B86\r\n无法安装此密钥\r\n0xC004F025 \r\n2020/09/05 17:57:29(UTC+8)"); // //aPI.SendPrivateMessage(e.ThisQQ, e.SenderQQ, i.ToString()); // //System.Threading.Thread.Sleep(200); // Common.xlzAPI.SendPrivateMessage(e.ThisQQ, e.SenderQQ, "VDXXH-QDN62-K2MTB-G2P88-Q7B86\r\n无法安装此密钥\r\n0xC004F025 \r\n2020/09/05 17:57:29(UTC+8)"); // Common.xlzAPI.SendPrivateMessage(e.ThisQQ, e.SenderQQ, i.ToString()); // System.Threading.Thread.Sleep(200); //} //Common.xlzAPI.GetGroupMemberBriefInfoEvent(e.ThisQQ, 480325208);247681297 //string cookies = Common.xlzAPI.GetWebCookiesEvent(e.ThisQQ, "https://h5.qzone.qq.com/mqzone/index", "549000929", "5"); string picpath = System.Environment.CurrentDirectory + "\\图片.png"; if (e.MessageContent.Equals("发送群公告")) { if (File.Exists(picpath)) { string ret = Common.xlzAPI.SetAnnouncementEvent(e.ThisQQ, 247681297, "小栗子发公告", "测试发公告", picpath, null, true, true, true, true, true); } } //if (e.MessageContent.Contains("[Shake,name=")) //{ // string Shakepath = System.Environment.CurrentDirectory + "\\Shake.txt"; // using (FileStream fs = new FileStream(Shakepath, FileMode.OpenOrCreate, FileAccess.ReadWrite)) // { // fs.Position = fs.Length; // using (StreamWriter sw = new StreamWriter(fs)) // { // sw.WriteLine(e.MessageContent); // sw.Close(); // } // fs.Close(); // } //} if (e.MessageContent.Equals("取钱包")) { Common.xlzAPI.GetQQWalletPersonalInformationEvent(e.ThisQQ); } if (e.MessageContent.Equals("删成员")) { Common.xlzAPI.DelGroupMemberByBatch(e.ThisQQ, 480325208, new List <long>() { 2403875843, 2261002716 }, false); } if (e.MessageContent.Equals("简略")) { Common.xlzAPI.GetGroupMemberBriefInfoEvent(e.ThisQQ, 480325208); } picpath = System.Environment.CurrentDirectory + "\\logo.png"; if (e.MessageContent.Equals("发图")) { Common.xlzAPI.SendFriendImage(e.ThisQQ, e.SenderQQ, picpath, false); } }
private void OnNextPrivateMessageEvent(PrivateMessageEvent obj) { Log(Json(obj), LogLevel.Information); }