From 1f4ff08d578cc23ebc38ac5355729c02dee184be Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 18 Jun 2020 18:34:19 +0800 Subject: [PATCH] 1 --- server/imserver/player.cc | 17 +++++++++++++++++ server/imserver/player.h | 1 + 2 files changed, 18 insertions(+) diff --git a/server/imserver/player.cc b/server/imserver/player.cc index fcc1d3a..acce2ee 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -691,6 +691,7 @@ void Player::OnDataVersion1Change() { Player* hum = (Player*)param.sender.GetUserData(); hum->InternalUpdateUserInfo(); + hum->SyncOtherFriend(); }, &timer_attacher.timer_list_, [] (const a8::XParams& param) @@ -714,6 +715,7 @@ void Player::OnTempCustomDataChange() { Player* hum = (Player*)param.sender.GetUserData(); hum->InternalUpdateUserInfo(); + hum->SyncOtherFriend(); }, &timer_attacher.timer_list_, [] (const a8::XParams& param) @@ -846,3 +848,18 @@ void Player::PushFriendList() FillFriendList(respmsg.mutable_friend_list()); SendMsg(respmsg); } + +void Player::SyncOtherFriend() +{ + cs::SMUserInfoUpdate msg; + auto p = msg.add_user_infos(); + TypeConvert::Convert(myself.base_data, *p->mutable_base_data()); + TypeConvert::Convert(myself.temp_custom_data, *p->mutable_temp_custom_data()); + + for (auto& pair : friend_hash_) { + Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId(pair.second->base_data.account_id); + if (hum) { + hum->SendMsg(msg); + } + } +} diff --git a/server/imserver/player.h b/server/imserver/player.h index 3603b04..62690ab 100644 --- a/server/imserver/player.h +++ b/server/imserver/player.h @@ -115,6 +115,7 @@ private: int msgid, ::google::protobuf::Message& msg); void InternalUpdateUserInfo(); + void SyncOtherFriend(); private: bool dirty_ = false;