예제 #1
0
 static void FriendManager_AddFriendDeny(object sender, QQEventArgs <AddFriendExReplyPacket, AddFriendExPacket> e)
 {
     WL("添加好友{0}被拒绝", e.InPacket.FriendQQ);
 }
예제 #2
0
 /// <summary>
 /// Raises the <see cref="E:ModifyCardSuccssed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterModifyCardPacket&gt;"/> instance containing the event data.</param>
 internal void OnModifyCardSuccssed(QQEventArgs<ClusterCommandReplyPacket, ClusterModifyCardPacket> e)
 {
     if (ModifyCardSuccessed != null)
     {
         ModifyCardSuccessed(this, e);
     }
 }
예제 #3
0
 /// <summary>
 /// Raises the <see cref="E:SearchClusterFailed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterSearchPacket&gt;"/> instance containing the event data.</param>
 internal void OnSearchClusterFailed(QQEventArgs<ClusterCommandReplyPacket, ClusterSearchPacket> e)
 {
     if (SearchClusterFailed != null)
     {
         SearchClusterFailed(this, e);
     }
 }
예제 #4
0
 /// <summary>
 /// Raises the <see cref="E:ExitClusterSuccessed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterExitPacket&gt;"/> instance containing the event data.</param>
 internal void OnExitClusterSuccessed(QQEventArgs<ClusterCommandReplyPacket, ClusterExitPacket> e)
 {
     if (ExitClusterSuccessed != null)
     {
         ExitClusterSuccessed(this, e);
     }
 }
예제 #5
0
 /// <summary>
 /// Raises the <see cref="E:GetOnlineMemberSuccessed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterGetOnlineMemberPacket&gt;"/> instance containing the event data.</param>
 internal void OnGetOnlineMemberSuccessed(QQEventArgs<ClusterCommandReplyPacket, ClusterGetOnlineMemberPacket> e)
 {
     if (GetOnlineMemberSuccessed != null)
     {
         GetOnlineMemberSuccessed(this, e);
     }
 }
예제 #6
0
 /// <summary>
 /// Raises the <see cref="E:SysAddedByOthers"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.SystemNotificationPacket&gt;"/> instance containing the event data.</param>
 internal void OnSysAddedByOthers(QQEventArgs<SystemNotificationPacket, OutPacket> e)
 {
     if (SysAddedByOthers != null)
     {
         SysAddedByOthers(this, e);
     }
 }
예제 #7
0
 /// <summary>
 /// Raises the <see cref="E:SysRequestAddMeEx"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.SystemNotificationPacket&gt;"/> instance containing the event data.</param>
 internal void OnSysRequestAddMeEx(QQEventArgs<SystemNotificationPacket, OutPacket> e)
 {
     if (SysRequestAddMeEx != null)
     {
         SysRequestAddMeEx(this, e);
     }
 }
예제 #8
0
 static void MessageManager_SysAdvertisment(object sender, QQEventArgs <SystemNotificationPacket, OutPacket> e)
 {
     WL("收到广告信息:{0}", e.InPacket.Message);
 }
예제 #9
0
 static void MessageManager_SysAddedByOthers(object sender, QQEventArgs <SystemNotificationPacket, OutPacket> e)
 {
     WL("被{0}加为好友", e.InPacket.From);
 }
예제 #10
0
 static void MessageManager_SysAddOtherRejected(object sender, QQEventArgs <SystemNotificationPacket, OutPacket> e)
 {
     WL("{0}拒绝了的添加请求,理由:{1}", e.InPacket.From, e.InPacket.Message);
 }
예제 #11
0
 static void MessageManager_SysAddOtherApproved(object sender, QQEventArgs <SystemNotificationPacket, OutPacket> e)
 {
     WL("我已同意{0}加我为好友。", e.InPacket.From);
 }
예제 #12
0
 static void MessageManager_SysRequestAddMe(object sender, QQEventArgs <SystemNotificationPacket, OutPacket> e)
 {
     WL("{0}请求加我为好友,附加信息:{1}", e.InPacket.From, e.InPacket.Message);
     e.QQClient.FriendManager.AddFriend(e.InPacket.From);
 }
예제 #13
0
 static void FriendManager_AddFriendSuccessed(object sender, QQEventArgs <AddFriendExReplyPacket, AddFriendExPacket> e)
 {
     WL("成功添加{0}为好友", e.InPacket.FriendQQ);
 }
