diff --git a/server/imserver/constant.h b/server/imserver/constant.h index 6962fca..bf42cbb 100644 --- a/server/imserver/constant.h +++ b/server/imserver/constant.h @@ -64,6 +64,12 @@ enum GuildMemberQuitReason kGuildDismisss = 2 }; +enum GuildMemberUpdateReason +{ + kGuildUpdateReasonJoin = 0, + kGuildUpdateReasonAgree = 1, +}; + const char* const PROJ_NAME_FMT = "friend_imserver"; const char* const PROJ_ROOT_FMT = "/data/logs/%s"; diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index 6b36218..d33bec5 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -148,7 +148,7 @@ void Guild::_CMGuildJoin(f8::MsgHdr& hdr, const cs::CMGuildJoin& msg) GuildMember* member = GetMember(forward_msg->context().user_info().base_data().account_id()); if (member) { - + SyncHelper::Instance()->SyncGuildMemberUpdate(this, member, kGuildUpdateReasonJoin); } else { DBHelper::Instance()->AddGuildApply(this, forward_msg->context().user_info()); } @@ -159,7 +159,9 @@ void Guild::_CMGuildAgree(f8::MsgHdr& hdr, const cs::CMGuildAgree& msg) ss::SS_IM_ForwardGuildCMMsg *forward_msg = (ss::SS_IM_ForwardGuildCMMsg*)hdr.user_data; cs::SMGuildAgree respmsg; - if (GetMember(forward_msg->context().user_info().base_data().account_id())) { + GuildMember* member = GetMember(forward_msg->context().user_info().base_data().account_id()); + if (member) { + SyncHelper::Instance()->SyncGuildMemberUpdate(this, member, kGuildUpdateReasonAgree); GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, forward_msg->context(), respmsg); @@ -201,7 +203,7 @@ void Guild::_CMGuildAgree(f8::MsgHdr& hdr, const cs::CMGuildAgree& msg) forward_msg->context(), respmsg); - GuildMember* member = new GuildMember(); + member = new GuildMember(); TypeConvert::Convert(forward_msg->context().user_info().base_data(), *member); AddMember(member); diff --git a/server/imserver/synchelper.cc b/server/imserver/synchelper.cc index 76773e2..3513302 100644 --- a/server/imserver/synchelper.cc +++ b/server/imserver/synchelper.cc @@ -95,6 +95,13 @@ void SyncHelper::SyncApplyFriend(Player* hum, const std::string& target_id) delete notifymsg; } +void SyncHelper::SyncGuildMemberUpdate(Guild* guild, + GuildMember* member, + int reason) +{ + +} + void SyncHelper::SyncGuildMemberQuit(Guild* guild, const std::string& sender_id, const std::string& target_id, diff --git a/server/imserver/synchelper.h b/server/imserver/synchelper.h index d96ae39..b49cb98 100644 --- a/server/imserver/synchelper.h +++ b/server/imserver/synchelper.h @@ -11,6 +11,7 @@ namespace ss } class Guild; +struct GuildMember; class Player; struct timer_list; class SyncHelper : public a8::Singleton @@ -31,6 +32,10 @@ public: void SyncUpdateFriend(Player* hum, const std::string& target_id); void SyncApplyFriend(Player* hum, const std::string& target_id); + void SyncGuildMemberUpdate(Guild* guild, + GuildMember* member, + int reason); + void SyncGuildMemberQuit(Guild* guild, const std::string& sender_id, const std::string& target_id,