From a325224d955f6a51ae9d6e898577fc0414ee0054 Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Thu, 13 Oct 2022 18:49:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E9=98=B5=E5=AE=B9=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/user/api.go | 2 + modules/user/api_settingteam.go | 41 +++++ modules/user/api_showteam.go | 27 +++ pb/user_msg.pb.go | 289 +++++++++++++++++++++++++++++--- pb/userexpand.pb.go | 24 ++- 5 files changed, 353 insertions(+), 30 deletions(-) create mode 100644 modules/user/api_settingteam.go create mode 100644 modules/user/api_showteam.go diff --git a/modules/user/api.go b/modules/user/api.go index 4f0db45db..9d4ad715d 100644 --- a/modules/user/api.go +++ b/modules/user/api.go @@ -26,6 +26,8 @@ const ( UserSubTYpeModifyBgp = "modifybgp" //修改背景 UserSubTypeInfo = "info" //用户信息 UserSubTypeBattlerecord = "battlerecord" //玩家战斗记录 + UserSubTypeShowteam = "showteam" //展示阵容 + UserSubTypeSettingteam = "settingteam" //设置阵容展示 ) type apiComp struct { diff --git a/modules/user/api_settingteam.go b/modules/user/api_settingteam.go new file mode 100644 index 000000000..2768e4937 --- /dev/null +++ b/modules/user/api_settingteam.go @@ -0,0 +1,41 @@ +package user + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +func (this *apiComp) SettingteamCheck(session comm.IUserSession, req *pb.UserSettingteamReq) (code pb.ErrorCode) { + if len(req.HeroObjIds) == 0 { + code = pb.ErrorCode_ReqParameterError + } + return +} + +func (this *apiComp) Settingteam(session comm.IUserSession, req *pb.UserSettingteamReq) (code pb.ErrorCode, data proto.Message) { + if code = this.SettingteamCheck(session, req); code != pb.ErrorCode_Success { + return + } + + rsp := &pb.UserSettingteamResp{} + if result, err := this.module.modelExpand.GetUserExpand(session.GetUserId()); err != nil { + this.module.Errorf("uid:%v err: %v", session.GetUserId(), err) + return + } else { + result.TeamHeroIds = req.HeroObjIds + update := map[string]interface{}{ + "teamHeroIds": req.HeroObjIds, + } + if err := this.module.modelExpand.ChangeUserExpand(session.GetUserId(), update); err != nil { + code = pb.ErrorCode_DBError + return + } + } + rsp.Uid = session.GetUserId() + if err := session.SendMsg(string(this.module.GetType()), UserSubTypeSettingteam, rsp); err != nil { + code = pb.ErrorCode_SystemError + } + return +} diff --git a/modules/user/api_showteam.go b/modules/user/api_showteam.go new file mode 100644 index 000000000..743e9279d --- /dev/null +++ b/modules/user/api_showteam.go @@ -0,0 +1,27 @@ +package user + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +func (this *apiComp) ShowteamCheck(session comm.IUserSession, req *pb.UserShowteamReq) (code pb.ErrorCode) { + return +} + +func (this *apiComp) Showteam(session comm.IUserSession, req *pb.UserShowteamReq) (code pb.ErrorCode, data proto.Message) { + result, err := this.module.modelExpand.GetUserExpand(session.GetUserId()) + if err != nil { + this.module.Errorf("uid:%v err: %v", session.GetUserId(), err) + return + } + + rsp := &pb.UserShowteamResp{} + rsp.HeroObjIds = result.TeamHeroIds + if err := session.SendMsg(string(this.module.GetType()), UserSubTypeShowteam, rsp); err != nil { + code = pb.ErrorCode_SystemError + } + return +} diff --git a/pb/user_msg.pb.go b/pb/user_msg.pb.go index d8841fae3..556830ecb 100644 --- a/pb/user_msg.pb.go +++ b/pb/user_msg.pb.go @@ -1772,6 +1772,187 @@ func (x *UserBattlerecordResp) GetVikingRecord() []*DBVikingRank { return nil } +// 玩家阵容展示设置 +type UserSettingteamReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeroObjIds []string `protobuf:"bytes,2,rep,name=heroObjIds,proto3" json:"heroObjIds"` //英雄ID +} + +func (x *UserSettingteamReq) Reset() { + *x = UserSettingteamReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_msg_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSettingteamReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSettingteamReq) ProtoMessage() {} + +func (x *UserSettingteamReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_msg_proto_msgTypes[35] + 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 UserSettingteamReq.ProtoReflect.Descriptor instead. +func (*UserSettingteamReq) Descriptor() ([]byte, []int) { + return file_user_user_msg_proto_rawDescGZIP(), []int{35} +} + +func (x *UserSettingteamReq) GetHeroObjIds() []string { + if x != nil { + return x.HeroObjIds + } + return nil +} + +type UserSettingteamResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` +} + +func (x *UserSettingteamResp) Reset() { + *x = UserSettingteamResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_msg_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSettingteamResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSettingteamResp) ProtoMessage() {} + +func (x *UserSettingteamResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_msg_proto_msgTypes[36] + 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 UserSettingteamResp.ProtoReflect.Descriptor instead. +func (*UserSettingteamResp) Descriptor() ([]byte, []int) { + return file_user_user_msg_proto_rawDescGZIP(), []int{36} +} + +func (x *UserSettingteamResp) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +//玩家阵容展示 +type UserShowteamReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UserShowteamReq) Reset() { + *x = UserShowteamReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_msg_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserShowteamReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserShowteamReq) ProtoMessage() {} + +func (x *UserShowteamReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_msg_proto_msgTypes[37] + 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 UserShowteamReq.ProtoReflect.Descriptor instead. +func (*UserShowteamReq) Descriptor() ([]byte, []int) { + return file_user_user_msg_proto_rawDescGZIP(), []int{37} +} + +type UserShowteamResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeroObjIds []string `protobuf:"bytes,1,rep,name=heroObjIds,proto3" json:"heroObjIds"` //英雄ID +} + +func (x *UserShowteamResp) Reset() { + *x = UserShowteamResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_msg_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserShowteamResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserShowteamResp) ProtoMessage() {} + +func (x *UserShowteamResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_msg_proto_msgTypes[38] + 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 UserShowteamResp.ProtoReflect.Descriptor instead. +func (*UserShowteamResp) Descriptor() ([]byte, []int) { + return file_user_user_msg_proto_rawDescGZIP(), []int{38} +} + +func (x *UserShowteamResp) GetHeroObjIds() []string { + if x != nil { + return x.HeroObjIds + } + return nil +} + var File_user_user_msg_proto protoreflect.FileDescriptor var file_user_user_msg_proto_rawDesc = []byte{ @@ -1904,8 +2085,18 @@ var file_user_user_msg_proto_rawDesc = []byte{ 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x0c, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x6f, 0x72, 0x64, 0x22, 0x34, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, + 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x13, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x77, 0x74, + 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x22, 0x32, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, + 0x6f, 0x77, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, + 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x68, 0x65, 0x72, 0x6f, 0x4f, 0x62, 0x6a, 0x49, 0x64, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1920,7 +2111,7 @@ func file_user_user_msg_proto_rawDescGZIP() []byte { return file_user_user_msg_proto_rawDescData } -var file_user_user_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 35) +var file_user_user_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 39) var file_user_user_msg_proto_goTypes = []interface{}{ (*UserLoginReq)(nil), // 0: UserLoginReq (*UserLoginResp)(nil), // 1: UserLoginResp @@ -1957,27 +2148,31 @@ var file_user_user_msg_proto_goTypes = []interface{}{ (*UserModifysignResp)(nil), // 32: UserModifysignResp (*UserBattlerecordReq)(nil), // 33: UserBattlerecordReq (*UserBattlerecordResp)(nil), // 34: UserBattlerecordResp - (*DBUser)(nil), // 35: DBUser - (*DBUserExpand)(nil), // 36: DBUserExpand - (ErrorCode)(0), // 37: ErrorCode - (*CacheUser)(nil), // 38: CacheUser - (*DBUserSetting)(nil), // 39: DBUserSetting - (*DBPagodaRecord)(nil), // 40: DBPagodaRecord - (*DBHuntingRank)(nil), // 41: DBHuntingRank - (*DBVikingRank)(nil), // 42: DBVikingRank + (*UserSettingteamReq)(nil), // 35: UserSettingteamReq + (*UserSettingteamResp)(nil), // 36: UserSettingteamResp + (*UserShowteamReq)(nil), // 37: UserShowteamReq + (*UserShowteamResp)(nil), // 38: UserShowteamResp + (*DBUser)(nil), // 39: DBUser + (*DBUserExpand)(nil), // 40: DBUserExpand + (ErrorCode)(0), // 41: ErrorCode + (*CacheUser)(nil), // 42: CacheUser + (*DBUserSetting)(nil), // 43: DBUserSetting + (*DBPagodaRecord)(nil), // 44: DBPagodaRecord + (*DBHuntingRank)(nil), // 45: DBHuntingRank + (*DBVikingRank)(nil), // 46: DBVikingRank } var file_user_user_msg_proto_depIdxs = []int32{ - 35, // 0: UserLoginResp.data:type_name -> DBUser - 36, // 1: UserLoginResp.ex:type_name -> DBUserExpand - 35, // 2: UserInfoResp.data:type_name -> DBUser - 36, // 3: UserInfoResp.ex:type_name -> DBUserExpand - 37, // 4: UserRegisterResp.Code:type_name -> ErrorCode - 38, // 5: UserLoadResp.data:type_name -> CacheUser - 39, // 6: UserGetSettingResp.setting:type_name -> DBUserSetting - 39, // 7: UserUpdateSettingReq.setting:type_name -> DBUserSetting - 40, // 8: UserBattlerecordResp.pagodaRecord:type_name -> DBPagodaRecord - 41, // 9: UserBattlerecordResp.huntingRecord:type_name -> DBHuntingRank - 42, // 10: UserBattlerecordResp.vikingRecord:type_name -> DBVikingRank + 39, // 0: UserLoginResp.data:type_name -> DBUser + 40, // 1: UserLoginResp.ex:type_name -> DBUserExpand + 39, // 2: UserInfoResp.data:type_name -> DBUser + 40, // 3: UserInfoResp.ex:type_name -> DBUserExpand + 41, // 4: UserRegisterResp.Code:type_name -> ErrorCode + 42, // 5: UserLoadResp.data:type_name -> CacheUser + 43, // 6: UserGetSettingResp.setting:type_name -> DBUserSetting + 43, // 7: UserUpdateSettingReq.setting:type_name -> DBUserSetting + 44, // 8: UserBattlerecordResp.pagodaRecord:type_name -> DBPagodaRecord + 45, // 9: UserBattlerecordResp.huntingRecord:type_name -> DBHuntingRank + 46, // 10: UserBattlerecordResp.vikingRecord:type_name -> DBVikingRank 11, // [11:11] is the sub-list for method output_type 11, // [11:11] is the sub-list for method input_type 11, // [11:11] is the sub-list for extension type_name @@ -2417,6 +2612,54 @@ func file_user_user_msg_proto_init() { return nil } } + file_user_user_msg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSettingteamReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_msg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSettingteamResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_msg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserShowteamReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserShowteamResp); 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{ @@ -2424,7 +2667,7 @@ func file_user_user_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_user_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 35, + NumMessages: 39, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/userexpand.pb.go b/pb/userexpand.pb.go index f4df432d1..aebe9c6a0 100644 --- a/pb/userexpand.pb.go +++ b/pb/userexpand.pb.go @@ -44,6 +44,7 @@ type DBUserExpand struct { LoginContinueCount int32 `protobuf:"varint,20,opt,name=loginContinueCount,proto3" json:"loginContinueCount"` //@go_tasgs(`bson:"loginContinueCount"`) 连续登录天数 CompletePagoda bool `protobuf:"varint,21,opt,name=completePagoda,proto3" json:"completePagoda" bson:"completePagoda"` //通关普通塔 RtaskId int32 `protobuf:"varint,22,opt,name=rtaskId,proto3" json:"rtaskId" bson:"rtaskId"` // 当前完成的随机任务ID + TeamHeroIds []string `protobuf:"bytes,23,rep,name=teamHeroIds,proto3" json:"teamHeroIds" bson:"teamHeroIds"` //阵容英雄IDs } func (x *DBUserExpand) Reset() { @@ -204,11 +205,18 @@ func (x *DBUserExpand) GetRtaskId() int32 { return 0 } +func (x *DBUserExpand) GetTeamHeroIds() []string { + if x != nil { + return x.TeamHeroIds + } + return nil +} + var File_userexpand_proto protoreflect.FileDescriptor var file_userexpand_proto_rawDesc = []byte{ 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xc2, 0x05, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, + 0x74, 0x6f, 0x22, 0xe4, 0x05, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 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, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x61, @@ -248,12 +256,14 @@ var file_userexpand_proto_rawDesc = []byte{ 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x1a, 0x39, 0x0a, 0x0b, - 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 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, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x74, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x73, 0x1a, 0x39, + 0x0a, 0x0b, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 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 (