From c0a3b4f7ee2e75b193f0aa80d1a54d97fac7fa7a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 18 Jun 2020 17:34:07 +0800 Subject: [PATCH] 1 --- server/imserver/player.cc | 26 ++++++-------------------- server/imserver/synchelper.cc | 10 ++++++++++ server/imserver/synchelper.h | 3 +++ 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/server/imserver/player.cc b/server/imserver/player.cc index 76cf7a9..f34a24c 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -11,6 +11,7 @@ #include "MSConnMgr.h" #include "dbengine.h" #include "dbhelper.h" +#include "synchelper.h" #include "app.h" #include "typeconvert.h" #include "playermgr.h" @@ -241,20 +242,12 @@ void Player::_CMFriendAgree(f8::MsgHdr& hdr, const cs::CMFriendAgree& msg) TypeConvert::Convert(msg.apply().base_data(), friendobj->base_data); if (AddFriend(friendobj) == 0) { NotifyUserInfoUpdate(friendobj); + SyncHelper::Instance()->SyncNewFriend(this, friendobj->base_data.account_id); + MarkDirty(); } else { A8_SAFE_DELETE(friendobj); } SendMsg(respmsg); - MarkDirty(); - #if 1 - { - Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId(friendobj->base_data.account_id); - if (hum) { - hum->AddFriend(&myself); - } - } - #endif - DBHelper::Instance()->SetFriendApplyStatus ( myself.crc32_code, @@ -284,16 +277,7 @@ void Player::_CMFriendDelete(f8::MsgHdr& hdr, const cs::CMFriendDelete& msg) cs::SMFriendDelete respmsg; Friend* p = GetFriendById(msg.friend_id()); if (p) { - friend_hash_.erase(msg.friend_id()); - MarkDirty(); -#if 1 - { - Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId(p->base_data.account_id); - if (hum) { - hum->RemoveFriend(AccountId()); - } - } -#endif + RemoveFriend(p->base_data.account_id); } respmsg.set_friend_id(msg.friend_id()); SendMsg(respmsg); @@ -717,9 +701,11 @@ void Player::RemoveFriend(const std::string& account_id) notifymsg.add_user_list(account_id); SendMsg(notifymsg); } + SyncHelper::Instance()->SyncDeleteFriend(this, friendobj->base_data.account_id); PlayerMgr::Instance()->UnWatchPlayer(friendobj); friend_hash_.erase(account_id); delete friendobj; + MarkDirty(); } } diff --git a/server/imserver/synchelper.cc b/server/imserver/synchelper.cc index 7fe41d6..650fb6d 100644 --- a/server/imserver/synchelper.cc +++ b/server/imserver/synchelper.cc @@ -13,3 +13,13 @@ void SyncHelper::Init() void SyncHelper::UnInit() { } + +void SyncHelper::SyncNewFriend(Player* hum, const std::string& target_id) +{ + +} + +void SyncHelper::SyncDeleteFriend(Player* hum, const std::string& target_id) +{ + +} diff --git a/server/imserver/synchelper.h b/server/imserver/synchelper.h index 0e7f4b8..4ca0f52 100644 --- a/server/imserver/synchelper.h +++ b/server/imserver/synchelper.h @@ -10,4 +10,7 @@ class SyncHelper : public a8::Singleton public: void Init(); void UnInit(); + + void SyncNewFriend(Player* hum, const std::string& target_id); + void SyncDeleteFriend(Player* hum, const std::string& target_id); };