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 {