From 51e155ef20da7d8e04faeb889a8945747dad45d2 Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Fri, 28 Aug 2020 02:29:35 +0800 Subject: [PATCH] fix group sync. --- client/decoders.go | 30 ++- client/pb/data.pb.go | 468 ++++++++++++++++++++++++++++++++++++++++++- client/pb/data.proto | 38 ++++ 3 files changed, 526 insertions(+), 10 deletions(-) diff --git a/client/decoders.go b/client/decoders.go index 9167bc0e..b1a0103a 100644 --- a/client/decoders.go +++ b/client/decoders.go @@ -567,7 +567,7 @@ func decodeOnlinePushReqPacket(c *QQClient, seq uint16, payload []byte) (interfa return nil, err } groupLeaveLock.Lock() - if g := c.FindGroupByUin(d4.Uin); g != nil { + if g := c.FindGroup(d4.Uin); g != nil { if err := c.ReloadGroupList(); err != nil { groupLeaveLock.Unlock() return nil, err @@ -575,6 +575,34 @@ func decodeOnlinePushReqPacket(c *QQClient, seq uint16, payload []byte) (interfa c.dispatchLeaveGroupEvent(&GroupLeaveEvent{Group: g}) } groupLeaveLock.Unlock() + case 0x44: + s44 := pb.Sub44{} + if err := proto.Unmarshal(probuf, &s44); err != nil { + return nil, err + } + if s44.GroupSyncMsg != nil { + func() { + groupJoinLock.Lock() + defer groupJoinLock.Unlock() + c.Debug("syncing groups.") + old := c.GroupList + any := func(code int64) bool { + for _, g := range old { + if g.Code == code { + return true + } + } + return false + } + if err := c.ReloadGroupList(); err == nil { + for _, g := range c.GroupList { + if !any(g.Code) { + c.dispatchJoinGroupEvent(g) + } + } + } + }() + } } } } diff --git a/client/pb/data.pb.go b/client/pb/data.pb.go index e346c2e3..83c7f6b1 100644 --- a/client/pb/data.pb.go +++ b/client/pb/data.pb.go @@ -2682,6 +2682,355 @@ func (x *SubB3AddFrdNotify) GetNick() string { return "" } +type Sub44 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendSyncMsg *Sub44FriendSyncMsg `protobuf:"bytes,1,opt,name=friendSyncMsg,proto3" json:"friendSyncMsg,omitempty"` + GroupSyncMsg *Sub44GroupSyncMsg `protobuf:"bytes,2,opt,name=groupSyncMsg,proto3" json:"groupSyncMsg,omitempty"` +} + +func (x *Sub44) Reset() { + *x = Sub44{} + if protoimpl.UnsafeEnabled { + mi := &file_data_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Sub44) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Sub44) ProtoMessage() {} + +func (x *Sub44) ProtoReflect() protoreflect.Message { + mi := &file_data_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Sub44.ProtoReflect.Descriptor instead. +func (*Sub44) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{27} +} + +func (x *Sub44) GetFriendSyncMsg() *Sub44FriendSyncMsg { + if x != nil { + return x.FriendSyncMsg + } + return nil +} + +func (x *Sub44) GetGroupSyncMsg() *Sub44GroupSyncMsg { + if x != nil { + return x.GroupSyncMsg + } + return nil +} + +type Sub44FriendSyncMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin int64 `protobuf:"varint,1,opt,name=uin,proto3" json:"uin,omitempty"` + FUin int64 `protobuf:"varint,2,opt,name=fUin,proto3" json:"fUin,omitempty"` + ProcessType int32 `protobuf:"varint,3,opt,name=processType,proto3" json:"processType,omitempty"` + Time int32 `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"` + ProcessFlag int32 `protobuf:"varint,5,opt,name=processFlag,proto3" json:"processFlag,omitempty"` + SourceId int32 `protobuf:"varint,6,opt,name=sourceId,proto3" json:"sourceId,omitempty"` + SourceSubId int32 `protobuf:"varint,7,opt,name=sourceSubId,proto3" json:"sourceSubId,omitempty"` + StrWording []string `protobuf:"bytes,8,rep,name=strWording,proto3" json:"strWording,omitempty"` +} + +func (x *Sub44FriendSyncMsg) Reset() { + *x = Sub44FriendSyncMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_data_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Sub44FriendSyncMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Sub44FriendSyncMsg) ProtoMessage() {} + +func (x *Sub44FriendSyncMsg) ProtoReflect() protoreflect.Message { + mi := &file_data_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Sub44FriendSyncMsg.ProtoReflect.Descriptor instead. +func (*Sub44FriendSyncMsg) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{28} +} + +func (x *Sub44FriendSyncMsg) GetUin() int64 { + if x != nil { + return x.Uin + } + return 0 +} + +func (x *Sub44FriendSyncMsg) GetFUin() int64 { + if x != nil { + return x.FUin + } + return 0 +} + +func (x *Sub44FriendSyncMsg) GetProcessType() int32 { + if x != nil { + return x.ProcessType + } + return 0 +} + +func (x *Sub44FriendSyncMsg) GetTime() int32 { + if x != nil { + return x.Time + } + return 0 +} + +func (x *Sub44FriendSyncMsg) GetProcessFlag() int32 { + if x != nil { + return x.ProcessFlag + } + return 0 +} + +func (x *Sub44FriendSyncMsg) GetSourceId() int32 { + if x != nil { + return x.SourceId + } + return 0 +} + +func (x *Sub44FriendSyncMsg) GetSourceSubId() int32 { + if x != nil { + return x.SourceSubId + } + return 0 +} + +func (x *Sub44FriendSyncMsg) GetStrWording() []string { + if x != nil { + return x.StrWording + } + return nil +} + +type Sub44GroupSyncMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgType int32 `protobuf:"varint,1,opt,name=msgType,proto3" json:"msgType,omitempty"` + MsgSeq int64 `protobuf:"varint,2,opt,name=msgSeq,proto3" json:"msgSeq,omitempty"` + GrpCode int64 `protobuf:"varint,3,opt,name=grpCode,proto3" json:"grpCode,omitempty"` + GaCode int64 `protobuf:"varint,4,opt,name=gaCode,proto3" json:"gaCode,omitempty"` + OptUin1 int64 `protobuf:"varint,5,opt,name=optUin1,proto3" json:"optUin1,omitempty"` + OptUin2 int64 `protobuf:"varint,6,opt,name=optUin2,proto3" json:"optUin2,omitempty"` + MsgBuf []byte `protobuf:"bytes,7,opt,name=msgBuf,proto3" json:"msgBuf,omitempty"` + AuthKey []byte `protobuf:"bytes,8,opt,name=authKey,proto3" json:"authKey,omitempty"` + MsgStatus int32 `protobuf:"varint,9,opt,name=msgStatus,proto3" json:"msgStatus,omitempty"` + ActionUin int64 `protobuf:"varint,10,opt,name=actionUin,proto3" json:"actionUin,omitempty"` + ActionTime int64 `protobuf:"varint,11,opt,name=actionTime,proto3" json:"actionTime,omitempty"` + CurMaxMemCount int32 `protobuf:"varint,12,opt,name=curMaxMemCount,proto3" json:"curMaxMemCount,omitempty"` + NextMaxMemCount int32 `protobuf:"varint,13,opt,name=nextMaxMemCount,proto3" json:"nextMaxMemCount,omitempty"` + CurMemCount int32 `protobuf:"varint,14,opt,name=curMemCount,proto3" json:"curMemCount,omitempty"` + ReqSrcId int32 `protobuf:"varint,15,opt,name=reqSrcId,proto3" json:"reqSrcId,omitempty"` + ReqSrcSubId int32 `protobuf:"varint,16,opt,name=reqSrcSubId,proto3" json:"reqSrcSubId,omitempty"` + InviterRole int32 `protobuf:"varint,17,opt,name=inviterRole,proto3" json:"inviterRole,omitempty"` + ExtAdminNum int32 `protobuf:"varint,18,opt,name=extAdminNum,proto3" json:"extAdminNum,omitempty"` + ProcessFlag int32 `protobuf:"varint,19,opt,name=processFlag,proto3" json:"processFlag,omitempty"` +} + +func (x *Sub44GroupSyncMsg) Reset() { + *x = Sub44GroupSyncMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_data_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Sub44GroupSyncMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Sub44GroupSyncMsg) ProtoMessage() {} + +func (x *Sub44GroupSyncMsg) ProtoReflect() protoreflect.Message { + mi := &file_data_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Sub44GroupSyncMsg.ProtoReflect.Descriptor instead. +func (*Sub44GroupSyncMsg) Descriptor() ([]byte, []int) { + return file_data_proto_rawDescGZIP(), []int{29} +} + +func (x *Sub44GroupSyncMsg) GetMsgType() int32 { + if x != nil { + return x.MsgType + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetMsgSeq() int64 { + if x != nil { + return x.MsgSeq + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetGrpCode() int64 { + if x != nil { + return x.GrpCode + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetGaCode() int64 { + if x != nil { + return x.GaCode + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetOptUin1() int64 { + if x != nil { + return x.OptUin1 + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetOptUin2() int64 { + if x != nil { + return x.OptUin2 + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetMsgBuf() []byte { + if x != nil { + return x.MsgBuf + } + return nil +} + +func (x *Sub44GroupSyncMsg) GetAuthKey() []byte { + if x != nil { + return x.AuthKey + } + return nil +} + +func (x *Sub44GroupSyncMsg) GetMsgStatus() int32 { + if x != nil { + return x.MsgStatus + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetActionUin() int64 { + if x != nil { + return x.ActionUin + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetActionTime() int64 { + if x != nil { + return x.ActionTime + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetCurMaxMemCount() int32 { + if x != nil { + return x.CurMaxMemCount + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetNextMaxMemCount() int32 { + if x != nil { + return x.NextMaxMemCount + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetCurMemCount() int32 { + if x != nil { + return x.CurMemCount + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetReqSrcId() int32 { + if x != nil { + return x.ReqSrcId + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetReqSrcSubId() int32 { + if x != nil { + return x.ReqSrcSubId + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetInviterRole() int32 { + if x != nil { + return x.InviterRole + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetExtAdminNum() int32 { + if x != nil { + return x.ExtAdminNum + } + return 0 +} + +func (x *Sub44GroupSyncMsg) GetProcessFlag() int32 { + if x != nil { + return x.ProcessFlag + } + return 0 +} + var File_data_proto protoreflect.FileDescriptor var file_data_proto_rawDesc = []byte{ @@ -3093,8 +3442,68 @@ var file_data_proto_rawDesc = []byte{ 0x22, 0x39, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x42, 0x06, 0x5a, 0x04, 0x2e, - 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x7a, 0x0a, 0x05, 0x53, + 0x75, 0x62, 0x34, 0x34, 0x12, 0x39, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, + 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53, 0x75, + 0x62, 0x34, 0x34, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, + 0x52, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, + 0x36, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x34, + 0x34, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x66, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x66, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, + 0x72, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x74, 0x72, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x04, 0x0a, 0x11, 0x53, + 0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, + 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x67, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x61, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x42, + 0x75, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, + 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, + 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, + 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, + 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x4d, + 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, + 0x75, 0x72, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x71, 0x53, 0x72, 0x63, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x53, 0x72, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, + 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x71, + 0x53, 0x72, 0x63, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, + 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x65, 0x78, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x42, 0x06, + 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3109,7 +3518,7 @@ func file_data_proto_rawDescGZIP() []byte { return file_data_proto_rawDescData } -var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_data_proto_goTypes = []interface{}{ (*DeviceInfo)(nil), // 0: DeviceInfo (*RequestBody)(nil), // 1: RequestBody @@ -3138,6 +3547,9 @@ var file_data_proto_goTypes = []interface{}{ (*Sub8AMsgInfo)(nil), // 24: Sub8AMsgInfo (*SubB3)(nil), // 25: SubB3 (*SubB3AddFrdNotify)(nil), // 26: SubB3AddFrdNotify + (*Sub44)(nil), // 27: Sub44 + (*Sub44FriendSyncMsg)(nil), // 28: Sub44FriendSyncMsg + (*Sub44GroupSyncMsg)(nil), // 29: Sub44GroupSyncMsg } var file_data_proto_depIdxs = []int32{ 2, // 0: RequestBody.rpt_config_list:type_name -> ConfigSeq @@ -3157,11 +3569,13 @@ var file_data_proto_depIdxs = []int32{ 21, // 14: MessageRecallReminder.recalledMsgList:type_name -> RecalledMessageMeta 24, // 15: Sub8A.msg_info:type_name -> Sub8AMsgInfo 26, // 16: SubB3.msgAddFrdNotify:type_name -> SubB3AddFrdNotify - 17, // [17:17] is the sub-list for method output_type - 17, // [17:17] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 28, // 17: Sub44.friendSyncMsg:type_name -> Sub44FriendSyncMsg + 29, // 18: Sub44.groupSyncMsg:type_name -> Sub44GroupSyncMsg + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_data_proto_init() } @@ -3494,6 +3908,42 @@ func file_data_proto_init() { return nil } } + file_data_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sub44); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_data_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sub44FriendSyncMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_data_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sub44GroupSyncMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3501,7 +3951,7 @@ func file_data_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_data_proto_rawDesc, NumEnums: 0, - NumMessages: 27, + NumMessages: 30, NumExtensions: 0, NumServices: 0, }, diff --git a/client/pb/data.proto b/client/pb/data.proto index a462016d..37c77d81 100644 --- a/client/pb/data.proto +++ b/client/pb/data.proto @@ -292,4 +292,42 @@ message SubB3 { message SubB3AddFrdNotify { int64 uin = 1; string nick = 5; +} + +message Sub44 { + Sub44FriendSyncMsg friendSyncMsg = 1; + Sub44GroupSyncMsg groupSyncMsg = 2; +} + +message Sub44FriendSyncMsg { + int64 uin = 1; + int64 fUin = 2; + int32 processType = 3; + int32 time = 4; + int32 processFlag = 5; + int32 sourceId = 6; + int32 sourceSubId = 7; + repeated string strWording = 8; +} + +message Sub44GroupSyncMsg { + int32 msgType = 1; + int64 msgSeq = 2; + int64 grpCode = 3; + int64 gaCode = 4; + int64 optUin1 = 5; + int64 optUin2 = 6; + bytes msgBuf = 7; + bytes authKey = 8; + int32 msgStatus = 9; + int64 actionUin = 10; + int64 actionTime = 11; + int32 curMaxMemCount = 12; + int32 nextMaxMemCount = 13; + int32 curMemCount = 14; + int32 reqSrcId = 15; + int32 reqSrcSubId = 16; + int32 inviterRole = 17; + int32 extAdminNum = 18; + int32 processFlag = 19; } \ No newline at end of file