go_dreamfactory/modules/parkour/api_reconnectroom.go
2023-11-04 15:40:26 +08:00

41 lines
1.0 KiB
Go

package parkour
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) ReconnectRoomCheck(session comm.IUserSession, req *pb.ParkourReconnectRoomReq) (errdata *pb.ErrorData) {
return
}
///匹配请求
func (this *apiComp) ReconnectRoom(session comm.IUserSession, req *pb.ParkourReconnectRoomReq) (errdata *pb.ErrorData) {
var (
room *RaceItem
race *pb.DBRace
ok bool
)
if errdata = this.ReconnectRoomCheck(session, req); errdata != nil {
return
}
this.module.lock.RLock()
room, ok = this.module.battles[req.Battleid]
this.module.lock.RUnlock()
if ok {
room.lock.Lock()
room.Session[session.GetUserId()] = session.Clone()
room.lock.Unlock()
race = &pb.DBRace{
Id: room.Id,
ServicePath: fmt.Sprintf("%s/%s", this.service.GetType(), this.service.GetId()),
Redmember: room.RedMember,
Bulemember: room.BuleMember,
}
}
session.SendMsg(string(this.module.GetType()), "reconnectroom", &pb.ParkourReconnectRoomResp{Race: race})
return
}