上传优化代码

This commit is contained in:
liwei1dao 2023-04-10 16:30:45 +08:00
parent 6da2eeb0a6
commit 50b7f88226
7 changed files with 191 additions and 86 deletions

View File

@ -82,6 +82,7 @@ const (
ModuleDispatch core.M_Modules = "dispatch" //武馆派遣 ModuleDispatch core.M_Modules = "dispatch" //武馆派遣
ModulePractice core.M_Modules = "practice" //熊猫武馆 练功系统 ModulePractice core.M_Modules = "practice" //熊猫武馆 练功系统
ModulePandaAtlas core.M_Modules = "atlas" //熊猫图鉴 ModulePandaAtlas core.M_Modules = "atlas" //熊猫图鉴
ModuleParkour core.M_Modules = "parkour" //跑酷系统
) )
// 数据表名定义处 // 数据表名定义处

41
modules/parkour/module.go Normal file
View File

@ -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
}

View File

@ -25,6 +25,7 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq
err error err error
result *pb.DBPracticeQiecuoRecord result *pb.DBPracticeQiecuoRecord
fresult *pb.DBPracticeQiecuoRecord fresult *pb.DBPracticeQiecuoRecord
user *pb.DBUser
keep bool keep bool
) )
@ -47,6 +48,12 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq
code = pb.ErrorCode_PracticeQiecuoing code = pb.ErrorCode_PracticeQiecuoing
return return
} }
if user = this.module.ModuleUser.GetUser(session.GetUserId()); user == nil {
code = pb.ErrorCode_DBError
return
}
keep = false keep = false
for _, v := range result.Targets { for _, v := range result.Targets {
if v.Uid == req.Fid { 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", 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 return
} }

View File

@ -45,10 +45,10 @@ func (this *modelPandata) queryUserMartialhall(uid string) (result *pb.DBPractic
Knapsack: make(map[string]int32), Knapsack: make(map[string]int32),
Gymaction: 0, Gymaction: 0,
Gymrefresh: 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}, Pillar2: &pb.DBPracticePillar{Index: 2, Lv: 1},
Pillar3: &pb.DBPracticePillar{Index: 3, 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), Statuers: make([]*pb.DBPracticeStatuer, 0),
} }
if err = this.refreshnpc(result); err != nil { if err = this.refreshnpc(result); err != nil {

View File

@ -2,7 +2,6 @@ package practice
import ( import (
"context" "context"
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/base" "go_dreamfactory/lego/base"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
@ -11,9 +10,7 @@ import (
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/configure" "go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db" "go_dreamfactory/sys/db"
"strconv"
"time" "time"
"go.mongodb.org/mongo-driver/bson/primitive" "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), Knapsack: make(map[string]int32),
Gymaction: 0, Gymaction: 0,
Gymrefresh: 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}, Pillar2: &pb.DBPracticePillar{Index: 2, Lv: 1},
Pillar3: &pb.DBPracticePillar{Index: 3, 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), Statuers: make([]*pb.DBPracticeStatuer, 0),
} }
id = make([]string, 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: "session", Value: session.GetUserId()},
log.Field{Key: "taskid", Value: taskid}, 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() { if !this.IsCross() {
err := this.service.AcrossClusterRpcCall(context.Background(), this.GetCrossTag(), err := this.service.AcrossClusterRpcCall(context.Background(), this.GetCrossTag(),
comm.Service_Worker, string(comm.RPC_ModulePracticeUnLockPillar), 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 { if err != nil {
this.Errorln(err) this.Errorln(err)
return return
} }
} else { } 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) { func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) {
this.Debug("ChallengeResults", this.Debug("ChallengeResults",
log.Field{Key: "bid", Value: bid}, 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) { func (this *Practice) RPC_ModulePracticeUnLockPillar(ctx context.Context, args *pb.RPCGeneralReqA2, reply *pb.EmptyResp) (err error) {
this.Debug("RPC_ModulePracticeUnLockPillar", this.Debug("RPC_ModulePracticeUnLockPillar",
log.Field{Key: "uid", Value: args.Param1}, log.Field{Key: "uid", Value: args.Param1},
log.Field{Key: "taskid", Value: args.Param2}, log.Field{Key: "key", Value: args.Param2},
) )
var ( var (
configure []*cfg.GamePandamasJsData // configure []*cfg.GamePandamasJsData
room *pb.DBPracticeRoom room *pb.DBPracticeRoom
taskid int64 // taskid int64
) )
if taskid, err = strconv.ParseInt(args.Param2, 10, 64); err != nil { // if taskid, err = strconv.ParseInt(args.Param2, 10, 64); err != nil {
this.Errorln(err) // this.Errorln(err)
return // return
} // }
if configure, err = this.configure.getGamePandamasJs(); err != nil { // if configure, err = this.configure.getGamePandamasJs(); err != nil {
this.Errorln(err) // this.Errorln(err)
return // return
} // }
if room, err = this.modelPandata.queryUserMartialhall(args.Param1); err != nil { if room, err = this.modelPandata.queryUserMartialhall(args.Param1); err != nil {
this.Errorln(err) this.Errorln(err)
return return
} }
for _, v := range configure { switch args.Param2 {
if v.UnlockCondition == int32(taskid) { case "practice_ pillar1":
switch v.Id { room.Pillar1.Isunlock = 2
case 1: if room.Pillarf.Isunlock == 0 {
if room.Pillar1.Isunlock == 0 { room.Pillarf.Isunlock = 2
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
}
} }
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 return
} }

View File

@ -118,6 +118,7 @@ func (this *User) GetUser(uid string) (user *pb.DBUser) {
} }
if user.Id == "" { if user.Id == "" {
this.Errorf("查询玩家信息 uid:%v", uid)
return nil return nil
} }
return user return user

View File

@ -1684,7 +1684,8 @@ type PracticeQiecuonotifyPush struct {
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //发起者(切磋) 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() { func (x *PracticeQiecuonotifyPush) Reset() {
@ -1726,6 +1727,13 @@ func (x *PracticeQiecuonotifyPush) GetUid() string {
return "" return ""
} }
func (x *PracticeQiecuonotifyPush) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PracticeQiecuonotifyPush) GetNotifyType() int32 { func (x *PracticeQiecuonotifyPush) GetNotifyType() int32 {
if x != nil { if x != nil {
return x.NotifyType 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, 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, 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, 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, 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, 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, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x05, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a,
0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74,
0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72,
0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69,
0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a,
0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x44, 0x0a, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
0x1b, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66,
0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x06, 0x6f, 0x22, 0x44, 0x0a, 0x1b, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43,
0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52,
0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74,
0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e,
0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63,
0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22,
0x52, 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69,
0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74,
0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70,
0x73, 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x6f, 0x74, 0x6f, 0x33, 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 ( var (