예제 #14
0
 static void FriendManager_AddFriendNeedAuth(object sender, QQEventArgs <AddFriendExReplyPacket, AddFriendExPacket> e)
 {
     WL("添加好友{0}需要身份验证,自动发送验证信息", e.InPacket.FriendQQ);
     e.QQClient.FriendManager.SendAddFriendAuth(e.InPacket.FriendQQ, "我是你的好朋友啊!");
 }
예제 #15
0
 /// <summary>
 /// Raises the <see cref="E:ReceiveSysMessage"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket&gt;"/> instance containing the event data.</param>
 internal void OnReceiveSysMessage(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (ReceiveSysMessage != null)
     {
         ReceiveSysMessage(this, e);
     }
 }
예제 #16
0
 static void FriendManager_ChangeStatusFailed(object sender, QQEventArgs <ChangeStatusReplyPacket, ChangeStatusPacket> e)
 {
     WL("状态改变失败!");
 }
예제 #17
0
 /// <summary>
 /// Raises the <see cref="E:ReceiveUnknownIM"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket&gt;"/> instance containing the event data.</param>
 internal void OnReceiveUnknownIM(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (ReceiveUnknownIM != null)
     {
         ReceiveUnknownIM(this, e);
     }
 }
예제 #18
0
 static void FriendManager_ChangeStatusSuccessed(object sender, QQEventArgs <ChangeStatusReplyPacket, ChangeStatusPacket> e)
 {
     WL("状态改变成功,新状态是:{0}", e.QQClient.QQUser.Status);
 }
예제 #19
0
 /// <summary>
 /// Raises the <see cref="E:SysAdvertisment"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.SystemNotificationPacket&gt;"/> instance containing the event data.</param>
 internal void OnSysAdvertisment(QQEventArgs<SystemNotificationPacket, OutPacket> e)
 {
     if (SysAdvertisment != null)
     {
         SysAdvertisment(this, e);
     }
 }
예제 #20
0
 static void FriendManager_FriendChangeStatus(object sender, QQEventArgs <FriendChangeStatusPacket, OutPacket> e)
 {
     WL("好友:{0} 状态改变为:{1}", e.InPacket.FriendQQ, e.InPacket.Status);
 }
예제 #21
0
 /// <summary>
 /// Raises the <see cref="E:ApprovedJoinCluster"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket,TS.QQ.Packets.OutPacket&gt;"/> instance containing the event data.</param>
 internal void OnApprovedJoinCluster(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (ApprovedJoinCluster != null)
     {
         ApprovedJoinCluster(this, e);
     }
 }
예제 #22
0
 /// <summary>
 ///     好友消息
 /// </summary>
 private static void Client_EventReceive_0x00CE(object sender, QQEventArgs <Receive_0x00CE> e)
 {
 }
예제 #23
0
 /// <summary>
 /// Raises the <see cref="E:GetDialogSubjectSuccessed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterSubClusterOpPacket&gt;"/> instance containing the event data.</param>
 internal void OnGetDialogSubjectSuccessed(QQEventArgs<ClusterCommandReplyPacket, ClusterSubClusterOpPacket> e)
 {
     if (GetDialogSubjectSuccessed != null)
     {
         GetDialogSubjectSuccessed(this, e);
     }
 }
예제 #24
0
 public LoginPingCommand(byte[] data, QQClient client) : base(data, client)
 {
     _packet     = new Receive_0x0825(data, client.QQUser);
     _event_args = new QQEventArgs <Receive_0x0825>(client, _packet);
 }
예제 #25
0
 /// <summary>
 /// Raises the <see cref="E:JoinClusterFailed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterJoinPacket&gt;"/> instance containing the event data.</param>
 internal void OnJoinClusterFailed(QQEventArgs<ClusterCommandReplyPacket, ClusterJoinPacket> e)
 {
     if (JoinClusterFailed != null)
     {
         JoinClusterFailed(this, e);
     }
 }
예제 #26
0
 public QQLineStateResponseCommand(QQEventArgs <Receive_0X00Ec> args) : base(args)
 {
 }
예제 #27
0
 /// <summary>
 /// Raises the <see cref="E:RejectJoinCluster"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket,TS.QQ.Packets.OutPacket&gt;"/> instance containing the event data.</param>
 internal void OnRejectJoinCluster(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (RejectJoinCluster != null)
     {
         RejectJoinCluster(this, e);
     }
 }
