添加Members查找方法

This commit is contained in:
eatmoreapple 2021-11-23 16:28:18 +08:00
parent c378b6983c
commit 2f52315f21
2 changed files with 27 additions and 6 deletions

View File

@ -99,18 +99,18 @@ func (m *Message) Receiver() (*User, error) {
if sender, err := m.Sender(); err != nil { if sender, err := m.Sender(); err != nil {
return nil, err return nil, err
} else { } else {
users := sender.MemberList.SearchByUserName(1, m.ToUserName) user, exist := sender.MemberList.GetByUserName(m.ToUserName)
if users == nil { if !exist {
return nil, ErrNoSuchUserFoundError return nil, ErrNoSuchUserFoundError
} }
return users.First(), nil return user, nil
} }
} else { } else {
users := m.Bot.self.MemberList.SearchByUserName(1, m.ToUserName) user, exist := m.Bot.self.MemberList.GetByRemarkName(m.ToUserName)
if users == nil { if !exist {
return nil, ErrNoSuchUserFoundError return nil, ErrNoSuchUserFoundError
} }
return users.First(), nil return user, nil
} }
} }

21
user.go
View File

@ -534,6 +534,27 @@ func (m Members) Search(limit int, condFuncList ...func(user *User) bool) (resul
return 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 { func (m Members) Friends() Friends {
friends := make(Friends, 0) friends := make(Friends, 0)
for _, mb := range m { for _, mb := range m {