diff --git a/modules/friend/api_cross_qiecuo.go b/modules/friend/api_cross_qiecuo.go index 1599e31b7..be3dad986 100644 --- a/modules/friend/api_cross_qiecuo.go +++ b/modules/friend/api_cross_qiecuo.go @@ -1,6 +1,7 @@ package friend import ( + "errors" "go_dreamfactory/comm" "go_dreamfactory/pb" @@ -25,21 +26,15 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.FriendQiecuoReq) return } - //校验目标是否已正在切磋 - if targetQr := this.moduleFriend.ModelFriendQiecuo.getQiecuo(req.TargetUid); targetQr != nil { - code = pb.ErrorCode_FriendQiecuoTargetPk - return - } - - qr, err := this.moduleFriend.ModelFriendQiecuo.createQiecuoRecord(session.GetUserId(), req.TargetUid) + //切磋请求处理 + err := this.moduleFriend.ModelFriendQiecuo.qiecuoReq(session.GetUserId(), req.TargetUid) if err != nil { - code = pb.ErrorCode_DBError - return - } - - //判断是否切磋中 - if qr.MatchId != "" { - code = pb.ErrorCode_FriendQiecuoing + var customErr = new(comm.CustomError) + if errors.As(err, &customErr) { + code = customErr.Code + } else { + code = pb.ErrorCode_DBError + } return } diff --git a/modules/friend/model_qiecuo.go b/modules/friend/model_qiecuo.go index b9a865e41..1a6c12c1a 100644 --- a/modules/friend/model_qiecuo.go +++ b/modules/friend/model_qiecuo.go @@ -37,10 +37,11 @@ func (this *ModelFriendQiecuo) getQiecuo(uid string) *pb.QiecuoRecord { return record } -// 保存切磋记录 -func (this *ModelFriendQiecuo) createQiecuoRecord(uid, targetUid string) (*pb.QiecuoRecord, error) { +// 切磋请求处理 +func (this *ModelFriendQiecuo) qiecuoReq(uid, targetUid string) error { qr := this.getQiecuo(uid) if qr == nil { + //创建切磋记录 qr = &pb.QiecuoRecord{ Uid: uid, TargetId: targetUid, @@ -49,25 +50,27 @@ func (this *ModelFriendQiecuo) createQiecuoRecord(uid, targetUid string) (*pb.Qi } if err := this.Add(uid, qr); err != nil { this.moduleFriend.Errorln(err) - return nil, err + return err } } else { //如果目标未接受且在超时时间内,不允许再次发送 now := configure.Now().Unix() if qr.Status == 1 && now-qr.Timestamp < 10 { - return qr, comm.NewCustomError(pb.ErrorCode_FriendQiecuoRequested) + return comm.NewCustomError(pb.ErrorCode_FriendQiecuoRequested) + } else if qr.Status == 2 || qr.MatchId != "" { + return comm.NewCustomError(pb.ErrorCode_FriendQiecuoing) } else { update := map[string]interface{}{ "targetId": targetUid, "timestamp": configure.Now().Unix(), } if err := this.Change(uid, update); err != nil { - return nil, err + return err } } } - return qr, nil + return nil } // 更新切磋记录 diff --git a/modules/smithy/api_forgeequip.go b/modules/smithy/api_forgeequip.go new file mode 100644 index 000000000..2776c12f4 --- /dev/null +++ b/modules/smithy/api_forgeequip.go @@ -0,0 +1,35 @@ +package smithy + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +//参数校验 +func (this *apiComp) ForgeEquipCheck(session comm.IUserSession, req *pb.SmithyForgeEquipReq) (code pb.ErrorCode) { + if req.EquipType == 0 { + code = pb.ErrorCode_ReqParameterError + return + } + return +} + +// 打造装备 +func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEquipReq) (code pb.ErrorCode, data proto.Message) { + var () + + code = this.ForgeEquipCheck(session, req) + if code != pb.ErrorCode_Success { + return // 参数校验失败直接返回 + } + stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + if err != nil { + code = pb.ErrorCode_DBError + return + } + + session.SendMsg(string(this.module.GetType()), "forgeequip", &pb.SmithyForgeEquipResp{Data: stove}) + return +} diff --git a/modules/smithyv2/api_getlist.go b/modules/smithy/api_getstoveinfo.go similarity index 96% rename from modules/smithyv2/api_getlist.go rename to modules/smithy/api_getstoveinfo.go index 177223f8f..ee80cc7da 100644 --- a/modules/smithyv2/api_getlist.go +++ b/modules/smithy/api_getstoveinfo.go @@ -13,7 +13,7 @@ func (this *apiComp) GetStoveInfoCheck(session comm.IUserSession, req *pb.Smithy return } -///获取美食城基本信息 +// 获取铁匠铺信息 func (this *apiComp) GetStoveInfo(session comm.IUserSession, req *pb.SmithyGetStoveInfoReq) (code pb.ErrorCode, data proto.Message) { code = this.GetStoveInfoCheck(session, req) diff --git a/modules/smithy/api_orderequip.go b/modules/smithy/api_orderequip.go new file mode 100644 index 000000000..2077d094d --- /dev/null +++ b/modules/smithy/api_orderequip.go @@ -0,0 +1,35 @@ +package smithy + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +//参数校验 +func (this *apiComp) OrderEquipCheck(session comm.IUserSession, req *pb.SmithyOrderEquipReq) (code pb.ErrorCode) { + if req.SuiteId == 0 || req.Position == 0 { + code = pb.ErrorCode_ReqParameterError + return + } + return +} + +// 打造装备 +func (this *apiComp) OrderEquip(session comm.IUserSession, req *pb.SmithyOrderEquipReq) (code pb.ErrorCode, data proto.Message) { + var () + + code = this.OrderEquipCheck(session, req) + if code != pb.ErrorCode_Success { + return // 参数校验失败直接返回 + } + stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + if err != nil { + code = pb.ErrorCode_DBError + return + } + + session.SendMsg(string(this.module.GetType()), "orderequip", &pb.SmithyOrderEquipResp{Data: stove}) + return +} diff --git a/modules/smithy/api_rise.go b/modules/smithy/api_rise.go new file mode 100644 index 000000000..49a203fbe --- /dev/null +++ b/modules/smithy/api_rise.go @@ -0,0 +1,34 @@ +package smithy + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +//参数校验 +func (this *apiComp) RiseCheck(session comm.IUserSession, req *pb.SmithyRiseReq) (code pb.ErrorCode) { + if req.ItemId != "" && req.Count == 0 { + code = pb.ErrorCode_ReqParameterError + } + return +} + +// 炉子升温 +func (this *apiComp) Rise(session comm.IUserSession, req *pb.SmithyRiseReq) (code pb.ErrorCode, data proto.Message) { + var () + + code = this.RiseCheck(session, req) + if code != pb.ErrorCode_Success { + return // 参数校验失败直接返回 + } + stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + if err != nil { + code = pb.ErrorCode_DBError + return + } + + session.SendMsg(string(this.module.GetType()), "rise", &pb.SmithyRiseResp{Data: stove}) + return +} diff --git a/modules/smithy/api_stoveup.go b/modules/smithy/api_stoveup.go new file mode 100644 index 000000000..e2c37284a --- /dev/null +++ b/modules/smithy/api_stoveup.go @@ -0,0 +1,32 @@ +package smithy + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +//参数校验 +func (this *apiComp) StrveUpCheck(session comm.IUserSession, req *pb.SmithyStoveUpReq) (code pb.ErrorCode) { + + return +} + +// 炉子升级 +func (this *apiComp) StrveUp(session comm.IUserSession, req *pb.SmithyStoveUpReq) (code pb.ErrorCode, data proto.Message) { + var () + + code = this.StrveUpCheck(session, req) + if code != pb.ErrorCode_Success { + return // 参数校验失败直接返回 + } + stove, err := this.module.modelSmithy.getSmithyStoveList(session.GetUserId()) + if err != nil { + code = pb.ErrorCode_DBError + return + } + + session.SendMsg(string(this.module.GetType()), "stoveup", &pb.SmithyStoveUpResp{Data: stove}) + return +} diff --git a/modules/smithy/api_trade.go b/modules/smithy/api_trade.go new file mode 100644 index 000000000..61a53e49e --- /dev/null +++ b/modules/smithy/api_trade.go @@ -0,0 +1,12 @@ +package smithy + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +// 贸易 + +func (this *apiComp) TradeCheck(session comm.IUserSession, req *pb.SmithySellItemReq) (code pb.ErrorCode) { + return +} diff --git a/modules/smithy/model_smithy.go b/modules/smithy/model_smithy.go index 728863f21..f9189e12c 100644 --- a/modules/smithy/model_smithy.go +++ b/modules/smithy/model_smithy.go @@ -186,3 +186,29 @@ func (this *modelSmithy) CalculationStoveSkillLv(uid string, Smithy *pb.DBSmithy mapData["orderCostTime"] = Smithy.OrderCostTime this.module.ModifySmithyData(uid, mapData) } + +// 获取铁匠铺信息 +func (this *modelSmithy) getSmithyStoveList(uid string) (result *pb.DBStove, err error) { + result = &pb.DBStove{} + if err = this.Get(uid, result); err != nil { + if redis.RedisNil != err { // 没有数据直接创建新的数据 + result.Id = primitive.NewObjectID().Hex() + result.Uid = uid + result.Data = make(map[int32]int32, 0) + result.Skill = make(map[int32]int32, 0) + result.Lv = 1 + result.Temperature = 20000 // 配置 + result.Business = 0 + result.RecoveTime = 0 + + if err = this.Add(uid, result); err != nil { + this.module.Errorf("err:%v", err) + err = nil + return + } + } + return + } + err = nil + return result, err +} diff --git a/modules/smithyv2/api.go b/modules/smithyv2/api.go deleted file mode 100644 index ac92b2ac9..000000000 --- a/modules/smithyv2/api.go +++ /dev/null @@ -1,35 +0,0 @@ -package smithy - -import ( - "go_dreamfactory/lego/core" - "go_dreamfactory/modules" -) - -const ( - SmithyGetListResp = "getlist" - SmithyCreateOrderResp = "createorder" - SmithyDeskSkillLvResp = "deskskilllv" - SmithyStoveSkillLvResp = "stoveskilllv" - SmithyGetRewardResp = "getreward" - SmithyGetRandUserResp = "getranduser" -) - -type apiComp struct { - modules.MCompGate - service core.IService - module *Smithy -} - -//组件初始化接口 -func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { - err = this.MCompGate.Init(service, module, comp, options) - this.module = module.(*Smithy) - this.service = service - return -} - -func (this *apiComp) Start() (err error) { - err = this.MCompGate.Start() - - return -} diff --git a/modules/smithyv2/api_createorder.go b/modules/smithyv2/api_createorder.go deleted file mode 100644 index 652e9ba70..000000000 --- a/modules/smithyv2/api_createorder.go +++ /dev/null @@ -1,114 +0,0 @@ -package smithy - -import ( - "go_dreamfactory/comm" - "go_dreamfactory/pb" - "go_dreamfactory/sys/configure" - cfg "go_dreamfactory/sys/configure/structs" - - "google.golang.org/protobuf/proto" -) - -//参数校验 -func (this *apiComp) CreateOrderCheck(session comm.IUserSession, req *pb.SmithyCreateOrderReq) (code pb.ErrorCode) { - if len(req.Order) == 0 { - code = pb.ErrorCode_ReqParameterError - return - } - return -} - -func (this *apiComp) CreateOrder(session comm.IUserSession, req *pb.SmithyCreateOrderReq) (code pb.ErrorCode, data proto.Message) { - var ( - res []*cfg.Gameatn - costTime int32 - privilegeAddItme int32 // 特权额外增加的时间 - _smithy *pb.DBSmithy - ) - - code = this.CreateOrderCheck(session, req) - if code != pb.ErrorCode_Success { - return // 参数校验失败直接返回 - } - - _skillCfg := this.module.configure.GetSmithyStoveConfigData(_smithy.StoveLv) - needTime := _skillCfg.Time // 订单需要的时间 - for _, order := range req.Order { - if order.Count == 0 { - continue - } - costTime += needTime * order.Count - } - if _smithy.Ctime == 0 { - _smithy.Ctime = configure.Now().Unix() - } - // if !utils.IsToday(_smithy.Ctime) { - // _smithy.Ctime = configure.Now().Unix() - // _smithy.OrderCostTime = 0 - // } - _smithy.Orders = append(_smithy.Orders, req.Order...) // 直接追加订单数据 - if _smithy.Clang == nil || (_smithy.Clang != nil && _smithy.Clang.ETime == 0) { - for _, v := range _smithy.Orders { - if v.Count > 0 { - v.Count-- - // 获取生产时间 - _smithy.Clang = &pb.Clang{ - DeskType: v.DeskType, - ETime: configure.Now().Unix() + int64(needTime), - STime: configure.Now().Unix(), - } - break - } - } - } - // 計算耗時 - for _, v := range _smithy.Orders { - if v.Count > 0 { - v.NeedTime = needTime * v.Count - } - if skillLv, ok := _smithy.Skill[v.DeskType]; ok { - conf := this.module.configure.GetSmithyConfigData(v.DeskType, skillLv) - res = append(res, conf.Orderneed...) // 订单消耗 - } - } - if _smithy.Clang != nil && _smithy.Clang.ETime == 0 { - _smithy.Clang = nil - } - // 获取总的下单时长 - cfgCom := this.module.configure.GetGlobalConf() - if cfgCom == nil { - return - } - _smithy.OrderCostTime += costTime - privilegeAddItme = this.module.ModulePrivilege.GetCountByPrivilegeId(session.GetUserId(), comm.PrivilegeType10) - if cfgCom.SmithyMaxtime+privilegeAddItme < _smithy.OrderCostTime { // 大于总时长是不允许的 - code = pb.ErrorCode_GourmetMoreOrderTime - return - } - if code = this.module.ConsumeRes(session, res, true); code != pb.ErrorCode_Success { // 消耗校验 - return - } - - // 校验通过 写数据 - mapData := make(map[string]interface{}, 0) - sz := make([]*pb.OrderClang, 0) - for _, v := range _smithy.Orders { - if v.Count != 0 { - sz = append(sz, v) - } - } - _smithy.Orders = sz - mapData["orders"] = _smithy.Orders - mapData["orderCostTime"] = _smithy.OrderCostTime - mapData["clang"] = _smithy.Clang // 正在做的 - mapData["ctime"] = _smithy.Ctime - code = this.module.ModifySmithyData(session.GetUserId(), mapData) - iTotal := 0 - for _, v := range req.Order { - iTotal += int(v.Count) - } - this.module.ModuleRtask.SendToRtask(session, comm.Rtype148, int32(iTotal)) - - session.SendMsg(string(this.module.GetType()), SmithyCreateOrderResp, &pb.SmithyCreateOrderResp{Data: _smithy}) - return -} diff --git a/modules/smithyv2/api_deskskilllv.go b/modules/smithyv2/api_deskskilllv.go deleted file mode 100644 index 2942405f3..000000000 --- a/modules/smithyv2/api_deskskilllv.go +++ /dev/null @@ -1,81 +0,0 @@ -package smithy - -import ( - "crypto/rand" - "go_dreamfactory/comm" - "go_dreamfactory/pb" - cfg "go_dreamfactory/sys/configure/structs" - "math/big" - - "google.golang.org/protobuf/proto" -) - -//参数校验 -func (this *apiComp) DeskSkillLvCheck(session comm.IUserSession, req *pb.SmithyDeskSkillLvReq) (code pb.ErrorCode) { - if req.DeskType == 0 { - code = pb.ErrorCode_ReqParameterError - } - return -} - -func (this *apiComp) DeskSkillLv(session comm.IUserSession, req *pb.SmithyDeskSkillLvReq) (code pb.ErrorCode, dat proto.Message) { - var ( - bFindSkill bool - curSkillCfg *cfg.GameSmithyData - _smithy *pb.DBSmithy - ) - code = this.DeskSkillLvCheck(session, req) - if code != pb.ErrorCode_Success { - return // 参数校验失败直接返回 - } - - for k, v := range _smithy.Skill { - if k == req.DeskType { - bFindSkill = true - // 查询配置文件 - curSkillCfg = this.module.configure.GetSmithyConfigData(k, v) - if curSkillCfg != nil && curSkillCfg.Starupneed != nil { - //获取下一级 - NextSkillCfg := this.module.configure.GetSmithyConfigData(k, v+1) - if NextSkillCfg == nil { - code = pb.ErrorCode_GourmetSkillMaxLv - return - } - // 升级 - code = this.module.ConsumeRes(session, curSkillCfg.Starupneed, true) // 消耗检测 - if code != pb.ErrorCode_Success { - return - } - // 概率升级 - n, _ := rand.Int(rand.Reader, big.NewInt(100)) - - if n.Int64() < int64(curSkillCfg.Probability) { // 可以升级 - // 技能升级成功 - _smithy.Skill[req.DeskType] += 1 - _smithy.DeskFloor[req.DeskType] = 0 - this.module.modelSmithy.CalculationDeskSkillLv(session.GetUserId(), _smithy) - - } else { - _smithy.DeskFloor[req.DeskType] += 1 - if _smithy.DeskFloor[req.DeskType] >= curSkillCfg.Floors { // 触发保底 - _smithy.Skill[req.DeskType] += 1 - _smithy.DeskFloor[req.DeskType] = 0 - this.module.modelSmithy.CalculationDeskSkillLv(session.GetUserId(), _smithy) - - } - } - } else { - code = pb.ErrorCode_GourmetSkillMaxLv - return - } - break - } - } - if !bFindSkill { - code = pb.ErrorCode_ReqParameterError - return - } - - session.SendMsg(string(this.module.GetType()), SmithyDeskSkillLvResp, &pb.SmithyDeskSkillLvResp{Data: _smithy}) - return -} diff --git a/modules/smithyv2/api_getReward.go b/modules/smithyv2/api_getReward.go deleted file mode 100644 index 8981ae4ed..000000000 --- a/modules/smithyv2/api_getReward.go +++ /dev/null @@ -1,48 +0,0 @@ -package smithy - -import ( - "go_dreamfactory/comm" - "go_dreamfactory/pb" - cfg "go_dreamfactory/sys/configure/structs" - - "google.golang.org/protobuf/proto" -) - -//参数校验 -func (this *apiComp) GetRewardCheck(session comm.IUserSession, req *pb.SmithyGetRewardReq) (code pb.ErrorCode) { - - return -} - -///美食城领取奖励 -func (this *apiComp) GetReward(session comm.IUserSession, req *pb.SmithyGetRewardReq) (code pb.ErrorCode, data proto.Message) { - var ( - _gourmet *pb.DBSmithy - ) - code = this.GetRewardCheck(session, req) - - if len(_gourmet.Items) > 0 { - res := make([]*cfg.Gameatn, 0) - for _, v := range _gourmet.Items { - res = append(res, &cfg.Gameatn{ - A: v.A, - T: v.T, - N: v.N, - }) - } - code = this.module.DispenseRes(session, res, true) - if code != pb.ErrorCode_Success { - return - } - // 随机任务 - this.module.SendRdTask(session, _gourmet.Items) - - _gourmet.Items = nil - mapData := make(map[string]interface{}, 0) - mapData["items"] = nil - code = this.module.ModifySmithyData(session.GetUserId(), mapData) - } - session.SendMsg(string(this.module.GetType()), SmithyGetRewardResp, &pb.SmithyGetRewardResp{Data: _gourmet}) - - return -} diff --git a/modules/smithyv2/api_getranduser.go b/modules/smithyv2/api_getranduser.go deleted file mode 100644 index 8389d55d7..000000000 --- a/modules/smithyv2/api_getranduser.go +++ /dev/null @@ -1,96 +0,0 @@ -package smithy - -import ( - "context" - "go_dreamfactory/comm" - "go_dreamfactory/lego/core" - "go_dreamfactory/pb" - "go_dreamfactory/sys/db" - "go_dreamfactory/utils" - "time" - - "go.mongodb.org/mongo-driver/bson" - "go.mongodb.org/mongo-driver/mongo/options" - "google.golang.org/protobuf/proto" -) - -//参数校验 -func (this *apiComp) GetRandUserCheck(session comm.IUserSession, req *pb.SmithyGetRandUserReq) (code pb.ErrorCode) { - if req.People <= 0 { - code = pb.ErrorCode_ReqParameterError - return - } - return -} - -/// 获取一些玩家数据 -func (this *apiComp) GetRandUser(session comm.IUserSession, req *pb.SmithyGetRandUserReq) (code pb.ErrorCode, data proto.Message) { - var ( - szDbUser []*pb.DBUser - mapUser map[string]struct{} - ) - mapUser = make(map[string]struct{}, 0) - code = this.GetRandUserCheck(session, req) - if code != pb.ErrorCode_Success { - return // 参数校验失败直接返回 - } - - // 获取在线玩家信息 - onlineList, err := this.module.ModuleUser.UserOnlineList() - if err != nil { - code = pb.ErrorCode_DBError - return - } - - var szUid []string - for _, v := range onlineList { - if v.Uid == session.GetUserId() || v.Uid == "" { // 过滤自己信息 - continue - } - szUid = append(szUid, v.Uid) - } - // 随机在线玩家信息 - if len(szUid) > int(req.People) { - randArr := utils.RandomNumbers(0, len(szUid), int(req.People)) - for _, v := range randArr { - if szUid[v] != "" { - mapUser[szUid[v]] = struct{}{} - } - } - } else { // 数量不足 则有多少给多少 - for _, v := range szUid { - mapUser[v] = struct{}{} - } - left := int(req.People) - len(mapUser) - if left > 0 { // 一个人也没有 那就从db 中随机取 - tag, _, b := utils.UIdSplit(session.GetUserId()) - if b { - if conn, err := db.ServerDBConn(tag); err == nil { - dbModel := db.NewDBModel(comm.TableHero, time.Hour, conn) - if _data, err1 := dbModel.DB.Find(core.SqlTable(comm.TableUser), bson.M{}, options.Find().SetSort(bson.M{"lv": -1}).SetLimit(int64(req.People))); err1 == nil { - for _data.Next(context.TODO()) { - temp := &pb.DBUser{} - if err = _data.Decode(temp); err == nil { - if len(mapUser)+len(szDbUser) >= int(req.People) { - break - } - if _, ok := mapUser[temp.Uid]; !ok { - szDbUser = append(szDbUser, temp) - } - } - } - } - } - } - } - } - for k := range mapUser { - if user := this.module.ModuleUser.GetUser(k); user != nil { - szDbUser = append(szDbUser, user) // 转成user对象 - } else { - this.module.Errorf("%v", err) - } - } - session.SendMsg(string(this.module.GetType()), SmithyGetRandUserResp, &pb.SmithyGetRandUserResp{User: szDbUser}) - return -} diff --git a/modules/smithyv2/api_stoveskilllv.go b/modules/smithyv2/api_stoveskilllv.go deleted file mode 100644 index 285b3693d..000000000 --- a/modules/smithyv2/api_stoveskilllv.go +++ /dev/null @@ -1,62 +0,0 @@ -package smithy - -import ( - "crypto/rand" - "go_dreamfactory/comm" - "go_dreamfactory/pb" - "math/big" - - "google.golang.org/protobuf/proto" -) - -//参数校验 -func (this *apiComp) StoveSkillLvCheck(session comm.IUserSession, req *pb.SmithyStoveSkillLvReq) (code pb.ErrorCode) { - - return -} - -func (this *apiComp) StoveSkillLv(session comm.IUserSession, req *pb.SmithyStoveSkillLvReq) (code pb.ErrorCode, dat proto.Message) { - var ( - bLevelUp bool - _smithy *pb.DBSmithy - ) - code = this.StoveSkillLvCheck(session, req) - if code != pb.ErrorCode_Success { - return // 参数校验失败直接返回 - } - - curLvData := this.module.configure.GetSmithyStoveConfigData(_smithy.StoveLv) - if curLvData == nil { - code = pb.ErrorCode_GourmetSkillMaxLv - return - } - nextLvData := this.module.configure.GetSmithyStoveConfigData(_smithy.StoveLv + 1) - if nextLvData == nil { - code = pb.ErrorCode_GourmetSkillMaxLv - return - } - // 升级 - code = this.module.ConsumeRes(session, curLvData.Starupneed, true) // 消耗检测 - if code != pb.ErrorCode_Success { - return - } - - // 概率升级 - n, _ := rand.Int(rand.Reader, big.NewInt(100)) - - if n.Int64() < int64(curLvData.Probability) { // 可以升级 - bLevelUp = true - } else { // 升级失败了 记录 - _smithy.StoveFloor += 1 - if curLvData.Floors >= _smithy.StoveFloor { // 触发保底 - bLevelUp = true - } - } - if bLevelUp { - _smithy.StoveFloor = 0 // 清理保底数据 - _smithy.StoveLv += 1 - this.module.modelSmithy.CalculationStoveSkillLv(session.GetUserId(), _smithy, _smithy.StoveLv) - } - session.SendMsg(string(this.module.GetType()), SmithyStoveSkillLvResp, &pb.SmithyStoveSkillLvResp{Data: _smithy}) - return -} diff --git a/modules/smithyv2/comp_configure.go b/modules/smithyv2/comp_configure.go deleted file mode 100644 index 3487bcfb7..000000000 --- a/modules/smithyv2/comp_configure.go +++ /dev/null @@ -1,93 +0,0 @@ -package smithy - -import ( - "go_dreamfactory/lego/core" - "go_dreamfactory/lego/sys/log" - "go_dreamfactory/modules" - "go_dreamfactory/sys/configure" - cfg "go_dreamfactory/sys/configure/structs" - "sync" -) - -const ( - game_smithy = "game_smithy.json" - game_smithystove = "game_smithystove.json" -) - -///配置管理基础组件 -type configureComp struct { - modules.MCompConfigure - module *Smithy - hlock sync.RWMutex - _smithyMap map[int64]*cfg.GameSmithyData -} - -//组件初始化接口 -func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { - err = this.MCompConfigure.Init(service, module, comp, options) - this._smithyMap = make(map[int64]*cfg.GameSmithyData, 0) - this.module = module.(*Smithy) - configure.RegisterConfigure(game_smithy, cfg.NewGameSmithy, func() { - if v, err := this.GetConfigure(game_smithy); err == nil { - if configure, ok := v.(*cfg.GameSmithy); ok { - this.hlock.Lock() - defer this.hlock.Unlock() - for _, value := range configure.GetDataList() { - this._smithyMap[int64(value.Type<<16)+int64(value.Star)] = value - } - return - } - } - log.Errorf("get game_pagoda conf err:%v", err) - return - }) - err = this.LoadConfigure(game_smithystove, cfg.NewGameSmithyStove) - return -} - -func (this *configureComp) GetSmithyConfigData(smithyType int32, level int32) (data *cfg.GameSmithyData) { - - return this._smithyMap[int64(smithyType<<16)+int64(level)] -} -func (this *configureComp) GetSmithyTypeConfigData() (mapType map[int32]struct{}) { - mapType = make(map[int32]struct{}, 0) - if v, err := this.GetConfigure(game_smithy); err == nil { - if configure, ok := v.(*cfg.GameSmithy); ok { - for _, v1 := range configure.GetDataList() { - if _, ok := mapType[v1.Type]; !ok { - mapType[v1.Type] = struct{}{} - } - } - return - } - } - return -} - -// 获取炉子配置数据 -func (this *configureComp) GetSmithyStoveConfigData(level int32) (data *cfg.GameSmithyStoveData) { - if v, err := this.GetConfigure(game_smithystove); err == nil { - if configure, ok := v.(*cfg.GameSmithyStove); ok { - data = configure.Get(int32(level)) - return - } - } - return -} - -//加载多个配置文件 -func (this *configureComp) LoadMultiConfigure(confs map[string]interface{}) (err error) { - for k, v := range confs { - err = configure.RegisterConfigure(k, v, nil) - if err != nil { - log.Errorf("配置文件:%s解析失败!", k) - break - } - } - return -} - -//读取配置数据 -func (this *configureComp) GetConfigure(name string) (v interface{}, err error) { - return configure.GetConfigure(name) -} diff --git a/modules/smithyv2/model_smithy.go b/modules/smithyv2/model_smithy.go deleted file mode 100644 index 4328c3be4..000000000 --- a/modules/smithyv2/model_smithy.go +++ /dev/null @@ -1,186 +0,0 @@ -package smithy - -import ( - "go_dreamfactory/comm" - "go_dreamfactory/lego/core" - "go_dreamfactory/lego/sys/redis" - "go_dreamfactory/modules" - "go_dreamfactory/pb" - "go_dreamfactory/sys/configure" - "go_dreamfactory/utils" - - "go.mongodb.org/mongo-driver/bson/primitive" - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/x/bsonx" -) - -type modelSmithy struct { - modules.MCompModel - module *Smithy -} - -func (this *modelSmithy) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { - this.TableName = string(comm.TableSmithy) - err = this.MCompModel.Init(service, module, comp, options) - this.module = module.(*Smithy) - // uid 创建索引 - this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{ - Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}}, - }) - return -} - -// 获取铁匠铺信息 -func (this *modelSmithy) getSmithyStoveList(uid string) (result *pb.DBStove, err error) { - result = &pb.DBStove{} - if err = this.Get(uid, result); err != nil { - if redis.RedisNil != err { // 没有数据直接创建新的数据 - - result.Id = primitive.NewObjectID().Hex() - result.Uid = uid - result.Data = make(map[int32]int32, 0) - result.Skill = make(map[int32]int32, 0) - result.Lv = 1 - result.Temperature = 20000 // 配置 - result.Business = 0 - result.RecoveTime = 0 - - if err = this.Add(uid, result); err != nil { - this.module.Errorf("err:%v", err) - err = nil - return - } - } - return - } - err = nil - return result, err -} -func (this *modelSmithy) modifySmithyDataByObjId(uid string, data map[string]interface{}) error { - return this.Change(uid, data) -} -func (this *modelSmithy) CalculationSmithy(uid string, smithy *pb.DBSmithy) { - var ( - szTime map[int32]int32 - zeroTime int64 // 当前时间对应的0点时间戳,用来判断是否跨天了 - ) - mapData := make(map[string]interface{}, 0) - szTime = make(map[int32]int32, 0) - - // 记录每个食材耗时 - for k, v := range smithy.Skill { - // 计算出需要的时间 - _skillCfg := this.module.configure.GetSmithyStoveConfigData(v) - szTime[k] += _skillCfg.Time - } - - // 有订单在做 - zeroTime = utils.GetTodayZeroTime(configure.Now().Unix()) - - if (smithy.Clang != nil && smithy.Clang.ETime >= configure.Now().Unix()) || smithy.Clang == nil { - for _, order := range smithy.Orders { - _gourmetcfg := this.module.configure.GetSmithyConfigData(order.DeskType, smithy.Skill[order.DeskType]) // 美食家配置表 - - if order.Count > 0 { - if smithy.Clang != nil && smithy.Clang.ETime > configure.Now().Unix() { - break - } - order.Count-- - if order.Count == 0 { - order.NeedTime = 0 - } - order.NeedTime = order.Count * szTime[order.DeskType] - if smithy.Clang == nil { - smithy.Clang = &pb.Clang{} - smithy.Clang.STime = configure.Now().Unix() - smithy.Clang.ETime = configure.Now().Unix() + int64(szTime[order.DeskType]) - if smithy.Clang.STime < zeroTime && zeroTime <= smithy.Clang.ETime { // 跨天清空订单耗时 - smithy.OrderCostTime = 0 - for _, order := range smithy.Orders { // 重新计算订单时常 - smithy.OrderCostTime += order.Count * szTime[order.DeskType] - } - } - } else { - smithy.Clang.STime += int64(szTime[order.DeskType]) - oldTime := smithy.Clang.ETime - smithy.Clang.ETime += int64(szTime[order.DeskType]) - // 如果此时跨天了 清除订单时常 - if oldTime < zeroTime && zeroTime <= smithy.Clang.ETime { // 跨天清空订单耗时 - smithy.OrderCostTime = 0 - for _, order := range smithy.Orders { // 重新计算订单时常 - smithy.OrderCostTime += order.Count * szTime[order.DeskType] - } - } - } - smithy.Clang.DeskType = order.DeskType - // 设置掉落组 - smithy.Items = this.module.configure.GetMultipleDropReward(_gourmetcfg.Using, _gourmetcfg.Drop, smithy.Items) // 获取掉落奖励 - // 记录下订单时间 - smithy.Ctime = smithy.Clang.ETime - smithy.TotalTime += szTime[order.DeskType] - } - } - - if smithy.Clang != nil && smithy.Clang.ETime <= configure.Now().Unix() { - _gourmetcfg := this.module.configure.GetSmithyConfigData(smithy.Clang.DeskType, smithy.Skill[smithy.Clang.DeskType]) - smithy.Items = this.module.configure.GetMultipleDropReward(_gourmetcfg.Using, _gourmetcfg.Drop, smithy.Items) - smithy.Clang = nil - } - } - - // 清除数量为0 的订单 - pos := 0 - for _, order := range smithy.Orders { - if order.Count == 0 { - pos++ - } - } - smithy.Orders = append(smithy.Orders[:0], smithy.Orders[pos:]...) - // 保存信息 - mapData["items"] = smithy.Items - mapData["orders"] = smithy.Orders - mapData["orderCostTime"] = smithy.OrderCostTime - mapData["clang"] = smithy.Clang // 正在做的 - mapData["ctime"] = smithy.Ctime - mapData["totalTime"] = smithy.TotalTime - this.module.ModifySmithyData(uid, mapData) // 同步数据 -} - -func (this *modelSmithy) CalculationDeskSkillLv(uid string, Smithy *pb.DBSmithy) { - mapData := make(map[string]interface{}, 0) - - mapData["skill"] = Smithy.Skill - mapData["deskFloor"] = Smithy.DeskFloor - this.module.ModifySmithyData(uid, mapData) -} - -func (this *modelSmithy) CalculationStoveSkillLv(uid string, Smithy *pb.DBSmithy, stoveSkillLv int32) { - mapData := make(map[string]interface{}, 0) - - var totalTime int32 - for _, v := range Smithy.Orders { - if v.Count > 0 { - preScaleTime := 0 - preSkillConf := this.module.configure.GetSmithyStoveConfigData(stoveSkillLv - 1) - if preSkillConf != nil { - preScaleTime += int(preSkillConf.Time) - } - _skillCfg := this.module.configure.GetSmithyStoveConfigData(stoveSkillLv) - if _skillCfg != nil { - scaleTime := (_skillCfg.Time - int32(preScaleTime)) * v.Count - v.NeedTime += scaleTime - totalTime += scaleTime - if v.NeedTime < 0 { // 担心配置错误 为负数情况 所以这里做下判断 - v.NeedTime = 0 - } - - } - } - } - mapData["orders"] = Smithy.Orders - mapData["stoveLv"] = Smithy.StoveLv - mapData["deskFloor"] = Smithy.DeskFloor - Smithy.OrderCostTime += totalTime - mapData["orderCostTime"] = Smithy.OrderCostTime - this.module.ModifySmithyData(uid, mapData) -} diff --git a/modules/smithyv2/module.go b/modules/smithyv2/module.go deleted file mode 100644 index c6cc7c76b..000000000 --- a/modules/smithyv2/module.go +++ /dev/null @@ -1,63 +0,0 @@ -/* -模块名:Smithy -描述:铁匠铺模块 -开发:梅雄风 -*/ -package smithy - -import ( - "go_dreamfactory/comm" - "go_dreamfactory/lego/core" - "go_dreamfactory/modules" - "go_dreamfactory/pb" -) - -type Smithy struct { - modules.ModuleBase - modelSmithy *modelSmithy - api *apiComp - configure *configureComp -} - -func NewModule() core.IModule { - return &Smithy{} -} - -func (this *Smithy) GetType() core.M_Modules { - return comm.ModuleSmithy -} - -func (this *Smithy) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { - err = this.ModuleBase.Init(service, module, options) - - return -} - -func (this *Smithy) OnInstallComp() { - this.ModuleBase.OnInstallComp() - this.api = this.RegisterComp(new(apiComp)).(*apiComp) - this.modelSmithy = this.RegisterComp(new(modelSmithy)).(*modelSmithy) - this.configure = this.RegisterComp(new(configureComp)).(*configureComp) -} - -// 接口信息 -func (this *Smithy) ModifySmithyData(uid string, data map[string]interface{}) (code pb.ErrorCode) { - err := this.modelSmithy.modifySmithyDataByObjId(uid, data) - if err != nil { - code = pb.ErrorCode_DBError - } - return -} - -func (this *Smithy) SendRdTask(session comm.IUserSession, Items []*pb.UserAssets) { - var equip map[int32]int32 // key xingji value 数量 - equip = make(map[int32]int32, 0) - for _, v := range Items { - if cfg := this.configure.GetEquipmentConfigureById(v.T); cfg == nil { - equip[cfg.Star]++ - } - } - for k, v := range equip { - this.ModuleRtask.SendToRtask(session, comm.Rtype51, v, k) - } -} diff --git a/pb/smithy_db.pb.go b/pb/smithy_db.pb.go index 6d5fb3c46..49546fd46 100644 --- a/pb/smithy_db.pb.go +++ b/pb/smithy_db.pb.go @@ -31,9 +31,10 @@ type DBStove struct { Lv int32 `protobuf:"varint,3,opt,name=lv,proto3" json:"lv"` // 炉子等级 Data map[int32]int32 `protobuf:"bytes,4,rep,name=data,proto3" json:"data" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 套装类型 value 熟练度 Skill map[int32]int32 `protobuf:"bytes,5,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 台子技能 - Temperature int32 `protobuf:"varint,6,opt,name=temperature,proto3" json:"temperature"` // 炉子温度 - RecoveTime int64 `protobuf:"varint,7,opt,name=recoveTime,proto3" json:"recoveTime"` // 恢复满时间 - Business int32 `protobuf:"varint,8,opt,name=business,proto3" json:"business"` // + Forge map[int32]int32 `protobuf:"bytes,6,rep,name=forge,proto3" json:"forge" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 套装类型 value 打造次数 + Temperature int32 `protobuf:"varint,7,opt,name=temperature,proto3" json:"temperature"` // 炉子温度 + RecoveTime int64 `protobuf:"varint,8,opt,name=recoveTime,proto3" json:"recoveTime"` // 恢复满时间 + Business int32 `protobuf:"varint,9,opt,name=business,proto3" json:"business"` // } func (x *DBStove) Reset() { @@ -103,6 +104,13 @@ func (x *DBStove) GetSkill() map[int32]int32 { return nil } +func (x *DBStove) GetForge() map[int32]int32 { + if x != nil { + return x.Forge + } + return nil +} + func (x *DBStove) GetTemperature() int32 { if x != nil { return x.Temperature @@ -259,7 +267,7 @@ type DBTujian struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID - Tujian map[int32]*EquipData `protobuf:"bytes,3,rep,name=tujian,proto3" json:"tujian" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 图鉴信息 + Tujian map[int32]*ForgeData `protobuf:"bytes,3,rep,name=tujian,proto3" json:"tujian" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 图鉴信息 Slider int32 `protobuf:"varint,4,opt,name=slider,proto3" json:"slider"` // 进度 } @@ -309,7 +317,7 @@ func (x *DBTujian) GetUid() string { return "" } -func (x *DBTujian) GetTujian() map[int32]*EquipData { +func (x *DBTujian) GetTujian() map[int32]*ForgeData { if x != nil { return x.Tujian } @@ -323,7 +331,7 @@ func (x *DBTujian) GetSlider() int32 { return 0 } -type EquipData struct { +type ForgeData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -333,8 +341,8 @@ type EquipData struct { Quality int32 `protobuf:"varint,3,opt,name=quality,proto3" json:"quality"` } -func (x *EquipData) Reset() { - *x = EquipData{} +func (x *ForgeData) Reset() { + *x = ForgeData{} if protoimpl.UnsafeEnabled { mi := &file_smithy_smithy_db_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -342,13 +350,13 @@ func (x *EquipData) Reset() { } } -func (x *EquipData) String() string { +func (x *ForgeData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EquipData) ProtoMessage() {} +func (*ForgeData) ProtoMessage() {} -func (x *EquipData) ProtoReflect() protoreflect.Message { +func (x *ForgeData) ProtoReflect() protoreflect.Message { mi := &file_smithy_smithy_db_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -360,26 +368,26 @@ func (x *EquipData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EquipData.ProtoReflect.Descriptor instead. -func (*EquipData) Descriptor() ([]byte, []int) { +// Deprecated: Use ForgeData.ProtoReflect.Descriptor instead. +func (*ForgeData) Descriptor() ([]byte, []int) { return file_smithy_smithy_db_proto_rawDescGZIP(), []int{4} } -func (x *EquipData) GetForgeCount() int32 { +func (x *ForgeData) GetForgeCount() int32 { if x != nil { return x.ForgeCount } return 0 } -func (x *EquipData) GetLv() int32 { +func (x *ForgeData) GetLv() int32 { if x != nil { return x.Lv } return 0 } -func (x *EquipData) GetQuality() int32 { +func (x *ForgeData) GetQuality() int32 { if x != nil { return x.Quality } @@ -653,7 +661,7 @@ var File_smithy_smithy_db_proto protoreflect.FileDescriptor var file_smithy_smithy_db_proto_rawDesc = []byte{ 0x0a, 0x16, 0x73, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2f, 0x73, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x03, 0x0a, 0x07, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 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, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, @@ -662,97 +670,104 @@ var file_smithy_smithy_db_proto_rawDesc = []byte{ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, - 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, - 0x6f, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x6e, - 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x6e, - 0x65, 0x73, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x76, 0x65, 0x2e, 0x46, + 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x67, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x1a, 0x37, + 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x22, 0x70, 0x0a, 0x0a, 0x44, + 0x42, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x73, 0x68, 0x6f, + 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x42, 0x75, 0x73, 0x69, + 0x6e, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, + 0x73, 0x68, 0x6f, 0x70, 0x1a, 0x37, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x22, 0x8b, 0x01, + 0x0a, 0x0e, 0x44, 0x42, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, + 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, 0x1f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x08, + 0x44, 0x42, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 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, 0x2d, 0x0a, 0x06, 0x74, 0x75, + 0x6a, 0x69, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x54, + 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x2e, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x69, + 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6c, 0x69, 0x64, 0x65, + 0x72, 0x1a, 0x45, 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, 0x05, 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, 0x1a, 0x38, 0x0a, 0x0a, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x22, 0x70, 0x0a, 0x0a, 0x44, 0x42, 0x42, 0x75, 0x73, 0x69, - 0x6e, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x73, 0x68, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x2e, - 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x70, 0x1a, - 0x37, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x22, 0x8b, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x42, - 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 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, 0x1f, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, - 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x08, 0x44, 0x42, 0x54, 0x75, 0x6a, - 0x69, 0x61, 0x6e, 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, 0x2d, 0x0a, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, - 0x2e, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x75, - 0x6a, 0x69, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x1a, 0x45, 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, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x45, - 0x71, 0x75, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x55, 0x0a, 0x09, 0x45, 0x71, 0x75, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, - 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x05, 0x43, 0x6c, - 0x61, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x0a, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x65, 0x73, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, - 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, - 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x82, 0x04, 0x0a, 0x08, 0x44, 0x42, 0x53, 0x6d, - 0x69, 0x74, 0x68, 0x79, 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, 0x1c, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x52, 0x05, 0x63, - 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, - 0x67, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x05, - 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, - 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x76, - 0x65, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x76, 0x65, - 0x4c, 0x76, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, - 0x0a, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2e, 0x44, 0x65, 0x73, - 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x64, 0x65, 0x73, - 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x46, - 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x76, - 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, 0x1a, 0x3c, - 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 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, + 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x55, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x67, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, + 0x4f, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x5a, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x82, 0x04, 0x0a, + 0x08, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 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, 0x1c, 0x0a, 0x05, 0x63, + 0x6c, 0x61, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x43, 0x6c, 0x61, + 0x6e, 0x67, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x6e, 0x67, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x21, + 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x79, 0x2e, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x73, 0x74, 0x6f, 0x76, 0x65, 0x4c, 0x76, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x74, + 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x53, 0x6d, 0x69, 0x74, 0x68, + 0x79, 0x2e, 0x44, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x09, 0x64, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x74, 0x6f, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x73, 0x74, 0x6f, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 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, 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x6b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 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 ( @@ -767,41 +782,43 @@ func file_smithy_smithy_db_proto_rawDescGZIP() []byte { return file_smithy_smithy_db_proto_rawDescData } -var file_smithy_smithy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_smithy_smithy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_smithy_smithy_db_proto_goTypes = []interface{}{ (*DBStove)(nil), // 0: DBStove (*DBBusiness)(nil), // 1: DBBusiness (*DBBusinessData)(nil), // 2: DBBusinessData (*DBTujian)(nil), // 3: DBTujian - (*EquipData)(nil), // 4: EquipData + (*ForgeData)(nil), // 4: ForgeData (*Clang)(nil), // 5: Clang (*OrderClang)(nil), // 6: OrderClang (*DBSmithy)(nil), // 7: DBSmithy nil, // 8: DBStove.DataEntry nil, // 9: DBStove.SkillEntry - nil, // 10: DBBusiness.ShopEntry - nil, // 11: DBTujian.TujianEntry - nil, // 12: DBSmithy.SkillEntry - nil, // 13: DBSmithy.DeskFloorEntry - (*UserAssets)(nil), // 14: UserAssets + nil, // 10: DBStove.ForgeEntry + nil, // 11: DBBusiness.ShopEntry + nil, // 12: DBTujian.TujianEntry + nil, // 13: DBSmithy.SkillEntry + nil, // 14: DBSmithy.DeskFloorEntry + (*UserAssets)(nil), // 15: UserAssets } var file_smithy_smithy_db_proto_depIdxs = []int32{ 8, // 0: DBStove.data:type_name -> DBStove.DataEntry 9, // 1: DBStove.skill:type_name -> DBStove.SkillEntry - 10, // 2: DBBusiness.shop:type_name -> DBBusiness.ShopEntry - 1, // 3: DBBusinessData.data:type_name -> DBBusiness - 11, // 4: DBTujian.tujian:type_name -> DBTujian.TujianEntry - 5, // 5: DBSmithy.clang:type_name -> Clang - 6, // 6: DBSmithy.orders:type_name -> OrderClang - 14, // 7: DBSmithy.items:type_name -> UserAssets - 12, // 8: DBSmithy.skill:type_name -> DBSmithy.SkillEntry - 13, // 9: DBSmithy.deskFloor:type_name -> DBSmithy.DeskFloorEntry - 4, // 10: DBTujian.TujianEntry.value:type_name -> EquipData - 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 - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 10, // 2: DBStove.forge:type_name -> DBStove.ForgeEntry + 11, // 3: DBBusiness.shop:type_name -> DBBusiness.ShopEntry + 1, // 4: DBBusinessData.data:type_name -> DBBusiness + 12, // 5: DBTujian.tujian:type_name -> DBTujian.TujianEntry + 5, // 6: DBSmithy.clang:type_name -> Clang + 6, // 7: DBSmithy.orders:type_name -> OrderClang + 15, // 8: DBSmithy.items:type_name -> UserAssets + 13, // 9: DBSmithy.skill:type_name -> DBSmithy.SkillEntry + 14, // 10: DBSmithy.deskFloor:type_name -> DBSmithy.DeskFloorEntry + 4, // 11: DBTujian.TujianEntry.value:type_name -> ForgeData + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_smithy_smithy_db_proto_init() } @@ -860,7 +877,7 @@ func file_smithy_smithy_db_proto_init() { } } file_smithy_smithy_db_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EquipData); i { + switch v := v.(*ForgeData); i { case 0: return &v.state case 1: @@ -914,7 +931,7 @@ func file_smithy_smithy_db_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_smithy_smithy_db_proto_rawDesc, NumEnums: 0, - NumMessages: 14, + NumMessages: 15, NumExtensions: 0, NumServices: 0, },