From 2f52315f2107297fbe237d88d4a0c9055f453cb5 Mon Sep 17 00:00:00 2001 From: eatmoreapple <15055461510@163.com> Date: Tue, 23 Nov 2021 16:28:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Members=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- message.go | 12 ++++++------ user.go | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/message.go b/message.go index 4fcbf10..06c7d3f 100644 --- a/message.go +++ b/message.go @@ -99,18 +99,18 @@ func (m *Message) Receiver() (*User, error) { if sender, err := m.Sender(); err != nil { return nil, err } else { - users := sender.MemberList.SearchByUserName(1, m.ToUserName) - if users == nil { + user, exist := sender.MemberList.GetByUserName(m.ToUserName) + if !exist { return nil, ErrNoSuchUserFoundError } - return users.First(), nil + return user, nil } } else { - users := m.Bot.self.MemberList.SearchByUserName(1, m.ToUserName) - if users == nil { + user, exist := m.Bot.self.MemberList.GetByRemarkName(m.ToUserName) + if !exist { return nil, ErrNoSuchUserFoundError } - return users.First(), nil + return user, nil } } diff --git a/user.go b/user.go index 15515cd..6989213 100644 --- a/user.go +++ b/user.go @@ -534,6 +534,27 @@ func (m Members) Search(limit int, condFuncList ...func(user *User) bool) (resul return } +// GetByUserName 根据username查找用户 +func (m Members) GetByUserName(username string) (*User, bool) { + users := m.SearchByUserName(1, username) + user := users.First() + return user, user != nil +} + +// GetByRemarkName 根据remarkName查找用户 +func (m Members) GetByRemarkName(remarkName string) (*User, bool) { + users := m.SearchByRemarkName(1, remarkName) + user := users.First() + return user, user != nil +} + +// GetByNickName 根据nickname查找用户 +func (m Members) GetByNickName(nickname string) (*User, bool) { + users := m.SearchByNickName(1, nickname) + user := users.First() + return user, user != nil +} + func (m Members) Friends() Friends { friends := make(Friends, 0) for _, mb := range m {