diff --git a/server/gameserver/matchteam.cc b/server/gameserver/matchteam.cc index 414b41c..654541d 100644 --- a/server/gameserver/matchteam.cc +++ b/server/gameserver/matchteam.cc @@ -111,7 +111,23 @@ bool MatchTeam::IsRawMember(const std::string &account_id) bool MatchTeam::IsValidMember(const cs::CMJoin& msg) { - return false; + if (msg.team_members().size() <= 0) { + return false; + } + if (first_member_->msg.team_uuid() != msg.team_uuid()) { + return false; + } + if (first_member_->msg.team_members().size() != msg.team_members().size()) { + return false; + } + for (int i = 0; i < msg.team_members().size(); ++i) { + auto& a = msg.team_members(i); + auto& b = first_member_->msg.team_members(i); + if (a.account_id() != b.account_id()) { + return false; + } + } + return true; } void MatchTeam::Update()