diff --git a/comm/const.go b/comm/const.go index 08f7e2c05..b57196b81 100644 --- a/comm/const.go +++ b/comm/const.go @@ -286,6 +286,9 @@ const ( //活动礼包 TableActivityGiftbag = "activitygiftbag" + + ///记录用户爬塔排行数据 + TableRaceRecord = "pagodarace" ) // RPC服务接口定义处 diff --git a/comm/imodule.go b/comm/imodule.go index b0d17ff98..0d6dfcadb 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -314,8 +314,7 @@ type ( ModifyPagodaFloor(session IUserSession, d1 int32, d2 int32) (errdata *pb.ErrorData) CheckUserBasePagodaInfo(uid string) (data *pb.DBPagodaRecord) // 查询玩家最佳通关记录 CheckCompletePagoda(uid string) (bComplete bool) // 校验是否通关普通塔 - // Check Rtype84 Rtype85 Rtype86 - CheckPagodaMaxFloor(uid string, pagodaType int32) int32 // 查询塔通关难度type 1 表示普通塔 2 赛季塔 + ///红点 IGetReddot } diff --git a/modules/mline/model_mainline.go b/modules/mline/model_mainline.go index c44a8c0ed..02f7a0215 100644 --- a/modules/mline/model_mainline.go +++ b/modules/mline/model_mainline.go @@ -67,10 +67,12 @@ func (this *ModelMline) cleanChapter(uId string) (err error) { // 清除数据 func (this *ModelMline) cleanChapterDataById(uId string, ids ...string) (err error) { - this.module.Debugf("cleanChapterDataById:%s,%v", uId, ids) - if err = this.DelListlds(uId, ids); err != nil { - this.module.Errorf("err:%v", err) - return + if len(ids) > 0 { + this.module.Debugf("cleanChapterDataById:%s,%v", uId, ids) + if err = this.DelListlds(uId, ids); err != nil { + this.module.Errorf("err:%v", err) + return + } } return nil } diff --git a/modules/pagoda/api.go b/modules/pagoda/api.go index 0ccb8dc79..de24d4aee 100644 --- a/modules/pagoda/api.go +++ b/modules/pagoda/api.go @@ -13,6 +13,7 @@ const ( PagodaChallengeOverResp = "challengeover" PagodaGetRewardResp = "getreward" PagodaRankListResp = "ranklist" + PagodaCrossRaceRankListReq = "crossraceranklist" PagodaActivateResp = "activate" PagodaWarOrderResp = "warorder" PagodaChallengeRaceResp = "challengerace" diff --git a/modules/pagoda/api_crossrank.go b/modules/pagoda/api_crossrank.go new file mode 100644 index 000000000..c051bbefc --- /dev/null +++ b/modules/pagoda/api_crossrank.go @@ -0,0 +1,56 @@ +package pagoda + +import ( + "context" + "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/redis/pipe" + "go_dreamfactory/pb" + "strconv" + + "github.com/go-redis/redis/v8" +) + +//参数校验 +func (this *apiComp) CrossRaceRankListCheck(session comm.IUserSession, req *pb.PagodaCrossRaceRankListReq) (errdata *pb.ErrorData) { + if req.Raceid == 0 { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } + return +} + +func (this *apiComp) CrossRaceRankList(session comm.IUserSession, req *pb.PagodaCrossRaceRankListReq) (errdata *pb.ErrorData) { + var ( + szRank []*pb.DBPagodaRecord + rd *redis.StringSliceCmd + ) + if errdata = this.CrossRaceRankListCheck(session, req); errdata != nil { + return + } + + if this.module.IsCross() { + var ( + pipe *pipe.RedisPipe = this.module.modelPagoda.Redis.RedisPipe(context.TODO()) + ) + + rd = pipe.ZRange("race"+strconv.Itoa(int(req.Raceid)), 0, comm.MaxRankList) + + if _, err := pipe.Exec(); err != nil { + this.module.Errorln(err) + return + } + _dataList := rd.Val() + for _, v := range _dataList { + result := &pb.DBPagodaRecord{} + if err := this.module.modulerank.GetListObj(session.GetUserId(), v, result); err == nil { + szRank = append(szRank, result) + } + } + } + + session.SendMsg(string(this.module.GetType()), PagodaCrossRaceRankListReq, &pb.PagodaCrossRaceRankListResp{Ranks: szRank}) + return +} diff --git a/modules/pagoda/api_racechallengeover.go b/modules/pagoda/api_racechallengeover.go index 27213f46b..36ef5eec2 100644 --- a/modules/pagoda/api_racechallengeover.go +++ b/modules/pagoda/api_racechallengeover.go @@ -4,6 +4,12 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" + "go_dreamfactory/sys/db" + "math" + "strconv" + "time" + + "go.mongodb.org/mongo-driver/bson/primitive" ) // 参数校验 @@ -43,25 +49,6 @@ func (this *apiComp) ChallengeRaceOver(session comm.IUserSession, req *pb.Pagoda return } - // 判断开启时间 - // curWeekDay := int32(configure.Now().Weekday()) - // if curWeekDay == 0 { - // curWeekDay = 7 - // } - // for _, v := range conf.Openingtime { - // if v == curWeekDay { - // timeCheckOk = true - // break - // } - // } - // if !timeCheckOk { - // errdata = &pb.ErrorData{ - // Code: pb.ErrorCode_PagodaTimeError, - // Title: pb.ErrorCode_PagodaTimeError.ToString(), - // } - // return - // } - race, err = this.module.modelRacePagoda.getPagodaRaceList(session.GetUserId()) if err != nil { errdata = &pb.ErrorData{ @@ -138,6 +125,62 @@ func (this *apiComp) ChallengeRaceOver(session comm.IUserSession, req *pb.Pagoda Reward: atno, }) + // 记录爬塔明细数据 + if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { + leadpos := req.Report.Info.Redflist[0].Leadpos + szLine := make([]*pb.LineUp, 0) + for _, v := range req.Report.Info.Redflist[0].Team { + if v != nil { + szLine = append(szLine, &pb.LineUp{ + Cid: v.HeroID, + Star: v.Star, + Lv: v.Lv, + }) + } + } + // 数据直接插入跨服数据库中 + uid := session.GetUserId() + userinfo := this.module.ModuleUser.GetUser(session.GetUserId()) + newData := &pb.DBPagodaRecord{ + Id: primitive.NewObjectID().Hex(), + Uid: session.GetUserId(), + PagodaId: race.Race[conf.Restriction].Curfloor, + Type: conf.Restriction, + Nickname: userinfo.Name, + Icon: "", + Lv: userinfo.Lv, + Leadpos: leadpos, + Line: szLine, + CostTime: req.Report.Costtime, + Tab: 0, + } + + // 数据写到跨服中 + if conn_, err := db.Cross(); err == nil { + dbModel := db.NewDBModel(comm.TableRaceRecord, time.Hour, conn_) + result := make([]*pb.DBPagodaRecord, 0) + bRet := false + dbModel.GetList(uid, &result) + for _, v := range result { + if v.Type == conf.Restriction { + newData.Id = v.Id + mapRankData := make(map[string]interface{}, 0) + mapRankData["pagodaId"] = race.Race[conf.Restriction].Curfloor + mapRankData["costTime"] = req.Report.Costtime + dbModel.ChangeList(uid, newData.Id, mapRankData) + bRet = true + break + } + } + if !bRet { + dbModel.AddList(uid, newData.Id, newData) + } + + } else { + this.module.Errorf("db crosserr :%v", err) + } + this.module.SetPagodaRankList("race"+strconv.Itoa(int(conf.Restriction)), int64(math.MaxInt32-newData.CostTime), newData.Id) + } // 任务相关 //go this.module.ModuleBuried.TriggerBuried(session.Clone(), comm.GetBuriedParam(comm.Rtype168, pagoda.Data[conf.Tab], conf.Tab)) return diff --git a/modules/pagoda/api_ranklist.go b/modules/pagoda/api_ranklist.go index 5215d31e5..644922f60 100644 --- a/modules/pagoda/api_ranklist.go +++ b/modules/pagoda/api_ranklist.go @@ -12,7 +12,13 @@ import ( //参数校验 func (this *apiComp) RankListCheck(session comm.IUserSession, req *pb.PagodaRankListReq) (errdata *pb.ErrorData) { - + if req.Cid == 0 { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + return + } return } @@ -30,9 +36,8 @@ func (this *apiComp) RankList(session comm.IUserSession, req *pb.PagodaRankListR var ( pipe *pipe.RedisPipe = this.module.modelPagoda.Redis.RedisPipe(context.TODO()) ) - if req.Cid != 0 { - rd = pipe.ZRange("pagodaList"+strconv.Itoa(int(req.Cid)), 0, comm.MaxRankList) - } + + rd = pipe.ZRange("pagodaList"+strconv.Itoa(int(req.Cid)), 0, comm.MaxRankList) if _, err := pipe.Exec(); err != nil { this.module.Errorln(err) diff --git a/modules/pagoda/model_rank.go b/modules/pagoda/model_rank.go index 4fbc09e29..76debde2c 100644 --- a/modules/pagoda/model_rank.go +++ b/modules/pagoda/model_rank.go @@ -51,7 +51,7 @@ func (this *ModelRank) getPagodaRankListByFloorid(uid string, cid int32) *pb.DBP } for _, v := range pagodaRank { if conf, err := this.modulePagoda.configure.GetPagodaConfigData(cid); err == nil { - if v.PagodaId == conf.LayerNum && v.Tab == conf.Tab { + if v.Tab == conf.Tab { return v } } diff --git a/modules/pagoda/module.go b/modules/pagoda/module.go index 37305b021..8a15c090e 100644 --- a/modules/pagoda/module.go +++ b/modules/pagoda/module.go @@ -184,20 +184,6 @@ func (this *Pagoda) Rpc_ModuleSeasonPagodaReward(ctx context.Context, args *pb.E // this.modulerank.seasonSettlement() } -// 给随机任务提供的接口查询当前塔的通关层数 -func (this *Pagoda) CheckPagodaMaxFloor(uid string, pagodaType int32) int32 { - if pagodaType == 1 { - if list, err := this.modelPagoda.getPagodaList(uid); err != nil { - return list.PagodaId - } - } else if pagodaType == 2 { - if pagoda, err := this.modelPagoda.getPagodaList(uid); err != nil { - return pagoda.PagodaId - } - } - return 0 -} - func (this *Pagoda) GetSeasonData() (endSeasonTime int64) { _, endSeasonTime = utils.GetMonthStartEnd() //+ int64((6-d)*3600*24) diff --git a/pb/pagoda_msg.pb.go b/pb/pagoda_msg.pb.go index b8b04e2f2..72432ef11 100644 --- a/pb/pagoda_msg.pb.go +++ b/pb/pagoda_msg.pb.go @@ -1100,6 +1100,101 @@ func (x *PagodaGetRaceResp) GetRace() map[int32]*RaceData { return nil } +// 阵容跨服排行榜 +type PagodaCrossRaceRankListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Raceid int32 `protobuf:"varint,1,opt,name=raceid,proto3" json:"raceid"` // 阵容id +} + +func (x *PagodaCrossRaceRankListReq) Reset() { + *x = PagodaCrossRaceRankListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pagoda_pagoda_msg_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PagodaCrossRaceRankListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PagodaCrossRaceRankListReq) ProtoMessage() {} + +func (x *PagodaCrossRaceRankListReq) ProtoReflect() protoreflect.Message { + mi := &file_pagoda_pagoda_msg_proto_msgTypes[22] + 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 PagodaCrossRaceRankListReq.ProtoReflect.Descriptor instead. +func (*PagodaCrossRaceRankListReq) Descriptor() ([]byte, []int) { + return file_pagoda_pagoda_msg_proto_rawDescGZIP(), []int{22} +} + +func (x *PagodaCrossRaceRankListReq) GetRaceid() int32 { + if x != nil { + return x.Raceid + } + return 0 +} + +type PagodaCrossRaceRankListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ranks []*DBPagodaRecord `protobuf:"bytes,1,rep,name=ranks,proto3" json:"ranks"` +} + +func (x *PagodaCrossRaceRankListResp) Reset() { + *x = PagodaCrossRaceRankListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pagoda_pagoda_msg_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PagodaCrossRaceRankListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PagodaCrossRaceRankListResp) ProtoMessage() {} + +func (x *PagodaCrossRaceRankListResp) ProtoReflect() protoreflect.Message { + mi := &file_pagoda_pagoda_msg_proto_msgTypes[23] + 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 PagodaCrossRaceRankListResp.ProtoReflect.Descriptor instead. +func (*PagodaCrossRaceRankListResp) Descriptor() ([]byte, []int) { + return file_pagoda_pagoda_msg_proto_rawDescGZIP(), []int{23} +} + +func (x *PagodaCrossRaceRankListResp) GetRanks() []*DBPagodaRecord { + if x != nil { + return x.Ranks + } + return nil +} + var File_pagoda_pagoda_msg_proto protoreflect.FileDescriptor var file_pagoda_pagoda_msg_proto_rawDesc = []byte{ @@ -1194,8 +1289,16 @@ var file_pagoda_pagoda_msg_proto_rawDesc = []byte{ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x52, 0x61, 0x63, 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, + 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x34, 0x0a, 0x1a, + 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x61, 0x63, 0x65, 0x52, + 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, + 0x63, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x63, 0x65, + 0x69, 0x64, 0x22, 0x44, 0x0a, 0x1b, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x72, 0x6f, 0x73, + 0x73, 0x52, 0x61, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x25, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1210,7 +1313,7 @@ func file_pagoda_pagoda_msg_proto_rawDescGZIP() []byte { return file_pagoda_pagoda_msg_proto_rawDescData } -var file_pagoda_pagoda_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_pagoda_pagoda_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_pagoda_pagoda_msg_proto_goTypes = []interface{}{ (*PagodaGetListReq)(nil), // 0: PagodaGetListReq (*PagodaGetListResp)(nil), // 1: PagodaGetListResp @@ -1234,40 +1337,43 @@ var file_pagoda_pagoda_msg_proto_goTypes = []interface{}{ (*PagodaChallengeRaceOverResp)(nil), // 19: PagodaChallengeRaceOverResp (*PagodaGetRaceReq)(nil), // 20: PagodaGetRaceReq (*PagodaGetRaceResp)(nil), // 21: PagodaGetRaceResp - nil, // 22: PagodaGetRaceResp.RaceEntry - (*DBPagoda)(nil), // 23: DBPagoda - (*BattleFormation)(nil), // 24: BattleFormation - (*BattleInfo)(nil), // 25: BattleInfo - (*BattleReport)(nil), // 26: BattleReport - (*DBPagodaRecord)(nil), // 27: DBPagodaRecord - (*UserAssets)(nil), // 28: UserAssets - (*RaceData)(nil), // 29: RaceData - (*UserAtno)(nil), // 30: UserAtno + (*PagodaCrossRaceRankListReq)(nil), // 22: PagodaCrossRaceRankListReq + (*PagodaCrossRaceRankListResp)(nil), // 23: PagodaCrossRaceRankListResp + nil, // 24: PagodaGetRaceResp.RaceEntry + (*DBPagoda)(nil), // 25: DBPagoda + (*BattleFormation)(nil), // 26: BattleFormation + (*BattleInfo)(nil), // 27: BattleInfo + (*BattleReport)(nil), // 28: BattleReport + (*DBPagodaRecord)(nil), // 29: DBPagodaRecord + (*UserAssets)(nil), // 30: UserAssets + (*RaceData)(nil), // 31: RaceData + (*UserAtno)(nil), // 32: UserAtno } var file_pagoda_pagoda_msg_proto_depIdxs = []int32{ - 23, // 0: PagodaGetListResp.data:type_name -> DBPagoda - 23, // 1: PagodaGetRewardResp.data:type_name -> DBPagoda - 24, // 2: PagodaChallengeReq.battle:type_name -> BattleFormation - 25, // 3: PagodaChallengeResp.info:type_name -> BattleInfo - 26, // 4: PagodaChallengeOverReq.report:type_name -> BattleReport - 23, // 5: PagodaChallengeOverResp.data:type_name -> DBPagoda - 27, // 6: PagodaRankListResp.ranks:type_name -> DBPagodaRecord - 27, // 7: PagodaQueryRecordResp.data:type_name -> DBPagodaRecord - 23, // 8: PagodaActivateResp.data:type_name -> DBPagoda - 23, // 9: PagodaWarOrderResp.data:type_name -> DBPagoda - 28, // 10: PagodaWarOrderResp.itmes:type_name -> UserAssets - 24, // 11: PagodaChallengeRaceReq.battle:type_name -> BattleFormation - 25, // 12: PagodaChallengeRaceResp.info:type_name -> BattleInfo - 26, // 13: PagodaChallengeRaceOverReq.report:type_name -> BattleReport - 29, // 14: PagodaChallengeRaceOverResp.race:type_name -> RaceData - 30, // 15: PagodaChallengeRaceOverResp.reward:type_name -> UserAtno - 22, // 16: PagodaGetRaceResp.race:type_name -> PagodaGetRaceResp.RaceEntry - 29, // 17: PagodaGetRaceResp.RaceEntry.value:type_name -> RaceData - 18, // [18:18] is the sub-list for method output_type - 18, // [18:18] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 25, // 0: PagodaGetListResp.data:type_name -> DBPagoda + 25, // 1: PagodaGetRewardResp.data:type_name -> DBPagoda + 26, // 2: PagodaChallengeReq.battle:type_name -> BattleFormation + 27, // 3: PagodaChallengeResp.info:type_name -> BattleInfo + 28, // 4: PagodaChallengeOverReq.report:type_name -> BattleReport + 25, // 5: PagodaChallengeOverResp.data:type_name -> DBPagoda + 29, // 6: PagodaRankListResp.ranks:type_name -> DBPagodaRecord + 29, // 7: PagodaQueryRecordResp.data:type_name -> DBPagodaRecord + 25, // 8: PagodaActivateResp.data:type_name -> DBPagoda + 25, // 9: PagodaWarOrderResp.data:type_name -> DBPagoda + 30, // 10: PagodaWarOrderResp.itmes:type_name -> UserAssets + 26, // 11: PagodaChallengeRaceReq.battle:type_name -> BattleFormation + 27, // 12: PagodaChallengeRaceResp.info:type_name -> BattleInfo + 28, // 13: PagodaChallengeRaceOverReq.report:type_name -> BattleReport + 31, // 14: PagodaChallengeRaceOverResp.race:type_name -> RaceData + 32, // 15: PagodaChallengeRaceOverResp.reward:type_name -> UserAtno + 24, // 16: PagodaGetRaceResp.race:type_name -> PagodaGetRaceResp.RaceEntry + 29, // 17: PagodaCrossRaceRankListResp.ranks:type_name -> DBPagodaRecord + 31, // 18: PagodaGetRaceResp.RaceEntry.value:type_name -> RaceData + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_pagoda_pagoda_msg_proto_init() } @@ -1543,6 +1649,30 @@ func file_pagoda_pagoda_msg_proto_init() { return nil } } + file_pagoda_pagoda_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PagodaCrossRaceRankListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pagoda_pagoda_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PagodaCrossRaceRankListResp); 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{ @@ -1550,7 +1680,7 @@ func file_pagoda_pagoda_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pagoda_pagoda_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 23, + NumMessages: 25, NumExtensions: 0, NumServices: 0, },