@@ -28,7 +28,7 @@ func NewClient(userLogin *bridgev2.UserLogin, client *gchatmeow.Client) *GChatCl
28
28
return & GChatClient {
29
29
userLogin : userLogin ,
30
30
client : client ,
31
- users : make ( map [string ]* proto.User ) ,
31
+ users : map [string ]* proto.User {} ,
32
32
}
33
33
}
34
34
@@ -104,24 +104,34 @@ func (c *GChatClient) onConnect(ctx context.Context) {
104
104
}
105
105
106
106
for _ , item := range res .WorldItems {
107
- // TODO room name for DM, and full members list
108
107
name := item .RoomName
109
- if name == nil && item .DmMembers != nil {
108
+ gcMembers := make ([]* proto.UserId , 0 )
109
+ if item .DmMembers != nil {
110
+ gcMembers = item .DmMembers .Members
110
111
for _ , member := range item .DmMembers .Members {
111
112
if * member .Id != string (c .userLogin .ID ) {
112
113
name = c .users [* member .Id ].Name
113
114
break
114
115
}
115
116
}
117
+ } else {
118
+ group , err := c .client .GetGroup (ctx , & proto.GetGroupRequest {
119
+ GroupId : item .GroupId ,
120
+ FetchOptions : []proto.GetGroupRequest_FetchOptions {
121
+ proto .GetGroupRequest_MEMBERS ,
122
+ },
123
+ })
124
+ if err != nil {
125
+ fmt .Println (err )
126
+ continue
127
+ }
128
+ gcMembers = make ([]* proto.UserId , len (group .Memberships ))
129
+ for i , membership := range group .Memberships {
130
+ gcMembers [i ] = membership .Id .MemberId .GetUserId ()
131
+ }
116
132
117
133
}
118
- memberMap := map [networkid.UserID ]bridgev2.ChatMember {}
119
- memberMap [networkid .UserID (c .userLogin .ID )] = bridgev2.ChatMember {
120
- EventSender : bridgev2.EventSender {
121
- IsFromMe : true ,
122
- Sender : networkid .UserID (c .userLogin .ID ),
123
- },
124
- }
134
+
125
135
c .userLogin .Bridge .QueueRemoteEvent (c .userLogin , & simplevent.ChatResync {
126
136
EventMeta : simplevent.EventMeta {
127
137
Type : bridgev2 .RemoteEventChatResync ,
@@ -132,10 +142,8 @@ func (c *GChatClient) onConnect(ctx context.Context) {
132
142
CreatePortal : true ,
133
143
},
134
144
ChatInfo : & bridgev2.ChatInfo {
135
- Name : name ,
136
- Members : & bridgev2.ChatMemberList {
137
- MemberMap : memberMap ,
138
- },
145
+ Name : name ,
146
+ Members : c .gcMembersToMxMembers (gcMembers ),
139
147
},
140
148
})
141
149
0 commit comments