diff --git a/comm/const.go b/comm/const.go index 35af708c6..f92fcb518 100644 --- a/comm/const.go +++ b/comm/const.go @@ -82,6 +82,7 @@ const ( ModuleDispatch core.M_Modules = "dispatch" //武馆派遣 ModulePractice core.M_Modules = "practice" //熊猫武馆 练功系统 ModulePandaAtlas core.M_Modules = "atlas" //熊猫图鉴 + ModuleParkour core.M_Modules = "parkour" //跑酷系统 ) // 数据表名定义处 diff --git a/modules/parkour/module.go b/modules/parkour/module.go new file mode 100644 index 000000000..ec8ab6f76 --- /dev/null +++ b/modules/parkour/module.go @@ -0,0 +1,41 @@ +package parkour + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/base" + "go_dreamfactory/lego/core" + "go_dreamfactory/modules" +) + +/* +模块名:跑酷系统 +描述:捕羊大赛 +开发:李伟 +*/ +func NewModule() core.IModule { + m := new(Parkour) + return m +} + +type Parkour struct { + modules.ModuleBase + service base.IRPCXService +} + +//模块名 +func (this *Parkour) GetType() core.M_Modules { + return comm.ModuleParkour +} + +//模块初始化 +func (this *Parkour) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { + err = this.ModuleBase.Init(service, module, options) + this.service = service.(base.IRPCXService) + return +} + +func (this *Parkour) Start() (err error) { + err = this.ModuleBase.Start() + + return +} diff --git a/modules/practice/api_qiecuo.go b/modules/practice/api_qiecuo.go index ea99ac421..e6b508afc 100644 --- a/modules/practice/api_qiecuo.go +++ b/modules/practice/api_qiecuo.go @@ -25,6 +25,7 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq err error result *pb.DBPracticeQiecuoRecord fresult *pb.DBPracticeQiecuoRecord + user *pb.DBUser keep bool ) @@ -47,6 +48,12 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq code = pb.ErrorCode_PracticeQiecuoing return } + + if user = this.module.ModuleUser.GetUser(session.GetUserId()); user == nil { + code = pb.ErrorCode_DBError + return + } + keep = false for _, v := range result.Targets { if v.Uid == req.Fid { @@ -75,7 +82,7 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq } this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", - &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 1}, req.Fid) + &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), Name: user.Name, NotifyType: 1}, req.Fid) return } diff --git a/modules/practice/modelPandata.go b/modules/practice/modelPandata.go index 6f8259a7c..b6a6aaacf 100644 --- a/modules/practice/modelPandata.go +++ b/modules/practice/modelPandata.go @@ -45,10 +45,10 @@ func (this *modelPandata) queryUserMartialhall(uid string) (result *pb.DBPractic Knapsack: make(map[string]int32), Gymaction: 0, Gymrefresh: 0, - Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: 2, Lv: 1}, + Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: 0, Lv: 1}, Pillar2: &pb.DBPracticePillar{Index: 2, Lv: 1}, Pillar3: &pb.DBPracticePillar{Index: 3, Lv: 1}, - Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 2, Lv: 1}, + Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 0, Lv: 1}, Statuers: make([]*pb.DBPracticeStatuer, 0), } if err = this.refreshnpc(result); err != nil { diff --git a/modules/practice/module.go b/modules/practice/module.go index db1077e9f..fb6d24153 100644 --- a/modules/practice/module.go +++ b/modules/practice/module.go @@ -2,7 +2,6 @@ package practice import ( "context" - "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" @@ -11,9 +10,7 @@ import ( "go_dreamfactory/modules" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" - cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/sys/db" - "strconv" "time" "go.mongodb.org/mongo-driver/bson/primitive" @@ -134,10 +131,10 @@ func (this *Practice) AddItems(session comm.IUserSession, items map[string]int32 Knapsack: make(map[string]int32), Gymaction: 0, Gymrefresh: 0, - Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: 2, Lv: 1}, + Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: 0, Lv: 1}, Pillar2: &pb.DBPracticePillar{Index: 2, Lv: 1}, Pillar3: &pb.DBPracticePillar{Index: 3, Lv: 1}, - Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 2, Lv: 1}, + Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 0, Lv: 1}, Statuers: make([]*pb.DBPracticeStatuer, 0), } id = make([]string, 0) @@ -177,23 +174,37 @@ func (this *Practice) TaskComplete(session comm.IUserSession, taskid int32) { log.Field{Key: "session", Value: session.GetUserId()}, log.Field{Key: "taskid", Value: taskid}, ) + // if !this.IsCross() { + // err := this.service.AcrossClusterRpcCall(context.Background(), this.GetCrossTag(), + // comm.Service_Worker, string(comm.RPC_ModulePracticeUnLockPillar), + // &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: fmt.Sprintf("%d", taskid)}, &pb.EmptyResp{}) + // if err != nil { + // this.Errorln(err) + // return + // } + // } else { + // this.RPC_ModulePracticeUnLockPillar(context.Background(), &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: fmt.Sprintf("%d", taskid)}, &pb.EmptyResp{}) + // } +} + +func (this *Practice) OpenCmdNotice(session comm.IUserSession, key string) { + this.Debug("OpenCmdNotice", + log.Field{Key: "session", Value: session.GetUserId()}, + log.Field{Key: "key", Value: key}, + ) if !this.IsCross() { err := this.service.AcrossClusterRpcCall(context.Background(), this.GetCrossTag(), comm.Service_Worker, string(comm.RPC_ModulePracticeUnLockPillar), - &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: fmt.Sprintf("%d", taskid)}, &pb.EmptyResp{}) + &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: key}, &pb.EmptyResp{}) if err != nil { this.Errorln(err) return } } else { - this.RPC_ModulePracticeUnLockPillar(context.Background(), &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: fmt.Sprintf("%d", taskid)}, &pb.EmptyResp{}) + this.RPC_ModulePracticeUnLockPillar(context.Background(), &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: key}, &pb.EmptyResp{}) } } -func (this *Practice) OpenCmdNotice(session comm.IUserSession, key string) { - -} - func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { this.Debug("ChallengeResults", log.Field{Key: "bid", Value: bid}, @@ -302,57 +313,92 @@ func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { func (this *Practice) RPC_ModulePracticeUnLockPillar(ctx context.Context, args *pb.RPCGeneralReqA2, reply *pb.EmptyResp) (err error) { this.Debug("RPC_ModulePracticeUnLockPillar", log.Field{Key: "uid", Value: args.Param1}, - log.Field{Key: "taskid", Value: args.Param2}, + log.Field{Key: "key", Value: args.Param2}, ) var ( - configure []*cfg.GamePandamasJsData - room *pb.DBPracticeRoom - taskid int64 + // configure []*cfg.GamePandamasJsData + room *pb.DBPracticeRoom + // taskid int64 ) - if taskid, err = strconv.ParseInt(args.Param2, 10, 64); err != nil { - this.Errorln(err) - return - } - if configure, err = this.configure.getGamePandamasJs(); err != nil { - this.Errorln(err) - return - } + // if taskid, err = strconv.ParseInt(args.Param2, 10, 64); err != nil { + // this.Errorln(err) + // return + // } + // if configure, err = this.configure.getGamePandamasJs(); err != nil { + // this.Errorln(err) + // return + // } if room, err = this.modelPandata.queryUserMartialhall(args.Param1); err != nil { this.Errorln(err) return } - for _, v := range configure { - if v.UnlockCondition == int32(taskid) { - switch v.Id { - case 1: - if room.Pillar1.Isunlock == 0 { - room.Pillar1.Isunlock = 1 - } - this.modelPandata.Change(args.Param1, map[string]interface{}{ - "pillar1": room.Pillar1, - }) - this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001") - break - case 2: - if room.Pillar2.Isunlock == 0 { - room.Pillar2.Isunlock = 1 - } - this.modelPandata.Change(args.Param1, map[string]interface{}{ - "pillar2": room.Pillar2, - }) - this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001") - break - case 3: - if room.Pillar3.Isunlock == 0 { - room.Pillar3.Isunlock = 1 - } - this.modelPandata.Change(args.Param1, map[string]interface{}{ - "pillar3": room.Pillar3, - }) - this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001") - break - } + switch args.Param2 { + case "practice_ pillar1": + room.Pillar1.Isunlock = 2 + if room.Pillarf.Isunlock == 0 { + room.Pillarf.Isunlock = 2 } + this.modelPandata.Change(args.Param1, map[string]interface{}{ + "pillar1": room.Pillar1, + "pillarf": room.Pillarf, + }) + this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "100001") + break + case "practice_ pillar2": + room.Pillar2.Isunlock = 2 + if room.Pillarf.Isunlock == 0 { + room.Pillarf.Isunlock = 2 + } + this.modelPandata.Change(args.Param1, map[string]interface{}{ + "pillar2": room.Pillar2, + "pillarf": room.Pillarf, + }) + this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "100001") + break + case "practice_ pillar3": + room.Pillar3.Isunlock = 2 + if room.Pillarf.Isunlock == 0 { + room.Pillarf.Isunlock = 2 + } + this.modelPandata.Change(args.Param1, map[string]interface{}{ + "pillar3": room.Pillar3, + "pillarf": room.Pillarf, + }) + this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "100001") + break } + // for _, v := range configure { + // if v.UnlockCondition == int32(taskid) { + // switch v.Id { + // case 1: + // if room.Pillar1.Isunlock == 0 { + // room.Pillar1.Isunlock = 1 + // } + // this.modelPandata.Change(args.Param1, map[string]interface{}{ + // "pillar1": room.Pillar1, + // }) + // this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001") + // break + // case 2: + // if room.Pillar2.Isunlock == 0 { + // room.Pillar2.Isunlock = 1 + // } + // this.modelPandata.Change(args.Param1, map[string]interface{}{ + // "pillar2": room.Pillar2, + // }) + // this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001") + // break + // case 3: + // if room.Pillar3.Isunlock == 0 { + // room.Pillar3.Isunlock = 1 + // } + // this.modelPandata.Change(args.Param1, map[string]interface{}{ + // "pillar3": room.Pillar3, + // }) + // this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001") + // break + // } + // } + // } return } diff --git a/modules/user/module.go b/modules/user/module.go index 3135b1a6a..63afa0af7 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -118,6 +118,7 @@ func (this *User) GetUser(uid string) (user *pb.DBUser) { } if user.Id == "" { + this.Errorf("查询玩家信息 uid:%v", uid) return nil } return user diff --git a/pb/practice_msg.pb.go b/pb/practice_msg.pb.go index 009c9a1ee..973b635d9 100644 --- a/pb/practice_msg.pb.go +++ b/pb/practice_msg.pb.go @@ -1684,7 +1684,8 @@ type PracticeQiecuonotifyPush struct { unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //发起者(切磋) - NotifyType int32 `protobuf:"varint,2,opt,name=notifyType,proto3" json:"notifyType"` //1发起通知 2接受通知 3拒绝通知 + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //发起者用户名 + NotifyType int32 `protobuf:"varint,3,opt,name=notifyType,proto3" json:"notifyType"` //1发起通知 2接受通知 3拒绝通知 } func (x *PracticeQiecuonotifyPush) Reset() { @@ -1726,6 +1727,13 @@ func (x *PracticeQiecuonotifyPush) GetUid() string { return "" } +func (x *PracticeQiecuonotifyPush) GetName() string { + if x != nil { + return x.Name + } + return "" +} + func (x *PracticeQiecuonotifyPush) GetNotifyType() int32 { if x != nil { return x.NotifyType @@ -2165,36 +2173,37 @@ var file_practice_practice_msg_proto_rawDesc = []byte{ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 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, 0x4c, 0x0a, 0x18, 0x50, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x60, 0x0a, 0x18, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 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, 0x22, 0x47, 0x0a, 0x15, 0x50, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, - 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, - 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x44, 0x0a, - 0x1b, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, - 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x06, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, - 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x16, 0x0a, 0x14, 0x50, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, - 0x52, 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, - 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, - 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, - 0x73, 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, + 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, + 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x22, 0x44, 0x0a, 0x1b, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, + 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, + 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, + 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, + 0x16, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, + 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var (