From 7a99648b009a408467fe316195f1e631ecb73d80 Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Mon, 27 Jul 2020 20:27:18 +0800 Subject: [PATCH] fix bug. --- client/client.go | 1 + client/decoders.go | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/client/client.go b/client/client.go index fc5186dd..efa72684 100644 --- a/client/client.go +++ b/client/client.go @@ -103,6 +103,7 @@ func NewClientMd5(uin int64, passwordMd5 [16]byte) *QQClient { decoders: map[string]func(*QQClient, uint16, []byte) (interface{}, error){ "wtlogin.login": decodeLoginResponse, "StatSvc.register": decodeClientRegisterResponse, + "StatSvc.ReqMSFOffline": decodeMSFOfflinePacket, "MessageSvc.PushNotify": decodeSvcNotify, "OnlinePush.PbPushGroupMsg": decodeGroupMessagePacket, "OnlinePush.ReqPush": decodeOnlinePushReqPacket, diff --git a/client/decoders.go b/client/decoders.go index a442961b..5da17138 100644 --- a/client/decoders.go +++ b/client/decoders.go @@ -672,6 +672,13 @@ func decodeForceOfflinePacket(c *QQClient, _ uint16, payload []byte) (interface{ return nil, nil } +func decodeMSFOfflinePacket(c *QQClient, _ uint16, _ []byte) (interface{}, error) { + if c.Online { + c.Online = false + c.dispatchDisconnectEvent(&ClientDisconnectedEvent{Message: "服务器端强制下线."}) + } +} + func decodeMultiApplyUpResponse(c *QQClient, _ uint16, payload []byte) (interface{}, error) { body := multimsg.MultiRspBody{} if err := proto.Unmarshal(payload, &body); err != nil {