This commit is contained in:
aozhiwei 2020-06-22 15:34:28 +08:00
parent b648b75152
commit 87ed2d19c1
2 changed files with 19 additions and 1 deletions

View File

@ -251,6 +251,12 @@ void Player::_CMFriendAgree(f8::MsgHdr& hdr, const cs::CMFriendAgree& msg)
SendMsg(respmsg); SendMsg(respmsg);
return; return;
} }
if (!CanAddFriend(msg.apply().base_data().account_id())) {
respmsg.set_errcode(3);
respmsg.set_errmsg("您的好友数已达到上限");
SendMsg(respmsg);
return;
}
Friend* friendobj = new Friend; Friend* friendobj = new Friend;
TypeConvert::Convert(msg.apply().base_data(), friendobj->base_data); TypeConvert::Convert(msg.apply().base_data(), friendobj->base_data);
if (AddFriend(friendobj) == 0) { if (AddFriend(friendobj) == 0) {
@ -952,7 +958,7 @@ void Player::OnFriendAgreeEvent(Event& event)
if (GetFriendById(event.sender_id)) { if (GetFriendById(event.sender_id)) {
return; return;
} }
if (GetFriendNum() >= MAX_FRIEND_NUM) { if (!CanAddFriend(event.sender_id)) {
return; return;
} }
Friend* friendobj = new Friend; Friend* friendobj = new Friend;
@ -972,3 +978,14 @@ void Player::OnFriendDeleteEvent(Event& event)
} }
RemoveFriend(event.sender_id); RemoveFriend(event.sender_id);
} }
bool Player::CanAddFriend(const std::string& account_id)
{
if (GetFriendNum() >= MAX_FRIEND_NUM) {
return false;
}
if (GetFriendById(account_id)) {
return false;
}
return true;
}

View File

@ -126,6 +126,7 @@ private:
void ProcessEvent(); void ProcessEvent();
void OnFriendAgreeEvent(Event& event); void OnFriendAgreeEvent(Event& event);
void OnFriendDeleteEvent(Event& event); void OnFriendDeleteEvent(Event& event);
bool CanAddFriend(const std::string& account_id);
private: private:
bool dirty_ = false; bool dirty_ = false;