diff --git a/modules/wtask/api_accept.go b/modules/wtask/api_accept.go index 8f7b3bb3a..a9a26f8b8 100644 --- a/modules/wtask/api_accept.go +++ b/modules/wtask/api_accept.go @@ -66,7 +66,18 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.WTaskAcceptReq) ( } } wtask.Accepts = append(wtask.Accepts, req.Tid) - session.SendMsg(string(this.module.GetType()), "accept", &pb.WTaskAcceptResp{}) + session.SendMsg(string(this.module.GetType()), "accept", &pb.WTaskAcceptResp{Activations: wtask.Activations, Accepts: wtask.Accepts}) this.module.pushtaskprogress(session, wtask) + if err = this.module.modelwtask.Change(session.GetUserId(), map[string]interface{}{ + "activations": wtask.Activations, + "accepts": wtask.Accepts, + }); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } return } diff --git a/modules/wtask/api_battlefinish.go b/modules/wtask/api_battlefinish.go new file mode 100644 index 000000000..a299367df --- /dev/null +++ b/modules/wtask/api_battlefinish.go @@ -0,0 +1,77 @@ +package wtask + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" +) + +// 参数校验 +func (this *apiComp) BattleFinishCheck(session comm.IUserSession, req *pb.WTaskBattleFinishReq) (errdata *pb.ErrorData) { + if req.BattleConfId == 0 || req.Report == nil { + this.module.Error("世界任务战斗开始参数错误", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "params", Value: req.String()}, + ) + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: "BattleConfId is 0 or Report is null", + } + } + return +} + +// /获取系统公告 +func (this *apiComp) BattleFinish(session comm.IUserSession, req *pb.WTaskBattleFinishReq) (errdata *pb.ErrorData) { + var ( + conf *cfg.GameWorldBattleData + err error + isWin bool + ) + if errdata = this.BattleFinishCheck(session, req); errdata != nil { + return + } + if conf, err = this.module.configure.getWorldtaskBattleById(req.BattleConfId); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + + if errdata, isWin = this.module.modelBattle.CheckBattleReport(session, req.Report); errdata == nil { + return + } + + if isWin { + if conf.Carexe > 0 { + if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { + for _, v := range req.Report.Info.Redflist[0].Team { + if !v.Ishelp { // 助战英雄不加经验 + this.module.ModuleHero.AddHeroExp(session, v.Oid, conf.Carexe) + } + } + } + } + if errdata = this.module.DispenseRes(session, []*cfg.Gameatn{conf.Playexp}, true); errdata != nil { + this.module.Error("世界任务战斗玩家经验结算", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "playerExp", Value: conf.Playexp}, + ) + return + } else { + //触发任务 + go this.module.ModuleBuried.TriggerBuried(session.GetUserId(), comm.GetBuriedParam(comm.Rtype70, 1, req.BattleConfId)) + } + } else { + this.module.Error("世界任务战斗失败", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "isWin", Value: isWin}, + ) + } + session.SendMsg(string(this.module.GetType()), "battlefinish", &pb.WTaskBattleFinishResp{BattleConfId: req.BattleConfId}) + return +} diff --git a/modules/wtask/api_battlestart.go b/modules/wtask/api_battlestart.go new file mode 100644 index 000000000..45d0a70d3 --- /dev/null +++ b/modules/wtask/api_battlestart.go @@ -0,0 +1,65 @@ +package wtask + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/pb" +) + +// 参数校验 +func (this *apiComp) BattleStartCheck(session comm.IUserSession, req *pb.WTaskBattleStartReq) (errdata *pb.ErrorData) { + if req.BattleConfId == 0 || req.Battle == nil { + this.module.Error("世界任务战斗开始参数错误", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "params", Value: req.String()}, + ) + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: "BattleConfId is 0", + } + } + return +} + +// /获取系统公告 +func (this *apiComp) BattleStart(session comm.IUserSession, req *pb.WTaskBattleStartReq) (errdata *pb.ErrorData) { + var ( + record *pb.DBBattleRecord + ) + if errdata = this.BattleStartCheck(session, req); errdata != nil { + return + } + battleConf, err := this.module.configure.getWorldtaskBattleById(req.BattleConfId) + if err != nil || battleConf == nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + + if errdata, record = this.module.modelBattle.CreatePveBattle(session, &pb.BattlePVEReq{ + Ptype: pb.PlayType_moonfantasy, + Format: req.Battle, + Mformat: battleConf.FormatList, + }); err != nil { + return + } + session.SendMsg(string(this.module.GetType()), "battle", &pb.WTaskBattleStartResp{ + BattleConfId: req.BattleConfId, + Info: &pb.BattleInfo{ + Id: record.Id, + Rulesid: battleConf.BattleReadyID, + Btype: record.Btype, + Ptype: record.Ptype, + RedCompId: record.RedCompId, + Redflist: record.Redflist, + BlueCompId: record.BlueCompId, + Buleflist: record.Buleflist, + Tasks: battleConf.EventList, + }, + }) + return +} diff --git a/modules/wtask/api_finish.go b/modules/wtask/api_finish.go index a9a8fbb55..a6708689d 100644 --- a/modules/wtask/api_finish.go +++ b/modules/wtask/api_finish.go @@ -113,5 +113,17 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WTaskFinishReq) ( wtask.Completes = append(wtask.Completes, req.Tid) session.SendMsg(string(this.module.GetType()), "finish", &pb.WTaskFinishResp{Tid: req.Tid, Award: award}) this.module.fishtask(session, wtask) + if err = this.module.modelwtask.Change(session.GetUserId(), map[string]interface{}{ + "activations": wtask.Activations, + "accepts": wtask.Accepts, + "completes": wtask.Completes, + }); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } return } diff --git a/modules/wtask/api_info.go b/modules/wtask/api_info.go index 8d6c66073..23c365a2f 100644 --- a/modules/wtask/api_info.go +++ b/modules/wtask/api_info.go @@ -31,6 +31,6 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.WTaskInfoReq) (errd if errdata = this.module.pushtaskprogress(session, wtask); errdata != nil { return } - session.SendMsg(string(this.module.GetType()), "info", &pb.WTaskInfoResp{Activations: wtask.Activations, Accepttask: wtask.Accepts, Completes: wtask.Completes}) + session.SendMsg(string(this.module.GetType()), "info", &pb.WTaskInfoResp{Activations: wtask.Activations, Accepts: wtask.Accepts, Completes: wtask.Completes}) return } diff --git a/modules/wtask/configure.go b/modules/wtask/configure.go index 49ca562ed..17afcef43 100644 --- a/modules/wtask/configure.go +++ b/modules/wtask/configure.go @@ -102,3 +102,22 @@ func (this *configureComp) gettaskconfconfigure(tid int32) (conf *cfg.GameWorldT } return } + +// 获取战斗配置 +func (this *configureComp) getWorldtaskBattleById(confId int32) (conf *cfg.GameWorldBattleData, err error) { + + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(gameWorldtaskBattle); err != nil { + return + } else { + if conf, ok = v.(*cfg.GameWorldBattle).GetDataMap()[confId]; !ok { + err = comm.NewNotFoundConfErr(modulename, gameWorldTask, confId) + this.module.Errorf("err:%v", err) + return + } + } + return +} diff --git a/modules/wtask/module.go b/modules/wtask/module.go index 0d6764180..bee918c4c 100644 --- a/modules/wtask/module.go +++ b/modules/wtask/module.go @@ -14,11 +14,12 @@ const modulename = "世界任务" type WTask struct { modules.ModuleBase - service core.IService - modelSys comm.ISys - api *apiComp - configure *configureComp - modelwtask *ModelWTask + service core.IService + modelBattle comm.IBattle + modelSys comm.ISys + api *apiComp + configure *configureComp + modelwtask *ModelWTask } func NewModule() core.IModule { @@ -38,6 +39,10 @@ func (this *WTask) Init(service core.IService, module core.IModule, options core func (this *WTask) Start() (err error) { err = this.ModuleBase.Start() var module core.IModule + if module, err = this.service.GetModule(comm.ModuleBattle); err != nil { + return + } + this.modelBattle = module.(comm.IBattle) if module, err = this.service.GetModule(comm.ModuleSys); err != nil { return } diff --git a/pb/wtask_msg.pb.go b/pb/wtask_msg.pb.go index f23c72725..ed8a3fc25 100644 --- a/pb/wtask_msg.pb.go +++ b/pb/wtask_msg.pb.go @@ -66,7 +66,7 @@ type WTaskInfoResp struct { unknownFields protoimpl.UnknownFields Activations []int32 `protobuf:"varint,1,rep,packed,name=activations,proto3" json:"activations"` //可接取任务列表 - Accepttask []int32 `protobuf:"varint,2,rep,packed,name=accepttask,proto3" json:"accepttask"` //已接取任务列表 + Accepts []int32 `protobuf:"varint,2,rep,packed,name=accepts,proto3" json:"accepts"` //已接取任务列表 Completes []int32 `protobuf:"varint,3,rep,packed,name=completes,proto3" json:"completes"` //完成任务列表 } @@ -109,9 +109,9 @@ func (x *WTaskInfoResp) GetActivations() []int32 { return nil } -func (x *WTaskInfoResp) GetAccepttask() []int32 { +func (x *WTaskInfoResp) GetAccepts() []int32 { if x != nil { - return x.Accepttask + return x.Accepts } return nil } @@ -178,7 +178,7 @@ type WTaskAcceptResp struct { unknownFields protoimpl.UnknownFields Activations []int32 `protobuf:"varint,1,rep,packed,name=activations,proto3" json:"activations"` //可接取任务列表 - Accepttask []int32 `protobuf:"varint,2,rep,packed,name=accepttask,proto3" json:"accepttask"` //已接取任务列表 + Accepts []int32 `protobuf:"varint,2,rep,packed,name=accepts,proto3" json:"accepts"` //已接取任务列表 } func (x *WTaskAcceptResp) Reset() { @@ -220,9 +220,9 @@ func (x *WTaskAcceptResp) GetActivations() []int32 { return nil } -func (x *WTaskAcceptResp) GetAccepttask() []int32 { +func (x *WTaskAcceptResp) GetAccepts() []int32 { if x != nil { - return x.Accepttask + return x.Accepts } return nil } @@ -289,7 +289,8 @@ type WTaskBattleStartResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Info *BattleInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info"` //战斗信息 + BattleConfId int32 `protobuf:"varint,1,opt,name=battleConfId,proto3" json:"battleConfId"` //战斗配表ID + Info *BattleInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info"` //战斗信息 } func (x *WTaskBattleStartResp) Reset() { @@ -324,6 +325,13 @@ func (*WTaskBattleStartResp) Descriptor() ([]byte, []int) { return file_wtask_wtask_msg_proto_rawDescGZIP(), []int{5} } +func (x *WTaskBattleStartResp) GetBattleConfId() int32 { + if x != nil { + return x.BattleConfId + } + return 0 +} + func (x *WTaskBattleStartResp) GetInfo() *BattleInfo { if x != nil { return x.Info @@ -392,6 +400,8 @@ type WTaskBattleFinishResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + BattleConfId int32 `protobuf:"varint,1,opt,name=battleConfId,proto3" json:"battleConfId"` //战斗配表ID } func (x *WTaskBattleFinishResp) Reset() { @@ -426,6 +436,13 @@ func (*WTaskBattleFinishResp) Descriptor() ([]byte, []int) { return file_wtask_wtask_msg_proto_rawDescGZIP(), []int{7} } +func (x *WTaskBattleFinishResp) GetBattleConfId() int32 { + if x != nil { + return x.BattleConfId + } + return 0 +} + // 完成任务 请求 type WTaskFinishReq struct { state protoimpl.MessageState @@ -635,55 +652,58 @@ var file_wtask_wtask_msg_proto_rawDesc = []byte{ 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0e, 0x0a, 0x0c, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x22, 0x6f, 0x0a, 0x0d, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x22, 0x69, 0x0a, 0x0d, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x74, - 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x73, 0x22, 0x22, 0x0a, 0x0e, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x74, 0x69, 0x64, 0x22, 0x53, 0x0a, 0x0f, 0x57, 0x54, 0x61, 0x73, 0x6b, - 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x63, 0x0a, 0x13, - 0x57, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x22, 0x37, 0x0a, 0x14, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x61, 0x0a, 0x14, 0x57, 0x54, - 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, - 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x02, 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, 0x17, 0x0a, - 0x15, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x22, 0x0a, 0x0e, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x0f, 0x57, 0x54, - 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, - 0x03, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, - 0x21, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x61, 0x77, 0x61, - 0x72, 0x64, 0x22, 0x3e, 0x0a, 0x1a, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x3f, 0x0a, 0x15, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x07, 0x61, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, - 0x42, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x61, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x22, 0x22, 0x0a, + 0x0e, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x69, + 0x64, 0x22, 0x4d, 0x0a, 0x0f, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, + 0x22, 0x63, 0x0a, 0x13, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x22, 0x5b, 0x0a, 0x14, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, + 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, + 0x64, 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, 0x61, 0x0a, 0x14, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x12, 0x25, + 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 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, 0x3b, 0x0a, 0x15, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, + 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x49, 0x64, 0x22, 0x22, 0x0a, 0x0e, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x74, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x0f, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x61, + 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x22, 0x3e, + 0x0a, 0x1a, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3f, + 0x0a, 0x15, 0x57, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x42, 0x57, 0x54, 0x61, + 0x73, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x42, + 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var (