예제 #28
0
 public ResponseGroupOrSystemMessageCommand(QQEventArgs <Receive_0X0017> args) : base(args)
 {
 }
예제 #29
0
 /// <summary>
 /// Raises the <see cref="E:SendJoinClusterAuthSuccessed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterAuthPacket&gt;"/> instance containing the event data.</param>
 internal void OnSendJoinClusterAuthSuccessed(QQEventArgs<ClusterCommandReplyPacket, ClusterAuthPacket> e)
 {
     if (SendJoinClusterAuthSuccessed != null)
     {
         SendJoinClusterAuthSuccessed(this, e);
     }
 }
예제 #30
0
 /// <summary>
 /// 群消息
 /// </summary>
 private static void Client_EventReceive_0x0017(object sender, QQEventArgs <QQ.Framework.Packets.Receive.Message.Receive_0x0017> e)
 {
 }
예제 #31
0
 /// <summary>
 /// Raises the <see cref="E:ReceiveKickOut"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket&gt;"/> instance containing the event data.</param>
 internal void OnReceiveKickOut(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     //设置为未登录
     QQClient.LoginManager.SetLogout();
     if (ReceiveKickOut != null)
     {
         ReceiveKickOut(this, e);
     }
 }
 public LoginPingResponseCommand(QQEventArgs <Receive_0x0825> args) : base(args)
 {
 }
예제 #33
0
 /// <summary>
 /// Raises the <see cref="E:ReceiveTempSessionIM"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket,TS.QQ.Packets.OutPacket&gt;"/> instance containing the event data.</param>
 internal void OnReceiveTempSessionIM(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (ReceiveTempSessionIM != null)
     {
         ReceiveTempSessionIM(this, e);
     }
 }
예제 #34
0
 public ResponseCommand(QQEventArgs <PacketType> args)
 {
     _packet  = args.ReceivePacket;
     _service = args.Service;
     _user    = args.User;
 }
예제 #35
0
 internal void OnReceiveVibration(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (ReceiveVibration != null)
     {
         ReceiveVibration(this, e);
     }
 }
 public ResponseReceiveFriendMessageCommand(QQEventArgs <Receive_0x00CE> args) : base(args)
 {
 }
예제 #37
0
 /// <summary>
 /// Raises the <see cref="E:SysAddOtherRejected"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.SystemNotificationPacket&gt;"/> instance containing the event data.</param>
 internal void OnSysAddOtherRejected(QQEventArgs<SystemNotificationPacket, OutPacket> e)
 {
     if (SysAddOtherRejected != null)
     {
         SysAddOtherRejected(this, e);
     }
 }
예제 #38
0
 // 未完成
 public DefaultResponseCommand(QQEventArgs <ReceivePacket> args) : base(args)
 {
 }
예제 #39
0
 /// <summary>
 /// Raises the <see cref="E:SysApprovedAddOtherAndAddMe"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.SystemNotificationPacket&gt;"/> instance containing the event data.</param>
 internal void OnSysApprovedAddOtherAndAddMe(QQEventArgs<SystemNotificationPacket, OutPacket> e)
 {
     if (SysApprovedAddOtherAndAddMe != null)
     {
         SysApprovedAddOtherAndAddMe(this, e);
     }
 }
예제 #40
0
 /// <summary>
 ///     Key查询
 /// </summary>
 public KeyQueryCommand(byte[] data, SocketService service, ServerMessageSubject transponder, QQUser user) :
     base(data, service, transponder, user)
 {
     _packet     = new Receive_0x001D(data, _user);
     _event_args = new QQEventArgs <Receive_0x001D>(_service, _user, _packet);
 }
예제 #41
0
 /// <summary>
 /// Raises the <see cref="E:AddedToCluster"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket,TS.QQ.Packets.OutPacket&gt;"/> instance containing the event data.</param>
 internal void OnAddedToCluster(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (AddedToCluster != null)
     {
         AddedToCluster(this, e);
     }
 }
예제 #42
0
 public PreLoginResponseCommand(QQEventArgs <Receive_0x0828> args) : base(args)
 {
 }
