diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index 34d3ad3..699b79c 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -58,11 +58,20 @@ void Guild::AddMember(GuildMember* member) } } -void Guild::RemoveMember(const std::string& account_id) +void Guild::RemoveMember(const std::string& sender_id, + const std::string& target_id, + int reason) { - GuildMember* member = GetMember(account_id); + GuildMember* member = GetMember(target_id); if (member) { - member_hash_.erase(account_id); + SyncHelper::Instance()->SyncGuildMemberQuit + ( + this, + sender_id, + target_id, + reason + ); + member_hash_.erase(target_id); A8_SAFE_DELETE(member); GenSortedMembers(); } @@ -226,13 +235,9 @@ void Guild::_CMGuildKick(f8::MsgHdr& hdr, const cs::CMGuildKick& msg) GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, forward_msg->context(), respmsg); - SyncHelper::Instance()->SyncGuildMemberQuit - ( - this, - sender->account_id, - member->account_id, - kGuildKick - ); + RemoveMember(sender->account_id, + member->account_id, + kGuildKick); } void Guild::_CMGuildQuit(f8::MsgHdr& hdr, const cs::CMGuildQuit& msg) diff --git a/server/imserver/guild.h b/server/imserver/guild.h index 8547758..3e2bbe0 100644 --- a/server/imserver/guild.h +++ b/server/imserver/guild.h @@ -75,7 +75,9 @@ private: bool IsFull(); GuildMember* GetMember(const std::string& account_id); void AddMember(GuildMember* member); - void RemoveMember(const std::string& account_id); + void RemoveMember(const std::string& sender_id, + const std::string& target_id, + int reason); void FillGuildBasic(cs::MFGuildBasic* guild_basic); void FillGuildDB(ss::MFGuildDB& guild_pb);