diff --git a/server/imserver/guild.cc b/server/imserver/guild.cc index 2f1a8b1..0c0e8a4 100644 --- a/server/imserver/guild.cc +++ b/server/imserver/guild.cc @@ -135,6 +135,10 @@ 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 (IsFull()) { + respmsg.set_errcode(1); + respmsg.set_errmsg("公会人数已达上限"); + } GuildMgr::Instance()->ForwardGuildSMMsg(hdr.socket_handle, forward_msg->context(), respmsg); @@ -359,3 +363,8 @@ void Guild::GenSortedMembers() sorted_members_.push_back(pair.second); } } + +int Guild::GetMemberNum() +{ + return member_hash_.size(); +} diff --git a/server/imserver/guild.h b/server/imserver/guild.h index 5c6cc3d..0873bd8 100644 --- a/server/imserver/guild.h +++ b/server/imserver/guild.h @@ -78,6 +78,7 @@ private: void SerializeMembers(std::string& guild_members); void SaveToDB(); void GenSortedMembers(); + int GetMemberNum(); private: bool dirty_ = false;