예제 #43
0
 /// <summary>
 /// Raises the <see cref="E:BatchGetCardSuccessed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterGetCardBatchPacket&gt;"/> instance containing the event data.</param>
 internal void OnBatchGetCardSuccessed(QQEventArgs<ClusterCommandReplyPacket, ClusterGetCardBatchPacket> e)
 {
     if (BatchGetCardSuccessed != null)
     {
         BatchGetCardSuccessed(this, e);
     }
 }
 /// <summary>
 ///     收到群/系统消息
 /// </summary>
 public ReceiveGroupSystemMessagesCommand(byte[] data, ISocketService service, IServerMessageSubject transponder,
                                          QQUser user) : base(data, service, transponder, user)
 {
     _packet    = new Receive_0X0017(data, _user);
     _eventArgs = new QQEventArgs <Receive_0X0017>(_service, _user, _packet);
 }
예제 #45
0
 /// <summary>
 /// Raises the <see cref="E:GetClusterInfoSuccessed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterGetInfoPacket&gt;"/> instance containing the event data.</param>
 internal void OnGetClusterInfoSuccessed(QQEventArgs<ClusterCommandReplyPacket, ClusterGetInfoPacket> e)
 {
     if (GetClusterInfoSuccessed != null)
     {
         GetClusterInfoSuccessed(this, e);
     }
 }
예제 #46
0
 public Data0X019BCommand(byte[] data, ISocketService service, IServerMessageSubject transponder, QQUser user) :
     base(data, service, transponder, user)
 {
     _packet    = new Receive_0X019B(data, _user);
     _eventArgs = new QQEventArgs <Receive_0X019B>(_service, _user, _packet);
 }
예제 #47
0
 /// <summary>
 /// Raises the <see cref="E:GetMemberInfoFailed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterGetMemberInfoPacket&gt;"/> instance containing the event data.</param>
 internal void OnGetMemberInfoFailed(QQEventArgs<ClusterCommandReplyPacket, ClusterGetMemberInfoPacket> e)
 {
     if (GetMemberInfoFailed != null)
     {
         GetMemberInfoFailed(this, e);
     }
 }
