diff --git a/server/matchserver/common/types.go b/server/matchserver/common/types.go index 5a3be1b8..855687a9 100644 --- a/server/matchserver/common/types.go +++ b/server/matchserver/common/types.go @@ -18,6 +18,7 @@ type Team interface { type TeamMgr interface { ProcessCMMsg(*cs.CsNetMsgHandler, *f5.MsgHdr) + GetTeamByUuid(string) Team } type Player interface { diff --git a/server/matchserver/player/playermgr.go b/server/matchserver/player/playermgr.go index 97bcd3e0..3620b85b 100644 --- a/server/matchserver/player/playermgr.go +++ b/server/matchserver/player/playermgr.go @@ -170,12 +170,25 @@ func (this *playerMgr) apiAuthCb(hdr *f5.MsgHdr, msg *cs.CMLogin, rsp f5.HttpCli return } - hum := new(player) - hum.init(pendingReq, rspObj.Info.Name, rspObj.Info.HeadId, rspObj.Info.HeroId, rspObj.Info.HeadFrame) - this.socketHash[pendingReq.hdr.GetSocket()] = hum + if msg.GetCreateTeamParam() != nil { + hum := new(player) + hum.init(pendingReq, rspObj.Info.Name, rspObj.Info.HeadId, rspObj.Info.HeroId, rspObj.Info.HeadFrame) + this.socketHash[pendingReq.hdr.GetSocket()] = hum - rspMsg.ServerInfo = proto.String(mt.Table.MatchCluster.GetServerInfo()) - GetWspListener().SendProxyMsg(hdr.Conn, hdr.SocketHandle, &rspMsg) + rspMsg.ServerInfo = proto.String(mt.Table.MatchCluster.GetServerInfo()) + GetWspListener().SendProxyMsg(hdr.Conn, hdr.SocketHandle, &rspMsg) + } else if msg.GetJoinTeamParam() != nil { + team := GetTeamMgr().GetTeamByUuid(msg.GetJoinTeamParam().GetTeamUuid()) + if team == nil { + rspMsg.Errcode = proto.Int32(101) + rspMsg.Errmsg = proto.String("join team error team not found") + GetWspListener().SendProxyMsg(pendingReq.hdr.Conn, pendingReq.hdr.SocketHandle, &rspMsg) + f5.GetSysLog().Warning("game2006api login auth errcode:%d", rspObj.Errcode) + return + } + } else { + panic("CMLogin Param error") + } } func (this *playerMgr) reportServerState(masterIp string, masterPort int32) {