diff --git a/server/imserver/constant.h b/server/imserver/constant.h index fa5ed18..f718970 100644 --- a/server/imserver/constant.h +++ b/server/imserver/constant.h @@ -34,6 +34,11 @@ enum NetHandler_e HID_SyncHelper }; +enum ReadPointFlag +{ + RPF_Apply = 0 +}; + const char* const PROJ_NAME_FMT = "friend_imserver"; const char* const PROJ_ROOT_FMT = "/data/logs/%s"; diff --git a/server/imserver/player.cc b/server/imserver/player.cc index 2c37ac8..dc71478 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -213,6 +213,8 @@ void Player::_CMFriendApplyList(f8::MsgHdr& hdr, const cs::CMFriendApplyList& ms hum->FillApplyList(*paging, respmsg); hum->SendMsg(respmsg); hum->apply_list_.clear(); + a8::UnSetBitFlag(hum->red_point_flags_, RPF_Apply); + hum->SyncRedPoint(); } delete paging; }; @@ -546,6 +548,11 @@ void Player::_SS_IM_FriendDeleteRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendD ); } +void Player::_SS_IM_FriendApply(f8::MsgHdr& hdr, const ss::SS_IM_FriendApply& msg) +{ + +} + void Player::ReLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg) { cs::SMLogin respmsg; diff --git a/server/imserver/player.h b/server/imserver/player.h index 3eb8098..60d6521 100644 --- a/server/imserver/player.h +++ b/server/imserver/player.h @@ -91,6 +91,7 @@ class Player void _SS_IM_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg); void _SS_IM_FriendDeleteRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendDeleteRequest& msg); + void _SS_IM_FriendApply(f8::MsgHdr& hdr, const ss::SS_IM_FriendApply& msg); void ReLogin(f8::MsgHdr& hdr, const cs::CMLogin& msg); void NotifyOnline(); diff --git a/server/imserver/playermgr.cc b/server/imserver/playermgr.cc index 0207370..e32660e 100644 --- a/server/imserver/playermgr.cc +++ b/server/imserver/playermgr.cc @@ -73,6 +73,14 @@ void PlayerMgr::_SS_IM_FriendDeleteRequest(f8::MsgHdr& hdr, const ss::SS_IM_Frie } } +void PlayerMgr::_SS_IM_FriendApply(f8::MsgHdr& hdr, const ss::SS_IM_FriendApply& msg) +{ + Player* hum = GetPlayerByAccountId(msg.target_id()); + if (hum) { + hum->_SS_IM_FriendApply(hdr, msg); + } +} + void PlayerMgr::_SS_IM_UpdateUserInfo(f8::MsgHdr& hdr, const ss::SS_IM_UpdateUserInfo& msg) { auto itr = watch_players_.find(msg.user_info().base_data().account_id()); diff --git a/server/imserver/playermgr.h b/server/imserver/playermgr.h index 6a48897..e74285c 100644 --- a/server/imserver/playermgr.h +++ b/server/imserver/playermgr.h @@ -14,6 +14,7 @@ namespace ss class SS_IM_UpdateUserInfo; class SS_IM_FriendAgreeRequest; class SS_IM_FriendDeleteRequest; + class SS_IM_FriendApply; } class Player; @@ -36,6 +37,7 @@ class PlayerMgr : public a8::Singleton void _SS_IM_SendCustomMsg(f8::MsgHdr& hdr, const ss::SS_IM_SendCustomMsg& msg); void _SS_IM_FriendAgreeRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendAgreeRequest& msg); void _SS_IM_FriendDeleteRequest(f8::MsgHdr& hdr, const ss::SS_IM_FriendDeleteRequest& msg); + void _SS_IM_FriendApply(f8::MsgHdr& hdr, const ss::SS_IM_FriendApply& msg); void _SS_IM_UpdateUserInfo(f8::MsgHdr& hdr, const ss::SS_IM_UpdateUserInfo& msg); diff --git a/server/tools/protobuild/ss_msgid.proto b/server/tools/protobuild/ss_msgid.proto index bd5fc4c..4548eba 100644 --- a/server/tools/protobuild/ss_msgid.proto +++ b/server/tools/protobuild/ss_msgid.proto @@ -34,4 +34,5 @@ enum SSMessageId_e _SS_IM_FriendAgreeResponse = 1017; _SS_IM_FriendDeleteRequest = 1018; _SS_IM_FriendDeleteResponse = 1019; + _SS_IM_FriendApply = 1020; } diff --git a/server/tools/protobuild/ss_proto.proto b/server/tools/protobuild/ss_proto.proto index b801614..d0d7563 100755 --- a/server/tools/protobuild/ss_proto.proto +++ b/server/tools/protobuild/ss_proto.proto @@ -228,3 +228,9 @@ message SS_IM_FriendDeleteResponse optional MFIMMsgConext context = 1; optional string target_id = 3; } + +message SS_IM_FriendApply +{ + optional MFIMMsgConext context = 1; + optional string target_id = 3; +}