1
This commit is contained in:
parent
3b6ad65bf6
commit
89c788c19b
@ -56,6 +56,8 @@ type PlayerMgr interface {
|
|||||||
|
|
||||||
type FriendMgr interface {
|
type FriendMgr interface {
|
||||||
IsFriend(string, string) bool
|
IsFriend(string, string) bool
|
||||||
|
GetFriendList(string) []string
|
||||||
|
AsyncGetApplyList(int64, string, func(int32, string, int64, []string))
|
||||||
}
|
}
|
||||||
|
|
||||||
type Guild interface {
|
type Guild interface {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package friend
|
package friend
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"q5"
|
||||||
)
|
)
|
||||||
|
|
||||||
type FriendMgr struct {
|
type FriendMgr struct {
|
||||||
@ -56,9 +57,25 @@ func (this *FriendMgr) TraverseFriend(accountId string, cb func(string, int32) b
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *FriendMgr) GetFriendList(accountId string) []string {
|
||||||
|
friendList := []string{}
|
||||||
|
this.TraverseFriend(
|
||||||
|
accountId,
|
||||||
|
func (friendId string, addTime int32) bool {
|
||||||
|
ele := q5.NewSliceElement(&friendList)
|
||||||
|
*ele = friendId
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
return friendList
|
||||||
|
}
|
||||||
|
|
||||||
func (this *FriendMgr) getFriends(accountId string) *map[string]int32 {
|
func (this *FriendMgr) getFriends(accountId string) *map[string]int32 {
|
||||||
if friends, ok := this.friendHash[accountId]; ok {
|
if friends, ok := this.friendHash[accountId]; ok {
|
||||||
return friends
|
return friends
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *FriendMgr) AsyncGetApplyList(int64, string, func(int32, string, int64, []string)) {
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -91,9 +91,53 @@ func (this *player) CMSearchUserByAccountId(hdr *f5.MsgHdr, msg *cs.CMSearchUser
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *player) CMListPendingFriendRequest(hdr *f5.MsgHdr, msg *cs.CMListPendingFriendRequest) {
|
func (this *player) CMListPendingFriendRequest(hdr *f5.MsgHdr, msg *cs.CMListPendingFriendRequest) {
|
||||||
|
GetFriendMgr().AsyncGetApplyList(
|
||||||
|
0,
|
||||||
|
this.GetAccountId(),
|
||||||
|
func (errCode int32, errMsg string, sinceId int64, accountIds []string) {
|
||||||
|
rspMsg := new(cs.SMListPendingFriendRequest)
|
||||||
|
if errCode != 0 {
|
||||||
|
this.SendMsg(rspMsg.Err(1, "internal server error"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
GetCacheMgr().AsyncGetUsers(
|
||||||
|
accountIds,
|
||||||
|
func (errCode int32, errMsg string) {
|
||||||
|
if errCode != 0 {
|
||||||
|
this.SendMsg(rspMsg.Err(1, "internal server error"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, accountId := range(accountIds) {
|
||||||
|
userProfile := GetCacheMgr().GetUserProfile(accountId)
|
||||||
|
if userProfile != nil {
|
||||||
|
ele := q5.NewSliceElement(&rspMsg.Users)
|
||||||
|
userProfile.FillMFUser(*ele)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.SendMsg(rspMsg)
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *player) CMListFriend(hdr *f5.MsgHdr, msg *cs.CMListFriend) {
|
func (this *player) CMListFriend(hdr *f5.MsgHdr, msg *cs.CMListFriend) {
|
||||||
|
friendList := GetFriendMgr().GetFriendList(this.GetAccountId())
|
||||||
|
GetCacheMgr().AsyncGetUsers(
|
||||||
|
friendList,
|
||||||
|
func (errCode int32, errMsg string) {
|
||||||
|
rspMsg := new(cs.SMListFriend)
|
||||||
|
if errCode != 0 {
|
||||||
|
this.SendMsg(rspMsg.Err(1, "internal server error"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, accountId := range(friendList) {
|
||||||
|
userProfile := GetCacheMgr().GetUserProfile(accountId)
|
||||||
|
if userProfile != nil {
|
||||||
|
ele := q5.NewSliceElement(&rspMsg.Users)
|
||||||
|
userProfile.FillMFUser(*ele)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.SendMsg(rspMsg)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *player) CMBlacklist(hdr *f5.MsgHdr, msg *cs.CMBlacklist) {
|
func (this *player) CMBlacklist(hdr *f5.MsgHdr, msg *cs.CMBlacklist) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user