diff --git a/comm/imodule.go b/comm/imodule.go index f6cfdd0f2..492402d39 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -657,9 +657,15 @@ type ( GMModifyDragonLv(uid string, cid string, lv int32) (dragon *pb.DBDragon, err error) } IMainCity interface { - //添加好友 - AddFriends(user1 *pb.BaseUserInfo, user2 *pb.BaseUserInfo) - //更新关联用户 - UpdateRelatedUser(uid string, users []*pb.BaseUserInfo) + //添加同屏好友 + AddMainCityFriends(uid string, users []string) + } + //游戏邀请 + IGameInvite interface { + GameInviteEnd(gtype int32, uid string) + } + //游戏邀请 + IDColor interface { + CreateRoom(sessions []IUserSession, rulesStr string) (roomid string, err error) } ) diff --git a/modules/dcolor/core.go b/modules/dcolor/core.go index 9554940ff..771979ba1 100644 --- a/modules/dcolor/core.go +++ b/modules/dcolor/core.go @@ -40,3 +40,8 @@ func RandomColor(difficulty pb.DBDColorDifficulty, Repeat bool) (temcolors []int } return } + +type GameRules struct { + Difficulty pb.DBDColorDifficulty `json:"Difficulty"` + Repeat bool `json:"Repeat"` +} diff --git a/modules/dcolor/module.go b/modules/dcolor/module.go index faddbf7c3..c79bf6e2f 100644 --- a/modules/dcolor/module.go +++ b/modules/dcolor/module.go @@ -1,9 +1,14 @@ package dcolor import ( + "encoding/json" "go_dreamfactory/comm" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" "go_dreamfactory/modules" + "go_dreamfactory/pb" + + "go.mongodb.org/mongo-driver/bson/primitive" ) func NewModule() core.IModule { @@ -43,3 +48,46 @@ func (this *DColor) OnInstallComp() { this.modelQiecuo = this.RegisterComp(new(modelQiecuoComp)).(*modelQiecuoComp) this.rooms = this.RegisterComp(new(roomsComp)).(*roomsComp) } + +func (this *DColor) CreateRoom(sessions []comm.IUserSession, rulesStr string) (roomid string, err error) { + var ( + rules *GameRules + red *pb.DBUser + blue *pb.DBUser + ) + + if err = json.Unmarshal([]byte(rulesStr), rules); err != nil { + this.Error("解析规则json", log.Field{Key: "err", Value: err.Error()}) + return + } + + //发起者 red + red, err = this.ModuleUser.GetUser(sessions[0].GetUserId()) + if err != nil { + this.Error("未找到红方信息", log.Field{Key: "uid", Value: sessions[0].GetUserId()}) + return + } + blue, err = this.ModuleUser.GetUser(sessions[1].GetUserId()) + if err != nil { + this.Error("未找到蓝方信息", log.Field{Key: "uid", Value: sessions[1].GetUserId()}) + return + } + roomid = primitive.NewObjectID().Hex() + if _, err = this.rooms.newRoom(&pb.DBDColorRoom{ + Rid: roomid, + Difficulty: rules.Difficulty, + Repeat: rules.Repeat, + Results: RandomColor(rules.Difficulty, rules.Repeat), + Handles: make([]*pb.DBDColorResult, 0), + Red: &pb.DBDColorRoomPlayer{ + Info: comm.GetUserBaseInfo(red), + }, + Blue: &pb.DBDColorRoomPlayer{ + Info: comm.GetUserBaseInfo(blue), + }, + }, sessions); err != nil { + this.Error("创建房间错误", log.Field{Key: "err", Value: err.Error()}) + return + } + return +} diff --git a/modules/friend/api_cross_agree.go b/modules/friend/api_cross_agree.go index c5cb367a7..233016837 100644 --- a/modules/friend/api_cross_agree.go +++ b/modules/friend/api_cross_agree.go @@ -176,12 +176,13 @@ func (this *apiComp) Agree(session comm.IUserSession, req *pb.FriendAgreeReq) (e } resp := &pb.FriendAgreeResp{ - Num: optNum, + FriendIds: self.FriendIds, } session.SendMsg(string(this.module.GetType()), FriendSubTypeAgree, resp) go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { this.module.ModuleSys.CheckOpenCond(session.Clone(), comm.OpencondTypeFriend, int32(len(self.FriendIds))) + this.module.maincity.AddMainCityFriends(session.GetUserId(), req.FriendIds) if len(tasks) > 0 { this.module.ModuleBuried.TriggerBuried(session, tasks...) } diff --git a/modules/friend/module.go b/modules/friend/module.go index 0d3257b24..460e0f991 100644 --- a/modules/friend/module.go +++ b/modules/friend/module.go @@ -32,6 +32,7 @@ func NewModule() core.IModule { type Friend struct { modules.ModuleBase + maincity comm.IMainCity api *apiComp modelFriend *ModelFriend ModelFriendQiecuo *ModelFriendQiecuo @@ -70,7 +71,11 @@ func (this *Friend) Start() (err error) { if this.globalConf == nil { err = errors.New("global config not found") } - + var module core.IModule + if module, err = this.service.GetModule(comm.ModuleMaincity); err != nil { + return + } + this.maincity = module.(comm.IMainCity) return } diff --git a/modules/gameinvite/api_accept.go b/modules/gameinvite/api_accept.go new file mode 100644 index 000000000..f8abe05cd --- /dev/null +++ b/modules/gameinvite/api_accept.go @@ -0,0 +1,135 @@ +package gameinvite + +import ( + "fmt" + "go_dreamfactory/comm" + "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + "time" +) + +//接受切磋 + +func (this *apiComp) AcceptCheck(session comm.IUserSession, req *pb.GameInviteAcceptReq) (errdata *pb.ErrorData) { + if req.Uid == "" { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + } + return +} + +func (this *apiComp) Accept(session comm.IUserSession, req *pb.GameInviteAcceptReq) (errdata *pb.ErrorData) { + var ( + err error + redRecord *pb.GameInviteQiecuoRecord + blueRecord *pb.GameInviteQiecuoRecord + sessions []comm.IUserSession + gamedata *pb.GameInviteData + rules string + roomid string + ok bool + keep bool + ) + + if errdata = this.AcceptCheck(session, req); errdata != nil { + return + } + sessions = append(sessions, session.Clone()) + //校验切磋请求是否超时 + if redRecord, err = this.module.model.queryQiecuo(req.Uid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + + if blueRecord, err = this.module.model.queryQiecuo(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + keep = false + + if gamedata, ok = redRecord.Invite[req.Gtype]; !ok { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: fmt.Sprintf("no found gameInvite:%d", req.Gtype), + } + return + } + rules = gamedata.Rules + for _, v := range gamedata.Targets { + if v.Uid == session.GetUserId() { + if configure.Now().Sub(time.Unix(v.Timestamp, 0)).Seconds() > 10 { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PracticeInviteTimeOut, + Title: pb.ErrorCode_PracticeInviteTimeOut.ToString(), + } + return + } + keep = true + } + } + if !keep { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } + + if redsession, ok := this.module.GetUserSession(req.Uid); !ok { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_BattleUserOff, + Title: pb.ErrorCode_BattleUserOff.ToString(), + Message: "req.uid is Off!", + } + return + } else { + sessions = append(sessions, redsession) + } + switch req.Gtype { + case 3: + if roomid, err = this.module.dcolor.CreateRoom(sessions, rules); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + break + } + redRecord.Status = 1 + redRecord.Battid = roomid + gamedata.Member = []string{session.GetUserId(), req.Uid} + blueRecord.Status = 1 + blueRecord.Battid = roomid + blueRecord.Invite[redRecord.Gtype] = &pb.GameInviteData{ + Member: []string{session.GetUserId(), req.Uid}, + Rules: gamedata.Rules, + } + this.module.model.Change(session.GetUserId(), map[string]interface{}{ + "status": 1, + "invite": blueRecord.Invite, + "battid": blueRecord.Battid, + }) + this.module.model.Change(req.Uid, map[string]interface{}{ + "status": 1, + "invite": redRecord.Invite, + "battid": redRecord.Battid, + }) + + session.SendMsg(string(this.module.GetType()), "accept", &pb.GameInviteAcceptResp{ + IsSucc: true, + }) + return +} diff --git a/modules/gameinvite/api_qiecuo.go b/modules/gameinvite/api_qiecuo.go new file mode 100644 index 000000000..09fd1fa8c --- /dev/null +++ b/modules/gameinvite/api_qiecuo.go @@ -0,0 +1,111 @@ +package gameinvite + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + "time" +) + +// 踢馆(熊猫武馆) +func (this *apiComp) QiecuoCheck(session comm.IUserSession, req *pb.GameInviteQiecuoReq) (errdata *pb.ErrorData) { + if req.Fid == "" { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + } + return +} + +func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.GameInviteQiecuoReq) (errdata *pb.ErrorData) { + if errdata = this.QiecuoCheck(session, req); errdata != nil { + return + } + var ( + err error + info *pb.GameInviteQiecuoRecord + gamedata *pb.GameInviteData + user *pb.DBUser + ok bool + keep bool + ) + + //切磋请求处理 + if info, err = this.module.model.queryQiecuo(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + + //目标是否在线 + if !this.module.ModuleUser.IsOnline(req.Fid) { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_UserOffline, + Title: pb.ErrorCode_UserOffline.ToString(), + } + return + } + + if user, err = this.module.ModuleUser.GetUser(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + + keep = false + if gamedata, ok = info.Invite[req.Gtype]; !ok { + gamedata = &pb.GameInviteData{ + Targets: make([]*pb.GameInviteQiecuoInvite, 0), + Member: make([]string, 0), + Rules: req.Rules, + } + info.Invite[req.Gtype] = gamedata + } else { + gamedata.Rules = req.Rules + } + + for i, v := range gamedata.Targets { + if v.Uid == session.GetUserId() { + gamedata.Targets = append(gamedata.Targets[0:i], gamedata.Targets[i+1:]...) + keep = true + } + } + + for _, v := range gamedata.Targets { + if v.Uid == req.Fid { + keep = true + if configure.Now().Sub(time.Unix(v.Timestamp, 0)).Seconds() > 10 { + v.Timestamp = configure.Now().Unix() + } else { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_PracticeSent, + Title: pb.ErrorCode_PracticeSent.ToString(), + } + return + } + } + } + if !keep { + gamedata.Targets = append(gamedata.Targets, &pb.GameInviteQiecuoInvite{ + Uid: req.Fid, + Timestamp: configure.Now().Unix(), + }) + } + this.module.model.Change(session.GetUserId(), map[string]interface{}{ + "targets": info.Invite, + }) + + session.SendMsg(string(this.module.GetType()), "qiecuo", &pb.DColorQiecuoResp{Fid: req.Fid}) + + this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", + &pb.GameInviteQiecuonotifyPush{User: comm.GetUserBaseInfo(user), NotifyType: 1, Rules: req.Rules}, req.Fid) + + return +} diff --git a/modules/gameinvite/api_refuse.go b/modules/gameinvite/api_refuse.go new file mode 100644 index 000000000..5d3f746c3 --- /dev/null +++ b/modules/gameinvite/api_refuse.go @@ -0,0 +1,70 @@ +package gameinvite + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +// 切磋终止 +func (this *apiComp) RefuseCheck(session comm.IUserSession, req *pb.GameInviteRefuseReq) (errdata *pb.ErrorData) { + return +} + +//拒绝切磋 +func (this *apiComp) Refuse(session comm.IUserSession, req *pb.GameInviteRefuseReq) (errdata *pb.ErrorData) { + if errdata = this.RefuseCheck(session, req); errdata != nil { + return + } + var ( + err error + user *pb.DBUser + info *pb.GameInviteQiecuoRecord + gamedata *pb.GameInviteData + ok bool + keep bool + ) + if user, err = this.module.ModuleUser.GetUser(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + + //切磋请求处理 + if info, err = this.module.model.queryQiecuo(req.Uid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + keep = false + + if gamedata, ok = info.Invite[req.Gtype]; ok { + for i, v := range gamedata.Targets { + if v.Uid == session.GetUserId() { + gamedata.Targets = append(gamedata.Targets[0:i], gamedata.Targets[i+1:]...) + keep = true + } + } + } + + if !keep { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } + + this.module.model.Change(session.GetUserId(), map[string]interface{}{ + "invite": info.Invite, + }) + + this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", + &pb.GameInviteQiecuonotifyPush{User: comm.GetUserBaseInfo(user), NotifyType: 3}, req.Uid) + return +} diff --git a/modules/gameinvite/model.go b/modules/gameinvite/model.go index 4d34b1465..7e6efa8de 100644 --- a/modules/gameinvite/model.go +++ b/modules/gameinvite/model.go @@ -3,8 +3,11 @@ package gameinvite import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/modules" + "go_dreamfactory/pb" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/x/bsonx" ) @@ -23,3 +26,49 @@ func (this *modelComp) Init(service core.IService, module core.IModule, comp cor }) return } + +// 切磋请求处理 +func (this *modelComp) queryQiecuo(uid string) (result *pb.GameInviteQiecuoRecord, err error) { + result = &pb.GameInviteQiecuoRecord{} + if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil { + this.module.Errorln(err) + } + if err == mgo.MongodbNil { + result = &pb.GameInviteQiecuoRecord{ + Id: primitive.NewObjectID().Hex(), + Uid: uid, + Invite: make(map[int32]*pb.GameInviteData), + } + if err = this.Add(uid, result); err != nil { + this.module.Errorln(err) + return + } + } + err = nil + return +} + +func (this *modelComp) endQiecuo(gtype int32, uid string) (result *pb.GameInviteQiecuoRecord, err error) { + result = &pb.GameInviteQiecuoRecord{} + if err = this.Get(uid, result); err != nil { + this.module.Errorln(err) + return + } + this.Change(uid, map[string]interface{}{ + "status": 0, + "battid": "", + "Invite": make(map[int32]*pb.GameInviteData), + }) + if _, ok := result.Invite[gtype]; ok { + for _, v := range result.Invite[gtype].Member { + if v != uid { + this.Change(v, map[string]interface{}{ + "status": 0, + "battid": "", + "Invite": make(map[int32]*pb.GameInviteData), + }) + } + } + } + return +} diff --git a/modules/gameinvite/module.go b/modules/gameinvite/module.go index 09fa3b749..645d85a37 100644 --- a/modules/gameinvite/module.go +++ b/modules/gameinvite/module.go @@ -11,6 +11,7 @@ type GameInvite struct { service comm.IService api *apiComp model *modelComp + dcolor comm.IDColor } func NewModule() core.IModule { @@ -28,3 +29,7 @@ func (this *GameInvite) Init(service core.IService, module core.IModule, options this.service = service.(comm.IService) return } + +func (this *GameInvite) GameInviteEnd(gtype int32, uid string) { + this.model.endQiecuo(gtype, uid) +} diff --git a/modules/maincity/api_onlinePlayer.go b/modules/maincity/api_onlinePlayer.go index a8613b950..47ff9f734 100644 --- a/modules/maincity/api_onlinePlayer.go +++ b/modules/maincity/api_onlinePlayer.go @@ -13,14 +13,10 @@ func (this *apiComp) OnlinePlayerCheck(session comm.IUserSession, req *pb.MainCi // 查看某一封邮件 func (this *apiComp) OnlinePlayer(session comm.IUserSession, req *pb.MainCityOnlinePlayerReq) (errdata *pb.ErrorData) { var ( - friends []*pb.BaseUserInfo uids []string onlineUsers []*pb.CacheUser ) - friends = this.module.model.getplayerPos(session.GetUserId()) - for _, v := range friends { - uids = append(uids, v.Uid) - } + uids = this.module.model.getplayerPos(session.GetUserId()) onlineUsers = this.module.ModuleUser.GetUserSessions(uids) uids = make([]string, 0) for _, v := range onlineUsers { diff --git a/modules/maincity/api_synchpos.go b/modules/maincity/api_synchpos.go index 6a7586d7a..6c2639006 100644 --- a/modules/maincity/api_synchpos.go +++ b/modules/maincity/api_synchpos.go @@ -13,23 +13,25 @@ func (this *apiComp) SynchPosCheck(session comm.IUserSession, req *pb.MainCitySy // 查看某一封邮件 func (this *apiComp) SynchPos(session comm.IUserSession, req *pb.MainCitySynchPosPeek) (errdata *pb.ErrorData) { var ( - // user *pb.DBUser - friends []*pb.BaseUserInfo - groupUser map[string][]*pb.BaseUserInfo = make(map[string][]*pb.BaseUserInfo) + friends []string + groupUser map[string][]string = make(map[string][]string) + stage string + err error ok bool - // err error ) - // if user, err = this.module.ModuleUser.GetUser(session.GetUserId()); err != nil { - // return - // } - // self := comm.GetUserBaseInfo(user) + friends = this.module.model.getplayerPos(session.GetUserId()) - // friends = append(friends, self) + for _, v := range friends { - if _, ok = groupUser[v.Sid]; !ok { - groupUser[v.Sid] = make([]*pb.BaseUserInfo, 0) + stage, err = comm.UidToSTag(v) + if err != nil { + this.module.Errorln(err) + continue } - groupUser[v.Sid] = append(groupUser[v.Sid], v) + if _, ok = groupUser[stage]; !ok { + groupUser[stage] = make([]string, 0) + } + groupUser[stage] = append(groupUser[stage], v) } this.module.SendMsgToSession(string(this.module.GetType()), "synchpos", &pb.MainCitySynchPosPush{ Pos: req.Pos, diff --git a/modules/maincity/model.go b/modules/maincity/model.go index 3cc7e6f6b..81761108b 100644 --- a/modules/maincity/model.go +++ b/modules/maincity/model.go @@ -3,7 +3,6 @@ package maincity import ( "go_dreamfactory/lego/core" "go_dreamfactory/lego/core/cbase" - "go_dreamfactory/pb" "sync" ) @@ -11,22 +10,24 @@ type modelComp struct { cbase.ModuleCompBase module *MainCity lock sync.RWMutex - onlines map[string][]*pb.BaseUserInfo //关联用户信息 + ulock sync.RWMutex + onlines map[string][]string //关联用户信息 } func (this *modelComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { err = this.ModuleCompBase.Init(service, module, comp, options) this.module = module.(*MainCity) - this.onlines = make(map[string][]*pb.BaseUserInfo) + this.onlines = make(map[string][]string) return } -func (this *modelComp) setplayerPos(uid string, friends []*pb.BaseUserInfo) { +func (this *modelComp) setplayerPos(uid string, friends []string) { this.lock.Lock() this.onlines[uid] = append(this.onlines[uid], friends...) this.lock.Unlock() } -func (this *modelComp) addplayerPos(uid string, friend *pb.BaseUserInfo) { + +func (this *modelComp) addplayerPos(uid string, friend string) { this.lock.Lock() if _, ok := this.onlines[uid]; ok { this.onlines[uid] = append(this.onlines[uid], friend) @@ -34,7 +35,7 @@ func (this *modelComp) addplayerPos(uid string, friend *pb.BaseUserInfo) { this.lock.Unlock() } -func (this *modelComp) getplayerPos(uid string) (friends []*pb.BaseUserInfo) { +func (this *modelComp) getplayerPos(uid string) (friends []string) { this.lock.RLock() friends = this.onlines[uid] this.lock.RUnlock() diff --git a/modules/maincity/module.go b/modules/maincity/module.go index 7332f5c7b..ed38e78e9 100644 --- a/modules/maincity/module.go +++ b/modules/maincity/module.go @@ -68,9 +68,6 @@ func (this *MainCity) EventUserLogin(session comm.IUserSession) { var ( uids []string sociaty *pb.DBSociaty - users []*pb.DBUser - busers []*pb.BaseUserInfo - err error ) uids = this.friend.GetFriendList(session.GetUserId()) if sociaty = this.sociaty.GetSociaty(session.GetUserId()); sociaty != nil { @@ -80,39 +77,28 @@ func (this *MainCity) EventUserLogin(session comm.IUserSession) { } } } - if users, err = this.ModuleUser.GetCrossUsers(uids); err != nil { - this.Errorln(err) - return - } - busers = make([]*pb.BaseUserInfo, len(users)) - for i, v := range users { - busers[i] = comm.GetUserBaseInfo(v) - } - this.model.setplayerPos(session.GetUserId(), busers) + this.model.setplayerPos(session.GetUserId(), uids) } // 用户登录 func (this *MainCity) EventUserOffline(uid string, sessionid string) { this.model.removelayerPos(uid) } -func (this *MainCity) AddFriends(user1 *pb.BaseUserInfo, users []*pb.BaseUserInfo) { - this.model.setplayerPos(user1.Uid, users) + +func (this *MainCity) AddMainCityFriends(uid string, users []string) { + this.model.setplayerPos(uid, users) for _, user := range users { - this.model.addplayerPos(user.Uid, user1) + this.model.addplayerPos(user, uid) } } -func (this *MainCity) UpdateRelatedUser(uid string, users []*pb.BaseUserInfo) { - this.model.setplayerPos(uid, users) -} - // 向多个用户发送消息 -func (this *MainCity) SendMsgToSession(mainType, subType string, msg proto.Message, users map[string][]*pb.BaseUserInfo) (err error) { +func (this *MainCity) SendMsgToSession(mainType, subType string, msg proto.Message, users map[string][]string) (err error) { data, _ := anypb.New(msg) for k, users := range users { uids := []string{} for _, v := range users { - uids = append(uids, v.Uid) + uids = append(uids, v) } ctx, _ := context.WithTimeout(context.Background(), time.Second*5) if _, err = this.service.AcrossClusterRpcGo(ctx, k, comm.Service_Gateway, string(comm.Rpc_GatewaySendBatchMsgByUid), &pb.BatchUsersMessageReq{ diff --git a/modules/parkour/match.go b/modules/parkour/match.go index 493dd36ab..fc20466da 100644 --- a/modules/parkour/match.go +++ b/modules/parkour/match.go @@ -44,6 +44,7 @@ func (this *matchComp) MatchReq(v *pb.DBMatchPlayer) (err error) { &pb.JoinMatchPoolReq{ Poolname: this.PoolName, Uid: v.Suser.Uid, + Dan: v.Dan, Data: data, Matchnum: 6, Timeout: 10, diff --git a/modules/sociaty/api_cross_agree.go b/modules/sociaty/api_cross_agree.go index 35bb56a6a..a90389af9 100644 --- a/modules/sociaty/api_cross_agree.go +++ b/modules/sociaty/api_cross_agree.go @@ -24,6 +24,7 @@ func (this *apiComp) AgreeCheck(session comm.IUserSession, req *pb.SociatyAgreeR func (this *apiComp) Agree(session comm.IUserSession, req *pb.SociatyAgreeReq) (errdata *pb.ErrorData) { var ( + uids []string tasks []*pb.BuriedParam = make([]*pb.BuriedParam, 0) ) @@ -60,6 +61,9 @@ func (this *apiComp) Agree(session comm.IUserSession, req *pb.SociatyAgreeReq) ( } return } + for _, v := range sociaty.Members { + uids = append(uids, v.Uid) + } // 校验权限 if !this.module.modelSociaty.isRight(uid, sociaty, @@ -125,6 +129,7 @@ func (this *apiComp) Agree(session comm.IUserSession, req *pb.SociatyAgreeReq) ( this.module.Errorln(err) } this.module.ModuleBuried.TriggerBuried(session, tasks...) + this.module.maincity.AddMainCityFriends(req.Uid, uids) }) return } diff --git a/modules/sociaty/module.go b/modules/sociaty/module.go index d04596b84..354f895f5 100644 --- a/modules/sociaty/module.go +++ b/modules/sociaty/module.go @@ -24,6 +24,7 @@ var _ comm.ISociaty = (*Sociaty)(nil) type Sociaty struct { modules.ModuleBase + maincity comm.IMainCity api *apiComp service base.IRPCXService modelSociaty *ModelSociaty @@ -88,7 +89,11 @@ func (this *Sociaty) Start() (err error) { if err = this.checkSociatyConf(); err != nil { return err } - this.Debug("check guild conf completed") + var module core.IModule + if module, err = this.service.GetModule(comm.ModuleMaincity); err != nil { + return + } + this.maincity = module.(comm.IMainCity) return } diff --git a/pb/friend_msg.pb.go b/pb/friend_msg.pb.go index 69a7f77d7..f742644cc 100644 --- a/pb/friend_msg.pb.go +++ b/pb/friend_msg.pb.go @@ -602,7 +602,7 @@ type FriendAgreeResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num"` //操作的数量 + FriendIds []string `protobuf:"bytes,1,rep,name=friendIds,proto3" json:"friendIds"` //被同意的用户 } func (x *FriendAgreeResp) Reset() { @@ -637,11 +637,11 @@ func (*FriendAgreeResp) Descriptor() ([]byte, []int) { return file_friend_friend_msg_proto_rawDescGZIP(), []int{10} } -func (x *FriendAgreeResp) GetNum() int32 { +func (x *FriendAgreeResp) GetFriendIds() []string { if x != nil { - return x.Num + return x.FriendIds } - return 0 + return nil } //拒绝 @@ -2288,122 +2288,123 @@ var file_friend_friend_msg_proto_rawDesc = []byte{ 0x64, 0x22, 0x2e, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, - 0x73, 0x22, 0x23, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x2f, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x22, 0x24, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x4e, - 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x14, 0x0a, - 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x22, 0x36, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x0f, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x1a, - 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, - 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, - 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x3c, 0x0a, 0x13, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x2f, 0x0a, 0x11, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, - 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, - 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, - 0x65, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, - 0x2c, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, - 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x43, 0x0a, - 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x22, 0x12, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x34, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x5a, 0x61, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2c, 0x0a, 0x0c, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x22, 0x23, 0x0a, 0x0d, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, - 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, - 0x33, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x49, 0x64, 0x73, 0x22, 0x2a, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, - 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, - 0x22, 0x33, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x68, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, - 0x62, 0x6a, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, - 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x68, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, - 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x7c, - 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x6c, 0x69, + 0x73, 0x22, 0x2f, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, + 0x64, 0x73, 0x22, 0x2f, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x66, 0x75, + 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x49, 0x64, 0x73, 0x22, 0x24, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x66, + 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, + 0x36, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, - 0x62, 0x6a, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, - 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x14, 0x0a, 0x12, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x22, 0x31, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x41, 0x0a, 0x1a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, - 0x73, 0x73, 0x69, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x75, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x22, 0x41, 0x0a, 0x18, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x25, 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x34, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x22, 0x4d, 0x0a, 0x15, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x53, 0x0a, 0x12, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, 0x50, 0x75, 0x73, - 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, + 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, + 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x66, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x3c, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, + 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x2f, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, + 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x41, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x2f, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x42, 0x6c, 0x61, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, + 0x64, 0x22, 0x48, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x0e, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x12, + 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x22, 0x34, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, + 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2c, 0x0a, 0x0c, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x22, 0x23, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x5a, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x33, 0x0a, 0x13, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, + 0x22, 0x2a, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x33, 0x0a, 0x13, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x68, 0x65, 0x72, 0x6f, + 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, + 0x64, 0x22, 0x50, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, + 0x74, 0x68, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, + 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, + 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, + 0x69, 0x73, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x7c, 0x0a, 0x14, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x47, 0x65, 0x74, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x22, 0x31, + 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x22, 0x41, 0x0a, 0x1a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, + 0x74, 0x48, 0x65, 0x72, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, + 0x23, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x06, 0x66, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, + 0x73, 0x69, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, + 0x41, 0x0a, 0x18, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x48, + 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x73, 0x22, 0x34, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x22, 0x4d, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, - 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, - 0x22, 0x53, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x55, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x53, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x41, 0x64, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x53, 0x0a, 0x12, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x75, + 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, + 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/pb/gameinvite_db.pb.go b/pb/gameinvite_db.pb.go new file mode 100644 index 000000000..c75fca560 --- /dev/null +++ b/pb/gameinvite_db.pb.go @@ -0,0 +1,357 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.20.0 +// source: gameinvite/gameinvite_db.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GameInviteQiecuoInvite struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` + Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp"` +} + +func (x *GameInviteQiecuoInvite) Reset() { + *x = GameInviteQiecuoInvite{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_db_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteQiecuoInvite) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteQiecuoInvite) ProtoMessage() {} + +func (x *GameInviteQiecuoInvite) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_db_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteQiecuoInvite.ProtoReflect.Descriptor instead. +func (*GameInviteQiecuoInvite) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_db_proto_rawDescGZIP(), []int{0} +} + +func (x *GameInviteQiecuoInvite) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *GameInviteQiecuoInvite) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type GameInviteData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Targets []*GameInviteQiecuoInvite `protobuf:"bytes,1,rep,name=targets,proto3" json:"targets"` //目标 + Member []string `protobuf:"bytes,2,rep,name=member,proto3" json:"member"` //接受方id + Rules string `protobuf:"bytes,3,opt,name=rules,proto3" json:"rules"` //规则json +} + +func (x *GameInviteData) Reset() { + *x = GameInviteData{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_db_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteData) ProtoMessage() {} + +func (x *GameInviteData) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_db_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteData.ProtoReflect.Descriptor instead. +func (*GameInviteData) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_db_proto_rawDescGZIP(), []int{1} +} + +func (x *GameInviteData) GetTargets() []*GameInviteQiecuoInvite { + if x != nil { + return x.Targets + } + return nil +} + +func (x *GameInviteData) GetMember() []string { + if x != nil { + return x.Member + } + return nil +} + +func (x *GameInviteData) GetRules() string { + if x != nil { + return x.Rules + } + return "" +} + +//切磋请求记录 +type GameInviteQiecuoRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //id + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` //发起人id + Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status"` //0邀请中 1战斗中 + Gtype int32 `protobuf:"varint,4,opt,name=gtype,proto3" json:"gtype"` //当前游戏类型 + Battid string `protobuf:"bytes,5,opt,name=battid,proto3" json:"battid"` //战斗id + Invite map[int32]*GameInviteData `protobuf:"bytes,6,rep,name=Invite,proto3" json:"Invite" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //邀请数据 +} + +func (x *GameInviteQiecuoRecord) Reset() { + *x = GameInviteQiecuoRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_db_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteQiecuoRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteQiecuoRecord) ProtoMessage() {} + +func (x *GameInviteQiecuoRecord) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_db_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteQiecuoRecord.ProtoReflect.Descriptor instead. +func (*GameInviteQiecuoRecord) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_db_proto_rawDescGZIP(), []int{2} +} + +func (x *GameInviteQiecuoRecord) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GameInviteQiecuoRecord) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *GameInviteQiecuoRecord) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GameInviteQiecuoRecord) GetGtype() int32 { + if x != nil { + return x.Gtype + } + return 0 +} + +func (x *GameInviteQiecuoRecord) GetBattid() string { + if x != nil { + return x.Battid + } + return "" +} + +func (x *GameInviteQiecuoRecord) GetInvite() map[int32]*GameInviteData { + if x != nil { + return x.Invite + } + return nil +} + +var File_gameinvite_gameinvite_db_proto protoreflect.FileDescriptor + +var file_gameinvite_gameinvite_db_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x2f, 0x67, 0x61, 0x6d, + 0x65, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x48, 0x0a, 0x16, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x51, 0x69, + 0x65, 0x63, 0x75, 0x6f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x71, 0x0a, 0x0e, 0x47, 0x61, + 0x6d, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x07, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x89, 0x02, + 0x0a, 0x16, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x51, 0x69, 0x65, 0x63, + 0x75, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x74, 0x74, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, 0x69, 0x64, + 0x12, 0x3b, 0x0a, 0x06, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x51, 0x69, 0x65, + 0x63, 0x75, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x1a, 0x4a, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_gameinvite_gameinvite_db_proto_rawDescOnce sync.Once + file_gameinvite_gameinvite_db_proto_rawDescData = file_gameinvite_gameinvite_db_proto_rawDesc +) + +func file_gameinvite_gameinvite_db_proto_rawDescGZIP() []byte { + file_gameinvite_gameinvite_db_proto_rawDescOnce.Do(func() { + file_gameinvite_gameinvite_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_gameinvite_gameinvite_db_proto_rawDescData) + }) + return file_gameinvite_gameinvite_db_proto_rawDescData +} + +var file_gameinvite_gameinvite_db_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_gameinvite_gameinvite_db_proto_goTypes = []interface{}{ + (*GameInviteQiecuoInvite)(nil), // 0: GameInviteQiecuoInvite + (*GameInviteData)(nil), // 1: GameInviteData + (*GameInviteQiecuoRecord)(nil), // 2: GameInviteQiecuoRecord + nil, // 3: GameInviteQiecuoRecord.InviteEntry +} +var file_gameinvite_gameinvite_db_proto_depIdxs = []int32{ + 0, // 0: GameInviteData.targets:type_name -> GameInviteQiecuoInvite + 3, // 1: GameInviteQiecuoRecord.Invite:type_name -> GameInviteQiecuoRecord.InviteEntry + 1, // 2: GameInviteQiecuoRecord.InviteEntry.value:type_name -> GameInviteData + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_gameinvite_gameinvite_db_proto_init() } +func file_gameinvite_gameinvite_db_proto_init() { + if File_gameinvite_gameinvite_db_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_gameinvite_gameinvite_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteQiecuoInvite); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gameinvite_gameinvite_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gameinvite_gameinvite_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteQiecuoRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_gameinvite_gameinvite_db_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_gameinvite_gameinvite_db_proto_goTypes, + DependencyIndexes: file_gameinvite_gameinvite_db_proto_depIdxs, + MessageInfos: file_gameinvite_gameinvite_db_proto_msgTypes, + }.Build() + File_gameinvite_gameinvite_db_proto = out.File + file_gameinvite_gameinvite_db_proto_rawDesc = nil + file_gameinvite_gameinvite_db_proto_goTypes = nil + file_gameinvite_gameinvite_db_proto_depIdxs = nil +} diff --git a/pb/gameinvite_msg.pb.go b/pb/gameinvite_msg.pb.go new file mode 100644 index 000000000..1c2b6f014 --- /dev/null +++ b/pb/gameinvite_msg.pb.go @@ -0,0 +1,594 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc v3.20.0 +// source: gameinvite/gameinvite_msg.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +//游戏邀请请求 +type GameInviteQiecuoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fid string `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid"` //游戏邀请对象 + Gtype int32 `protobuf:"varint,2,opt,name=gtype,proto3" json:"gtype"` //游戏类型 + Rules string `protobuf:"bytes,3,opt,name=rules,proto3" json:"rules"` //规则字符串 +} + +func (x *GameInviteQiecuoReq) Reset() { + *x = GameInviteQiecuoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteQiecuoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteQiecuoReq) ProtoMessage() {} + +func (x *GameInviteQiecuoReq) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteQiecuoReq.ProtoReflect.Descriptor instead. +func (*GameInviteQiecuoReq) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_msg_proto_rawDescGZIP(), []int{0} +} + +func (x *GameInviteQiecuoReq) GetFid() string { + if x != nil { + return x.Fid + } + return "" +} + +func (x *GameInviteQiecuoReq) GetGtype() int32 { + if x != nil { + return x.Gtype + } + return 0 +} + +func (x *GameInviteQiecuoReq) GetRules() string { + if x != nil { + return x.Rules + } + return "" +} + +type GameInviteQiecuoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fid string `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid"` //目标邀请对象 + Isbattle bool `protobuf:"varint,2,opt,name=isbattle,proto3" json:"isbattle"` //是否战斗 +} + +func (x *GameInviteQiecuoResp) Reset() { + *x = GameInviteQiecuoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteQiecuoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteQiecuoResp) ProtoMessage() {} + +func (x *GameInviteQiecuoResp) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteQiecuoResp.ProtoReflect.Descriptor instead. +func (*GameInviteQiecuoResp) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_msg_proto_rawDescGZIP(), []int{1} +} + +func (x *GameInviteQiecuoResp) GetFid() string { + if x != nil { + return x.Fid + } + return "" +} + +func (x *GameInviteQiecuoResp) GetIsbattle() bool { + if x != nil { + return x.Isbattle + } + return false +} + +//接受切磋 +type GameInviteAcceptReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //切磋发起者 + Gtype int32 `protobuf:"varint,2,opt,name=gtype,proto3" json:"gtype"` //游戏类型 +} + +func (x *GameInviteAcceptReq) Reset() { + *x = GameInviteAcceptReq{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteAcceptReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteAcceptReq) ProtoMessage() {} + +func (x *GameInviteAcceptReq) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteAcceptReq.ProtoReflect.Descriptor instead. +func (*GameInviteAcceptReq) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_msg_proto_rawDescGZIP(), []int{2} +} + +func (x *GameInviteAcceptReq) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *GameInviteAcceptReq) GetGtype() int32 { + if x != nil { + return x.Gtype + } + return 0 +} + +type GameInviteAcceptResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsSucc bool `protobuf:"varint,1,opt,name=isSucc,proto3" json:"isSucc"` +} + +func (x *GameInviteAcceptResp) Reset() { + *x = GameInviteAcceptResp{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteAcceptResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteAcceptResp) ProtoMessage() {} + +func (x *GameInviteAcceptResp) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteAcceptResp.ProtoReflect.Descriptor instead. +func (*GameInviteAcceptResp) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_msg_proto_rawDescGZIP(), []int{3} +} + +func (x *GameInviteAcceptResp) GetIsSucc() bool { + if x != nil { + return x.IsSucc + } + return false +} + +//拒绝切磋 +type GameInviteRefuseReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //切磋发起者 + Gtype int32 `protobuf:"varint,2,opt,name=gtype,proto3" json:"gtype"` //游戏类型 +} + +func (x *GameInviteRefuseReq) Reset() { + *x = GameInviteRefuseReq{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteRefuseReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteRefuseReq) ProtoMessage() {} + +func (x *GameInviteRefuseReq) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteRefuseReq.ProtoReflect.Descriptor instead. +func (*GameInviteRefuseReq) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_msg_proto_rawDescGZIP(), []int{4} +} + +func (x *GameInviteRefuseReq) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *GameInviteRefuseReq) GetGtype() int32 { + if x != nil { + return x.Gtype + } + return 0 +} + +type GameInviteRefuseResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsSucc bool `protobuf:"varint,1,opt,name=isSucc,proto3" json:"isSucc"` +} + +func (x *GameInviteRefuseResp) Reset() { + *x = GameInviteRefuseResp{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteRefuseResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteRefuseResp) ProtoMessage() {} + +func (x *GameInviteRefuseResp) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteRefuseResp.ProtoReflect.Descriptor instead. +func (*GameInviteRefuseResp) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_msg_proto_rawDescGZIP(), []int{5} +} + +func (x *GameInviteRefuseResp) GetIsSucc() bool { + if x != nil { + return x.IsSucc + } + return false +} + +//切磋通知 +type GameInviteQiecuonotifyPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User *BaseUserInfo `protobuf:"bytes,1,opt,name=user,proto3" json:"user"` //发起者信息 + NotifyType int32 `protobuf:"varint,2,opt,name=notifyType,proto3" json:"notifyType"` //1发起通知 2接受通知 3拒绝通知 + Rules string `protobuf:"bytes,3,opt,name=rules,proto3" json:"rules"` //游戏规则 +} + +func (x *GameInviteQiecuonotifyPush) Reset() { + *x = GameInviteQiecuonotifyPush{} + if protoimpl.UnsafeEnabled { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GameInviteQiecuonotifyPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GameInviteQiecuonotifyPush) ProtoMessage() {} + +func (x *GameInviteQiecuonotifyPush) ProtoReflect() protoreflect.Message { + mi := &file_gameinvite_gameinvite_msg_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GameInviteQiecuonotifyPush.ProtoReflect.Descriptor instead. +func (*GameInviteQiecuonotifyPush) Descriptor() ([]byte, []int) { + return file_gameinvite_gameinvite_msg_proto_rawDescGZIP(), []int{6} +} + +func (x *GameInviteQiecuonotifyPush) GetUser() *BaseUserInfo { + if x != nil { + return x.User + } + return nil +} + +func (x *GameInviteQiecuonotifyPush) GetNotifyType() int32 { + if x != nil { + return x.NotifyType + } + return 0 +} + +func (x *GameInviteQiecuonotifyPush) GetRules() string { + if x != nil { + return x.Rules + } + return "" +} + +var File_gameinvite_gameinvite_msg_proto protoreflect.FileDescriptor + +var file_gameinvite_gameinvite_msg_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x67, 0x61, 0x6d, 0x65, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x2f, 0x67, 0x61, 0x6d, + 0x65, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x53, 0x0a, + 0x13, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, + 0x6f, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x22, 0x44, 0x0a, 0x14, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x69, 0x73, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x69, 0x73, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x22, 0x3d, 0x0a, 0x13, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x14, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x3d, 0x0a, 0x13, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x67, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x14, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x75, 0x0a, 0x1a, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x50, 0x75, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x06, 0x5a, + 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_gameinvite_gameinvite_msg_proto_rawDescOnce sync.Once + file_gameinvite_gameinvite_msg_proto_rawDescData = file_gameinvite_gameinvite_msg_proto_rawDesc +) + +func file_gameinvite_gameinvite_msg_proto_rawDescGZIP() []byte { + file_gameinvite_gameinvite_msg_proto_rawDescOnce.Do(func() { + file_gameinvite_gameinvite_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_gameinvite_gameinvite_msg_proto_rawDescData) + }) + return file_gameinvite_gameinvite_msg_proto_rawDescData +} + +var file_gameinvite_gameinvite_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_gameinvite_gameinvite_msg_proto_goTypes = []interface{}{ + (*GameInviteQiecuoReq)(nil), // 0: GameInviteQiecuoReq + (*GameInviteQiecuoResp)(nil), // 1: GameInviteQiecuoResp + (*GameInviteAcceptReq)(nil), // 2: GameInviteAcceptReq + (*GameInviteAcceptResp)(nil), // 3: GameInviteAcceptResp + (*GameInviteRefuseReq)(nil), // 4: GameInviteRefuseReq + (*GameInviteRefuseResp)(nil), // 5: GameInviteRefuseResp + (*GameInviteQiecuonotifyPush)(nil), // 6: GameInviteQiecuonotifyPush + (*BaseUserInfo)(nil), // 7: BaseUserInfo +} +var file_gameinvite_gameinvite_msg_proto_depIdxs = []int32{ + 7, // 0: GameInviteQiecuonotifyPush.user:type_name -> BaseUserInfo + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_gameinvite_gameinvite_msg_proto_init() } +func file_gameinvite_gameinvite_msg_proto_init() { + if File_gameinvite_gameinvite_msg_proto != nil { + return + } + file_comm_proto_init() + if !protoimpl.UnsafeEnabled { + file_gameinvite_gameinvite_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteQiecuoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gameinvite_gameinvite_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteQiecuoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gameinvite_gameinvite_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteAcceptReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gameinvite_gameinvite_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteAcceptResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gameinvite_gameinvite_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteRefuseReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gameinvite_gameinvite_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteRefuseResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gameinvite_gameinvite_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GameInviteQiecuonotifyPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_gameinvite_gameinvite_msg_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_gameinvite_gameinvite_msg_proto_goTypes, + DependencyIndexes: file_gameinvite_gameinvite_msg_proto_depIdxs, + MessageInfos: file_gameinvite_gameinvite_msg_proto_msgTypes, + }.Build() + File_gameinvite_gameinvite_msg_proto = out.File + file_gameinvite_gameinvite_msg_proto_rawDesc = nil + file_gameinvite_gameinvite_msg_proto_goTypes = nil + file_gameinvite_gameinvite_msg_proto_depIdxs = nil +}