mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
fix group member permission error.
This commit is contained in:
parent
2289b05764
commit
1afa9f801f
@ -16,6 +16,5 @@ qq-android协议的golang实现 移植于Mirai
|
||||
| 群消息接受 |完成|
|
||||
| 群消息发送 | 50% (仅支持 文本/图片/表情)|
|
||||
| QQ各种事件 | 正在做, 已支持 群内禁言/群内消息撤回 |
|
||||
| Cookies相关 | 咕咕|
|
||||
| MiraiGo文档 | 咕咕|
|
||||
| QQ协议说明文档| 自用整理 有空了应该会做|
|
@ -407,9 +407,9 @@ func (pkt *TroopMemberInfo) ReadFrom(r *JceReader) {
|
||||
pkt.MemberLevel = r.ReadInt64(14)
|
||||
pkt.JoinTime = r.ReadInt64(15)
|
||||
pkt.LastSpeakTime = r.ReadInt64(16)
|
||||
pkt.Flag = r.ReadInt64(18)
|
||||
pkt.SpecialTitle = r.ReadString(23)
|
||||
pkt.SpecialTitleExpireTime = r.ReadInt64(24)
|
||||
pkt.Job = r.ReadString(25)
|
||||
}
|
||||
|
||||
func (pkt *PushMessageInfo) ReadFrom(r *JceReader) {
|
||||
|
@ -264,9 +264,9 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
|
||||
return r, nil
|
||||
}
|
||||
|
||||
func (c *QQClient) GetGroupMembers(group *GroupInfo) ([]GroupMemberInfo, error) {
|
||||
func (c *QQClient) GetGroupMembers(group *GroupInfo) ([]*GroupMemberInfo, error) {
|
||||
var nextUin int64
|
||||
var list []GroupMemberInfo
|
||||
var list []*GroupMemberInfo
|
||||
for {
|
||||
data, err := c.sendAndWait(c.buildGroupMemberListRequestPacket(group.Uin, group.Code, nextUin))
|
||||
if err != nil {
|
||||
@ -274,6 +274,12 @@ func (c *QQClient) GetGroupMembers(group *GroupInfo) ([]GroupMemberInfo, error)
|
||||
}
|
||||
rsp := data.(groupMemberListResponse)
|
||||
nextUin = rsp.NextUin
|
||||
for _, m := range rsp.list {
|
||||
if m.Uin == group.OwnerUin {
|
||||
m.Permission = Owner
|
||||
break
|
||||
}
|
||||
}
|
||||
list = append(list, rsp.list...)
|
||||
if nextUin == 0 {
|
||||
return list, nil
|
||||
@ -305,7 +311,7 @@ func (g *GroupInfo) FindMember(uin int64) *GroupMemberInfo {
|
||||
for _, m := range g.Members {
|
||||
f := m
|
||||
if f.Uin == uin {
|
||||
return &f
|
||||
return f
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
@ -224,7 +224,7 @@ func decodeGroupListResponse(c *QQClient, seq uint16, payload []byte) (interface
|
||||
Code: g.GroupCode,
|
||||
Name: g.GroupName,
|
||||
Memo: g.GroupMemo,
|
||||
OwnerUin: uint32(g.GroupOwnerUin),
|
||||
OwnerUin: g.GroupOwnerUin,
|
||||
MemberCount: uint16(g.MemberNum),
|
||||
MaxMemberCount: uint16(g.MaxGroupMemberNum),
|
||||
})
|
||||
@ -241,9 +241,9 @@ func decodeGroupMemberListResponse(c *QQClient, seq uint16, payload []byte) (int
|
||||
members := []jce.TroopMemberInfo{}
|
||||
r.ReadSlice(&members, 3)
|
||||
next := r.ReadInt64(4)
|
||||
var l []GroupMemberInfo
|
||||
var l []*GroupMemberInfo
|
||||
for _, m := range members {
|
||||
l = append(l, GroupMemberInfo{
|
||||
l = append(l, &GroupMemberInfo{
|
||||
Uin: m.MemberUin,
|
||||
Nickname: m.Nick,
|
||||
CardName: m.Name,
|
||||
@ -252,7 +252,12 @@ func decodeGroupMemberListResponse(c *QQClient, seq uint16, payload []byte) (int
|
||||
LastSpeakTime: m.LastSpeakTime,
|
||||
SpecialTitle: m.SpecialTitle,
|
||||
SpecialTitleExpireTime: m.SpecialTitleExpireTime,
|
||||
Job: m.Job,
|
||||
Permission: func() MemberPermission {
|
||||
if m.Flag == 1 {
|
||||
return Administrator
|
||||
}
|
||||
return Member
|
||||
}(),
|
||||
})
|
||||
}
|
||||
return groupMemberListResponse{
|
||||
|
@ -9,6 +9,8 @@ var (
|
||||
type (
|
||||
LoginError int
|
||||
|
||||
MemberPermission int
|
||||
|
||||
LoginResponse struct {
|
||||
Success bool
|
||||
Error LoginError
|
||||
@ -41,10 +43,10 @@ type (
|
||||
Code int64
|
||||
Name string
|
||||
Memo string
|
||||
OwnerUin uint32
|
||||
OwnerUin int64
|
||||
MemberCount uint16
|
||||
MaxMemberCount uint16
|
||||
Members []GroupMemberInfo
|
||||
Members []*GroupMemberInfo
|
||||
}
|
||||
|
||||
GroupMemberInfo struct {
|
||||
@ -56,7 +58,7 @@ type (
|
||||
LastSpeakTime int64
|
||||
SpecialTitle string
|
||||
SpecialTitleExpireTime int64
|
||||
Job string
|
||||
Permission MemberPermission
|
||||
}
|
||||
|
||||
GroupMuteEvent struct {
|
||||
@ -76,7 +78,7 @@ type (
|
||||
|
||||
groupMemberListResponse struct {
|
||||
NextUin int64
|
||||
list []GroupMemberInfo
|
||||
list []*GroupMemberInfo
|
||||
}
|
||||
|
||||
groupImageUploadResponse struct {
|
||||
@ -93,8 +95,11 @@ type (
|
||||
|
||||
const (
|
||||
NeedCaptcha LoginError = 1
|
||||
DeviceLockError = 2
|
||||
OtherLoginError = 3
|
||||
UnsafeDeviceError = 4
|
||||
UnknownLoginError = -1
|
||||
|
||||
Owner MemberPermission = iota
|
||||
Administrator
|
||||
Member
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user