Пример #1
0
        /// <summary>
        /// 收到好友消息
        /// </summary>
        /// <param name="e"></param>
        internal void OnReceive_0x00CE(QQEventArgs <Receive_0x00CE> e)
        {
            if (!string.IsNullOrEmpty(e.ReceivePacket.Message))
            {
                if (!QQGlobal.DebugLog && e.ReceivePacket.Message.Count(c => c == '\0') > 5)
                {
                    QQUser.MessageLog($"收到好友{e.ReceivePacket.FromQQ}的乱码消息。");
                    //return;
                }
                QQUser.MessageLog($"收到好友{e.ReceivePacket.FromQQ}的消息:{e.ReceivePacket.Message}");
            }
            else
            {
                QQUser.MessageLog($"收到好友{e.ReceivePacket.FromQQ}的空消息。");
                //return;
            }
            //提取数据
            var dataReader = new BinaryReader(new MemoryStream(e.ReceivePacket.bodyDecrypted));

            Send(new Send_0x00CE(e.ReceivePacket.user, dataReader.ReadBytes(0x10), e.ReceivePacket.Sequence).WriteData());

            //回复已接收成功
            //buf = new ByteBuffer();
            //new Send_0x0319(e.ReceivePacket.user, DataBuf.ReadBytes(4)).Fill(buf);
            //Send(buf);
            //SendLongUserMessage("嘿嘿嘿[face1.gif]嘿嘿嘿[face2.gif]哈哈哈嘿嘿嘿[face1.gif]嘿嘿嘿[face2.gif]哈哈哈嘿嘿嘿[face1.gif]嘿嘿嘿[face2.gif]哈哈哈嘿嘿嘿[face1.gif]嘿嘿嘿[face2.gif]哈哈哈嘿嘿嘿[face1.gif]嘿嘿嘿[face2.gif]哈哈哈", e.ReceivePacket.FromQQ);

            //重复接收包不再重复触发事件并且不处理自己的消息
            if (!QQUser.ReceiveSequences.Contains(e.ReceivePacket.Sequence) && !e.ReceivePacket.FromQQ.Equals(QQUser.QQ))
            {
                QQUser.ReceiveSequences.Add(e.ReceivePacket.Sequence);
                EventReceive_0x00CE?.Invoke(this, e);
            }
        }
Пример #2
0
        /// <summary>
        /// 好友消息
        /// </summary>
        /// <param name="e"></param>
        internal void OnReceive_0x00CE(QQEventArgs <Receive_0x00CE> e)
        {
            QQUser.MessageLog($"收到好友{e.ReceivePacket.FromQQ}的消息:{e.ReceivePacket.MessageData}");
            //提取数据
            ByteBuffer DataBuf = new ByteBuffer(e.ReceivePacket.bodyDecrypted);

            var buf = new ByteBuffer();

            new Send_0x00CE(e.ReceivePacket.user, DataBuf.GetByteArray(0x10), e.ReceivePacket.Sequence).Fill(buf);
            Send(buf);

            //TODO:确认查看猜测为0x0319

            //重复接收包不再重复触发事件并且不处理自己的消息
            if (!QQUser.ReceiveSequences.Contains(e.ReceivePacket.Sequence) && !e.ReceivePacket.FromQQ.Equals(QQUser.QQ))
            {
                QQUser.ReceiveSequences.Add(e.ReceivePacket.Sequence);
                EventReceive_0x00CE?.Invoke(this, e);
            }
        }