예제 #48
0
        void ReciveMsg(object state)
        {
            while (true)
            {
                EndPoint RecivePoint = new IPEndPoint(IPAddress.Any, 0);            //用来保存发送方的ip和端口号
                byte[]   buffer      = new byte[QQGlobal.QQ_PACKET_MAX_SIZE];
                int      length      = Server.ReceiveFrom(buffer, ref RecivePoint); //接收数据报

                var hexStr = Util.ToHex(buffer);
                hexStr = hexStr.Substring(0, hexStr.LastIndexOf("03 00") + 2);
                //包装到ByteBuffer
                ByteBuffer tempBuf = new ByteBuffer(Util.HexStringToByteArray(hexStr))
                {
                    Position = 0
                };
                //需要一个基础包
                var _ReceivePacket = new ReceivePacket(tempBuf, client.QQUser, null);
                //接收消息后触发事件
                QQEventArgs <ReceivePacket> ReceiveEvent = new QQEventArgs <ReceivePacket>(client, _ReceivePacket);
                client.OnReceive(ReceiveEvent);
                //数据包指针归零
                tempBuf.Position = 0;
                switch (_ReceivePacket.Command)
                {
                case QQCommand.Login0x0825:
                    var _0825Packet = new Receive_0x0825(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x0825> _0825e = new QQEventArgs <Receive_0x0825>(client, _0825Packet);
                    if (_0825Packet.DataHead == 0xFE)
                    {
                        client.OnReceive_0x0825Redirect(_0825e);
                    }
                    else
                    {
                        client.OnReceive_0x0825(_0825e);
                    }
                    break;

                case QQCommand.Login0x0836:
                    var _0836Packet = new Receive_0x0836(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x0836> _0836e = new QQEventArgs <Receive_0x0836>(client, _0836Packet);
                    if (_0836Packet.GetPacketLength() == 319 || _0836Packet.GetPacketLength() == 351)
                    {
                        client.MessageLog("你输入的帐号名或密码不正确,原因可能是:输错帐号;记错密码;未区分字母大小写;未开启小键盘。");
                    }
                    else if (_0836Packet.GetPacketLength() == 271 || _0836Packet.GetPacketLength() == 207)
                    {
                        client.OnReceive_0x0836_686(_0836e);
                    }
                    else if (_0836Packet.GetPacketLength() == 135)
                    {
                        client.MessageLog("抱歉,请重新输入密码");
                    }
                    else if (_0836Packet.GetPacketLength() == 279)
                    {
                        client.MessageLog("你的帐号存在被盗风险,已进入保护模式");
                    }
                    else if (_0836Packet.GetPacketLength() == 263)
                    {
                        client.MessageLog("你输入的帐号不存在");
                    }
                    else if (_0836Packet.GetPacketLength() == 551 || _0836Packet.GetPacketLength() == 487)
                    {
                        client.MessageLog("你的帐号开启了设备锁,请关闭设备锁后再进行操作");
                    }
                    else if (_0836Packet.GetPacketLength() == 359)
                    {
                        client.MessageLog("你的帐号长期未登录已被回收");
                    }
                    else if (_0836Packet.GetPacketLength() == 871)
                    {
                        client.MessageLog("需要验证码登录");
                        //client.OnReceive_0x0836_871(_0836e);
                    }
                    else if (_0836Packet.GetPacketLength() > 700)
                    {
                        client.OnReceive_0x0836_622(_0836e);
                    }
                    break;

                case QQCommand.Login0x0828:
                    var _0828Packet = new Receive_0x0828(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x0828> _0828e = new QQEventArgs <Receive_0x0828>(client, _0828Packet);
                    client.OnReceive_0x0828(_0828e);
                    break;

                case QQCommand.Login0x00EC:
                    var _00ECPacket = new Receive_0x00EC(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x00EC> _00ECe = new QQEventArgs <Receive_0x00EC>(client, _00ECPacket);
                    client.OnReceive_0x00EC(_00ECe);
                    break;

                case QQCommand.Data0x001D:
                    var _001DPacket = new Receive_0x001D(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x001D> _001De = new QQEventArgs <Receive_0x001D>(client, _001DPacket);
                    client.OnReceive_0x001D(_001De);
                    break;

                case QQCommand.Data0x005C:
                    var _005CPacket = new Receive_0x005C(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x005C> _005Ce = new QQEventArgs <Receive_0x005C>(client, _005CPacket);
                    client.OnReceive_0x005C(_005Ce);
                    break;

                case QQCommand.Message0x0017:
                    var _0017Packet = new Receive_0x0017(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x0017> _0017e = new QQEventArgs <Receive_0x0017>(client, _0017Packet);
                    client.OnReceive_0x0017(_0017e);
                    break;

                case QQCommand.Message0x00CE:
                    var _00CEPacket = new Receive_0x00CE(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x00CE> _00CEe = new QQEventArgs <Receive_0x00CE>(client, _00CEPacket);
                    client.OnReceive_0x00CE(_00CEe);
                    break;

                case QQCommand.Message0x00CD:
                    var _00CDPacket = new Receive_0x00CD(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x00CD> _00CDe = new QQEventArgs <Receive_0x00CD>(client, _00CDPacket);
                    client.OnReceive_0x00CD(_00CDe);
                    break;

                case QQCommand.Message0x0058:
                    var _0058Packet = new Receive_0x0058(tempBuf, client.QQUser);
                    QQEventArgs <Receive_0x0058> _0058e = new QQEventArgs <Receive_0x0058>(client, _0058Packet);
                    client.OnReceive_0x0058(_0058e);
                    break;

                default:
                    var _CurrencyPacket = new Receive_Currency(tempBuf, client.QQUser);
                    QQEventArgs <Receive_Currency> _Currencye = new QQEventArgs <Receive_Currency>(client, _CurrencyPacket);
                    client.OnReceive_Currency(_Currencye);
                    break;
                }
            }
        }
예제 #49
0
 /// <summary>
 /// Raises the <see cref="E:HasRequestedJoinCluster"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket,TS.QQ.Packets.OutPacket&gt;"/> instance containing the event data.</param>
 internal void OnHasRequestJoinCluster(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (HasRequestedJoinCluster != null)
     {
         HasRequestedJoinCluster(this, e);
     }
 }
예제 #50
0
 public DefaultReceiveCommand(byte[] data, QQClient client) : base(data, client)
 {
     _packet     = new Receive_Currency(data, client.QQUser);
     _event_args = new QQEventArgs <Receive_Currency>(client, _packet);
 }
예제 #51
0
 /// <summary>
 /// Raises the <see cref="E:JoinClusterNeedAuth"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterJoinPacket&gt;"/> instance containing the event data.</param>
 internal void OnJoinClusterNeedAuth(QQEventArgs<ClusterCommandReplyPacket, ClusterJoinPacket> e)
 {
     if (JoinClusterNeedAuth != null)
     {
         JoinClusterNeedAuth(this, e);
     }
 }
예제 #52
0
 protected ResponsePacketProcessor(QQEventArgs <TPacketType> args, Type receivePacketType)
 {
     _args = args;
     _receivePacketType = receivePacketType;
 }
예제 #53
0
 /// <summary>
 /// Raises the <see cref="E:ReceiveClusterIM"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket,TS.QQ.Packets.OutPacket&gt;"/> instance containing the event data.</param>
 internal void OnReceiveClusterIM(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (e.InPacket.ClusterIM.FragmentCount > 1)
     {
         if (!fragments.ContainsKey(e.InPacket.ClusterIM.MessageId))
         {
             fragments.Add(e.InPacket.ClusterIM.MessageId, new Dictionary<int, byte[]>());
         }
         Dictionary<int, byte[]> messageFragments = fragments[e.InPacket.ClusterIM.MessageId];
         if (!messageFragments.ContainsKey(e.InPacket.ClusterIM.FragmentSequence))
         {
             messageFragments.Add(e.InPacket.ClusterIM.FragmentSequence, e.InPacket.ClusterIM.MessageBytes);
         }
         //如果消息分片还没有接收完
         if (messageFragments.Count < e.InPacket.ClusterIM.FragmentCount)
         {
             return;
         }
         //已经接收到了所有分片包,要注意,包的接收顺序可能不是顺序接收到的。
         //合成包
         List<byte> messageBytes = new List<byte>();
         for (int i = 0; i < e.InPacket.ClusterIM.FragmentCount; i++)
         {
             messageBytes.AddRange(messageFragments[i]);
         }
         fragments.Remove(e.InPacket.ClusterIM.MessageId);
         e.InPacket.ClusterIM.MessageBytes = messageBytes.ToArray();
     }
     QQClient.LogManager.Log(e.InPacket.ClusterIM.Message);
     if (ReceiveClusterIM != null)
     {
         ReceiveClusterIM(this, e);
     }
 }
예제 #54
0
 public static ResponsePacketProcessor <TPacketType> Of(QQEventArgs <TPacketType> args, Type receivePacketType)
 {
     return(new ResponsePacketProcessor <TPacketType>(args, receivePacketType));
 }
예제 #55
0
 /// <summary>
 /// Raises the <see cref="E:RemovedFromCluster"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket,TS.QQ.Packets.OutPacket&gt;"/> instance containing the event data.</param>
 internal void OnRemovedFromCluster(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (RemovedFromCluster != null)
     {
         RemovedFromCluster(this, e);
     }
 }
 public VerifyCodeResponseCommand(QQEventArgs <Receive_0X00Ba> args) : base(args)
 {
 }
예제 #57
0
 /// <summary>
 /// Raises the <see cref="E:SendClusterIMExSuccessed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ClusterCommandReplyPacket,TS.QQ.Packets.Out.ClusterSendIMExPacket&gt;"/> instance containing the event data.</param>
 internal void OnSendClusterIMExSuccessed(QQEventArgs<ClusterCommandReplyPacket, ClusterSendIMExPacket> e)
 {
     if (SendClusterIMExSuccessed != null)
     {
         SendClusterIMExSuccessed(this, e);
     }
 }
예제 #58
0
 /// <summary>
 /// Raises the <see cref="E:ReceiveDuplicatedIM"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.Packets.In.ReceiveIMPacket&gt;"/> instance containing the event data.</param>
 internal void OnReceiveDuplicatedIM(QQEventArgs<ReceiveIMPacket, OutPacket> e)
 {
     if (ReceiveDuplicatedIM != null)
     {
         ReceiveDuplicatedIM(this, e);
     }
 }
예제 #59
0
 /// <summary>
 /// Raises the <see cref="E:UpdateOrganizationSuccessed"/> event.
 /// </summary>
 /// <param name="e">The <see cref="TS.QQ.Events.QQEventArgs&lt;TS.QQ.ClusterCommand,TS.QQ.Packets.Out.ClusterUpdateOrganizationPacket&gt;"/> instance containing the event data.</param>
 internal void OnUpdateOrganizationSuccessed(QQEventArgs<ClusterCommandReplyPacket, ClusterUpdateOrganizationPacket> e)
 {
     if (UpdateOrganizationSuccessed != null)
     {
         UpdateOrganizationSuccessed(this, e);
     }
 }
예제 #60
0
 static void FriendManager_SendAuthSuccessed(object sender, QQEventArgs <AuthorizeReplyPacket, AuthorizePacket> e)
 {
     WL("发送身份认证({0})成功", e.OutPacket.Message);
 }