From f4d9341a31e6628457df579fe9f8e0755bfaeaa0 Mon Sep 17 00:00:00 2001 From: MistahJ Date: Sat, 26 Oct 2019 09:53:31 -0700 Subject: [PATCH] Improvements --- wsapi.go | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/wsapi.go b/wsapi.go index 7b7f4ba..bfeab25 100644 --- a/wsapi.go +++ b/wsapi.go @@ -399,9 +399,9 @@ func (s *Session) UpdateStatusComplex(usd UpdateStatusData) (err error) { } type requestGuildMembersData struct { - GuildID []string `json:"guild_id"` - Query string `json:"query"` - Limit int `json:"limit"` + GuildIDs []string `json:"guild_id"` + Query string `json:"query"` + Limit int `json:"limit"` } type requestGuildMembersOp struct { @@ -411,10 +411,35 @@ type requestGuildMembersOp struct { // RequestGuildMembers requests guild members from the gateway // The gateway responds with GuildMembersChunk events +// guildID : Single Guild ID to request members of +// query : String that username starts with, leave empty to return all members +// limit : Max number of items to return, or 0 to request all members matched +func (s *Session) RequestGuildMembers(guildID string, query string, limit int) (err error) { + data := requestGuildMembersData{ + GuildIDs: []string{guildID}, + Query: query, + Limit: limit, + } + err = s.requestGuildMember(data) + return err +} + +// RequestGuildMembersBatch requests guild members from the gateway +// The gateway responds with GuildMembersChunk events // guildID : Slice of guild IDs to request members of // query : String that username starts with, leave empty to return all members // limit : Max number of items to return, or 0 to request all members matched -func (s *Session) RequestGuildMembers(guildID []string, query string, limit int) (err error) { +func (s *Session) RequestGuildMembersBatch(guildIDs []string, query string, limit int) (err error) { + data := requestGuildMembersData{ + GuildIDs: guildIDs, + Query: query, + Limit: limit, + } + err = s.requestGuildMember(data) + return err +} + +func (s *Session) requestGuildMember(data requestGuildMembersData) (err error) { s.log(LogInformational, "called") s.RLock() @@ -423,17 +448,11 @@ func (s *Session) RequestGuildMembers(guildID []string, query string, limit int) return ErrWSNotFound } - data := requestGuildMembersData{ - GuildID: guildID, - Query: query, - Limit: limit, - } - s.wsMutex.Lock() err = s.wsConn.WriteJSON(requestGuildMembersOp{8, data}) s.wsMutex.Unlock() - return + return err } // onEvent is the "event handler" for all messages received on the