Skip to content

Commit e9ad1a7

Browse files
authored
Merge pull request #2 from timschumi/discord-user-paginate
Apply patch - discord: Properly paginate through all users (42wim#2211)
2 parents cd4bd6f + 4653efc commit e9ad1a7

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

bridge/discord/discord.go

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -206,21 +206,28 @@ func (b *Bdiscord) Connect() error {
206206
// Obtaining guild members and initializing nickname mapping.
207207
b.membersMutex.Lock()
208208
defer b.membersMutex.Unlock()
209-
members, err := b.c.GuildMembers(b.guildID, "", 1000)
210-
if err != nil {
211-
b.Log.Error("Error obtaining server members: ", err)
212-
return err
213-
}
214-
for _, member := range members {
215-
if member == nil {
216-
b.Log.Warnf("Skipping missing information for a user.")
217-
continue
209+
after := ""
210+
for {
211+
members, err := b.c.GuildMembers(b.guildID, after, 1000)
212+
if err != nil {
213+
b.Log.Error("Error obtaining server members: ", err)
214+
return err
215+
}
216+
if len(members) == 0 {
217+
break
218218
}
219-
b.userMemberMap[member.User.ID] = member
220-
b.nickMemberMap[member.User.Username] = member
221-
if member.Nick != "" {
222-
b.nickMemberMap[member.Nick] = member
219+
for _, member := range members {
220+
if member == nil {
221+
b.Log.Warnf("Skipping missing information for a user.")
222+
continue
223+
}
224+
b.userMemberMap[member.User.ID] = member
225+
b.nickMemberMap[member.User.Username] = member
226+
if member.Nick != "" {
227+
b.nickMemberMap[member.Nick] = member
228+
}
223229
}
230+
after = members[len(members) - 1].User.ID
224231
}
225232

226233
b.c.AddHandler(b.messageCreate)

0 commit comments

Comments
 (0)