mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
client: delete SpecialTitleExpireTime field in GroupMemberInfo
This commit is contained in:
parent
b28ec81f54
commit
a9a08dbb3a
@ -538,16 +538,15 @@ func decodeGroupMemberListResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
|
|||||||
l := make([]*GroupMemberInfo, 0, len(members))
|
l := make([]*GroupMemberInfo, 0, len(members))
|
||||||
for _, m := range members {
|
for _, m := range members {
|
||||||
l = append(l, &GroupMemberInfo{
|
l = append(l, &GroupMemberInfo{
|
||||||
Uin: m.MemberUin,
|
Uin: m.MemberUin,
|
||||||
Nickname: m.Nick,
|
Nickname: m.Nick,
|
||||||
Gender: m.Gender,
|
Gender: m.Gender,
|
||||||
CardName: m.Name,
|
CardName: m.Name,
|
||||||
Level: uint16(m.MemberLevel),
|
Level: uint16(m.MemberLevel),
|
||||||
JoinTime: m.JoinTime,
|
JoinTime: m.JoinTime,
|
||||||
LastSpeakTime: m.LastSpeakTime,
|
LastSpeakTime: m.LastSpeakTime,
|
||||||
SpecialTitle: m.SpecialTitle,
|
SpecialTitle: m.SpecialTitle,
|
||||||
SpecialTitleExpireTime: m.SpecialTitleExpireTime,
|
ShutUpTimestamp: m.ShutUpTimestap,
|
||||||
ShutUpTimestamp: m.ShutUpTimestap,
|
|
||||||
Permission: func() MemberPermission {
|
Permission: func() MemberPermission {
|
||||||
if m.Flag == 1 {
|
if m.Flag == 1 {
|
||||||
return Administrator
|
return Administrator
|
||||||
@ -572,26 +571,24 @@ func decodeGroupMemberInfoResponse(c *QQClient, _ *network.IncomingPacketInfo, p
|
|||||||
return nil, errors.WithStack(ErrMemberNotFound)
|
return nil, errors.WithStack(ErrMemberNotFound)
|
||||||
}
|
}
|
||||||
group := c.FindGroup(rsp.GroupCode)
|
group := c.FindGroup(rsp.GroupCode)
|
||||||
|
permission := Member
|
||||||
|
if rsp.MemInfo.Uin == group.OwnerUin {
|
||||||
|
permission = Owner
|
||||||
|
}
|
||||||
|
if rsp.MemInfo.Role == 2 {
|
||||||
|
permission = Administrator
|
||||||
|
}
|
||||||
return &GroupMemberInfo{
|
return &GroupMemberInfo{
|
||||||
Group: group,
|
Group: group,
|
||||||
Uin: rsp.MemInfo.Uin,
|
Uin: rsp.MemInfo.Uin,
|
||||||
Gender: byte(rsp.MemInfo.Sex),
|
Gender: byte(rsp.MemInfo.Sex),
|
||||||
Nickname: string(rsp.MemInfo.Nick),
|
Nickname: string(rsp.MemInfo.Nick),
|
||||||
CardName: string(rsp.MemInfo.Card),
|
CardName: string(rsp.MemInfo.Card),
|
||||||
Level: uint16(rsp.MemInfo.Level),
|
Level: uint16(rsp.MemInfo.Level),
|
||||||
JoinTime: rsp.MemInfo.Join,
|
JoinTime: rsp.MemInfo.Join,
|
||||||
LastSpeakTime: rsp.MemInfo.LastSpeak,
|
LastSpeakTime: rsp.MemInfo.LastSpeak,
|
||||||
SpecialTitle: string(rsp.MemInfo.SpecialTitle),
|
SpecialTitle: string(rsp.MemInfo.SpecialTitle),
|
||||||
SpecialTitleExpireTime: int64(rsp.MemInfo.SpecialTitleExpireTime),
|
Permission: permission,
|
||||||
Permission: func() MemberPermission {
|
|
||||||
if rsp.MemInfo.Uin == group.OwnerUin {
|
|
||||||
return Owner
|
|
||||||
}
|
|
||||||
if rsp.MemInfo.Role == 2 {
|
|
||||||
return Administrator
|
|
||||||
}
|
|
||||||
return Member
|
|
||||||
}(),
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -713,12 +710,10 @@ func decodeOnlinePushTransPacket(c *QQClient, _ *network.IncomingPacketInfo, pay
|
|||||||
}
|
}
|
||||||
if g := c.FindGroupByUin(info.GetFromUin()); g != nil {
|
if g := c.FindGroupByUin(info.GetFromUin()); g != nil {
|
||||||
if var5 == 0 && data.Len() == 1 {
|
if var5 == 0 && data.Len() == 1 {
|
||||||
newPermission := func() MemberPermission {
|
newPermission := Member
|
||||||
if data.ReadByte() == 1 {
|
if data.ReadByte() == 1 {
|
||||||
return Administrator
|
newPermission = Administrator
|
||||||
}
|
}
|
||||||
return Member
|
|
||||||
}()
|
|
||||||
mem := g.FindMember(target)
|
mem := g.FindMember(target)
|
||||||
if mem.Permission != newPermission {
|
if mem.Permission != newPermission {
|
||||||
old := mem.Permission
|
old := mem.Permission
|
||||||
@ -782,7 +777,7 @@ func decodeMSFOfflinePacket(c *QQClient, _ *network.IncomingPacketInfo, _ []byte
|
|||||||
|
|
||||||
// OidbSvc.0xd79
|
// OidbSvc.0xd79
|
||||||
func decodeWordSegmentation(_ *QQClient, _ *network.IncomingPacketInfo, payload []byte) (any, error) {
|
func decodeWordSegmentation(_ *QQClient, _ *network.IncomingPacketInfo, payload []byte) (any, error) {
|
||||||
rsp := &oidb.D79RspBody{}
|
rsp := oidb.D79RspBody{}
|
||||||
err := unpackOIDBPackage(payload, &rsp)
|
err := unpackOIDBPackage(payload, &rsp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -333,8 +333,20 @@ func (c *QQClient) getWebDeviceInfo() (i string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var oidbSSOPool = sync.Pool{}
|
||||||
|
|
||||||
|
func getOidbSSOPackage() *oidb.OIDBSSOPkg {
|
||||||
|
g := oidbSSOPool.Get()
|
||||||
|
if g == nil {
|
||||||
|
return new(oidb.OIDBSSOPkg)
|
||||||
|
}
|
||||||
|
return g.(*oidb.OIDBSSOPkg)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *QQClient) packOIDBPackage(cmd, serviceType int32, body []byte) []byte {
|
func (c *QQClient) packOIDBPackage(cmd, serviceType int32, body []byte) []byte {
|
||||||
pkg := &oidb.OIDBSSOPkg{
|
pkg := getOidbSSOPackage()
|
||||||
|
defer oidbSSOPool.Put(pkg)
|
||||||
|
*pkg = oidb.OIDBSSOPkg{
|
||||||
Command: cmd,
|
Command: cmd,
|
||||||
ServiceType: serviceType,
|
ServiceType: serviceType,
|
||||||
Bodybuffer: body,
|
Bodybuffer: body,
|
||||||
@ -354,7 +366,8 @@ func (c *QQClient) packOIDBPackageProto(cmd, serviceType int32, msg proto.Messag
|
|||||||
}
|
}
|
||||||
|
|
||||||
func unpackOIDBPackage(payload []byte, rsp proto.Message) error {
|
func unpackOIDBPackage(payload []byte, rsp proto.Message) error {
|
||||||
pkg := new(oidb.OIDBSSOPkg)
|
pkg := getOidbSSOPackage()
|
||||||
|
defer oidbSSOPool.Put(pkg)
|
||||||
if err := proto.Unmarshal(payload, pkg); err != nil {
|
if err := proto.Unmarshal(payload, pkg); err != nil {
|
||||||
return errors.Wrap(err, "failed to unmarshal protobuf message")
|
return errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
|
@ -43,18 +43,17 @@ type (
|
|||||||
}
|
}
|
||||||
|
|
||||||
GroupMemberInfo struct {
|
GroupMemberInfo struct {
|
||||||
Group *GroupInfo
|
Group *GroupInfo
|
||||||
Uin int64
|
Uin int64
|
||||||
Gender byte
|
Nickname string
|
||||||
Nickname string
|
CardName string
|
||||||
CardName string
|
JoinTime int64
|
||||||
Level uint16
|
LastSpeakTime int64
|
||||||
JoinTime int64
|
SpecialTitle string
|
||||||
LastSpeakTime int64
|
ShutUpTimestamp int64
|
||||||
SpecialTitle string
|
Permission MemberPermission
|
||||||
SpecialTitleExpireTime int64
|
Level uint16
|
||||||
ShutUpTimestamp int64
|
Gender byte
|
||||||
Permission MemberPermission
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupSearchInfo 通过搜索得到的群信息
|
// GroupSearchInfo 通过搜索得到的群信息
|
||||||
|
Loading…
x
Reference in New Issue
Block a user