From e37efad183372ae8587e295669318aa158c28cc4 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Thu, 2 Mar 2023 18:12:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/const.go | 2 + comm/imodule.go | 2 +- modules/practice/api_accept.go | 80 +++++ modules/practice/api_qiecuo.go | 51 +++ modules/practice/api_refuse.go | 32 ++ modules/practice/modelQiecuo.go | 96 ++++++ modules/practice/module.go | 29 +- modules/pvp/module.go | 3 +- modules/smithy/model_task.go | 44 +-- pb/practice_msg.pb.go | 534 +++++++++++++++++++++++++++++--- 10 files changed, 806 insertions(+), 67 deletions(-) create mode 100644 modules/practice/api_accept.go create mode 100644 modules/practice/api_qiecuo.go create mode 100644 modules/practice/api_refuse.go create mode 100644 modules/practice/modelQiecuo.go diff --git a/comm/const.go b/comm/const.go index b89dbde7b..af548d66f 100644 --- a/comm/const.go +++ b/comm/const.go @@ -240,6 +240,8 @@ const ( TableDispatch = "dispatch" TablePandaAtlas = "pandaatlas" + //武馆切磋 + TablePandataQiecuo = "qiecuo" ) // RPC服务接口定义处 diff --git a/comm/imodule.go b/comm/imodule.go index 3c925ab46..aa01f2f09 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -431,6 +431,6 @@ type ( //添加武馆资源 AddItems(session IUserSession, items map[string]int32, bPush bool) (code pb.ErrorCode) //pvp切磋结果通知 - ChallengeResults(red, bule string, winSide int32) + ChallengeResults(bid, red, bule string, winSide int32) } ) diff --git a/modules/practice/api_accept.go b/modules/practice/api_accept.go new file mode 100644 index 000000000..773e52ae8 --- /dev/null +++ b/modules/practice/api_accept.go @@ -0,0 +1,80 @@ +package practice + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + + "google.golang.org/protobuf/proto" +) + +//接受切磋 + +func (this *apiComp) AcceptCheck(session comm.IUserSession, req *pb.PracticeAcceptReq) (code pb.ErrorCode) { + if req.Uid == "" { + code = pb.ErrorCode_ReqParameterError + } + return +} + +func (this *apiComp) Accept(session comm.IUserSession, req *pb.PracticeAcceptReq) (code pb.ErrorCode, data proto.Message) { + if code = this.AcceptCheck(session, req); code != pb.ErrorCode_Success { + return + } + + //校验切磋请求是否超时 + if qr := this.module.modelQiecuo.getQiecuo(req.Uid); qr != nil { + now := configure.Now().Unix() + if now-qr.Timestamp > 10 { //大于10s 切磋超时 + code = pb.ErrorCode_FriendQiecuoTimeout + this.module.Debug("切磋接受超时", log.Field{Key: "uid", Value: session.GetUserId()}) + return + } + } else { + code = pb.ErrorCode_FriendQiecuoNoRequest + return + } + + if imodule, err := this.module.service.GetModule(comm.ModulePvp); err == nil { + if ipvp, ok := imodule.(comm.IPvp); ok { + //发起者 red + red := this.module.ModuleUser.GetUser(req.Uid) + if red == nil { + code = pb.ErrorCode_UserNofound + this.module.Error("未找到红方信息", log.Field{Key: "uid", Value: req.Uid}) + return + } + blue := this.module.ModuleUser.GetUser(session.GetUserId()) + if blue == nil { + code = pb.ErrorCode_UserNofound + this.module.Error("未找到蓝方信息", log.Field{Key: "uid", Value: session.GetUserId()}) + return + } + matchId, c := ipvp.CreatePvp( + &pb.PvpUserInfo{Uid: red.Uid, Name: red.Name, Avatar: red.Avatar, Lv: red.Lv}, + &pb.PvpUserInfo{Uid: blue.Uid, Name: blue.Name, Avatar: blue.Avatar, Lv: blue.Lv}, + pb.PvpType_friends, + ) + if c != pb.ErrorCode_Success { + this.module.Debug("createPvp code:", log.Field{Key: "code", Value: c}) + return + } + + //更新状态 + this.module.modelQiecuo.updateQiecuoRecord(req.Uid, session.GetUserId(), matchId) + } + } + + if err := session.SendMsg(string(this.module.GetType()), "accept", &pb.FriendAcceptResp{ + IsSucc: true, + }); err != nil { + code = pb.ErrorCode_SystemError + return + } + + this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", + &pb.FriendQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 2}, req.Uid) + + return +} diff --git a/modules/practice/api_qiecuo.go b/modules/practice/api_qiecuo.go new file mode 100644 index 000000000..a336522bb --- /dev/null +++ b/modules/practice/api_qiecuo.go @@ -0,0 +1,51 @@ +package practice + +import ( + "errors" + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +// 踢馆(熊猫武馆) +func (this *apiComp) QiecuoCheck(session comm.IUserSession, req *pb.PracticeQiecuoReq) (code pb.ErrorCode) { + if req.Fid == "" { + code = pb.ErrorCode_ReqParameterError + } + return +} + +func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq) (code pb.ErrorCode, data proto.Message) { + if code = this.QiecuoCheck(session, req); code != pb.ErrorCode_Success { + return + } + + //目标是否在线 + if !this.module.ModuleUser.IsOnline(req.Fid) { + code = pb.ErrorCode_UserOffline + return + } + + //切磋请求处理 + if err := this.module.modelQiecuo.qiecuoReq(session.GetUserId(), req.Fid); err != nil { + var customErr = new(comm.CustomError) + if errors.As(err, &customErr) { + code = customErr.Code + } else { + code = pb.ErrorCode_DBError + } + return + } + + if err := session.SendMsg(string(this.module.GetType()), "qiecuo", &pb.PracticeQiecuoResp{ + Fid: req.Fid, + }); err != nil { + code = pb.ErrorCode_SystemError + return + } + this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", + &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 1}, req.Fid) + + return +} diff --git a/modules/practice/api_refuse.go b/modules/practice/api_refuse.go new file mode 100644 index 000000000..9a6a7a647 --- /dev/null +++ b/modules/practice/api_refuse.go @@ -0,0 +1,32 @@ +package practice + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +// 切磋终止 +func (this *apiComp) RefuseCheck(session comm.IUserSession, req *pb.PracticeRefuseReq) (code pb.ErrorCode) { + return +} + +func (this *apiComp) Refuse(session comm.IUserSession, req *pb.PracticeRefuseReq) (code pb.ErrorCode, data proto.Message) { + if code = this.RefuseCheck(session, req); code != pb.ErrorCode_Success { + return + } + + //清楚切磋请求记录 + this.module.modelQiecuo.DelByUId(req.Uid) + + if err := session.SendMsg(string(this.module.GetType()), "refuse", &pb.PracticeRefuseResp{ + IsSucc: true, + }); err != nil { + code = pb.ErrorCode_SystemError + return + } + this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", + &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 3}, req.Uid) + return +} diff --git a/modules/practice/modelQiecuo.go b/modules/practice/modelQiecuo.go new file mode 100644 index 000000000..7ddefba23 --- /dev/null +++ b/modules/practice/modelQiecuo.go @@ -0,0 +1,96 @@ +package practice + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/modules" + "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/x/bsonx" +) + +///熊猫武馆数据表 +type modelQiecuo struct { + modules.MCompModel + module *Practice +} + +func (this *modelQiecuo) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) { + this.TableName = comm.TablePandataQiecuo + this.MCompModel.Init(service, module, comp, opt) + this.module = module.(*Practice) + //创建uid索引 + this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{ + Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}}, + }) + return +} + +func (this *modelQiecuo) getQiecuo(uid string) *pb.QiecuoRecord { + record := &pb.QiecuoRecord{} + if err := this.Get(uid, record); err != nil { + this.module.Errorln(err) + return nil + } + return record +} + +// 切磋请求处理 +func (this *modelQiecuo) qiecuoReq(uid, targetUid string) error { + qr := this.getQiecuo(uid) + if qr == nil { + //创建切磋记录 + qr = &pb.QiecuoRecord{ + Uid: uid, + TargetId: targetUid, + Timestamp: configure.Now().Unix(), + Status: 1, //已发起 + } + if err := this.Add(uid, qr); err != nil { + this.module.Errorln(err) + return err + } + } else { + //如果目标未接受且在超时时间内,不允许再次发送 + now := configure.Now().Unix() + if qr.Status == 1 && now-qr.Timestamp < 10 { + 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 err + } + } + } + + return nil +} + +// 更新切磋记录 +func (this *modelQiecuo) updateQiecuoRecord(uid, targetUid, matchId string) error { + qr := this.getQiecuo(uid) + if qr != nil { + update := map[string]interface{}{ + "matchId": matchId, + "status": 2, //已接受 + "timestamp": configure.Now().Unix(), + } + if err := this.Change(uid, update); err != nil { + this.module.Errorln(err) + return err + } + this.module.Debug("更新切磋", + log.Field{Key: "uid", Value: uid}, + log.Field{Key: "matchId", Value: matchId}) + } + + return nil +} diff --git a/modules/practice/module.go b/modules/practice/module.go index 4fa224eeb..84250a00a 100644 --- a/modules/practice/module.go +++ b/modules/practice/module.go @@ -4,6 +4,7 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" "go_dreamfactory/modules" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" @@ -23,11 +24,13 @@ func NewModule() core.IModule { type Practice struct { modules.ModuleBase service base.IRPCXService + friend comm.IFriend mail comm.Imail atlas comm.IPandaAtlas api *apiComp configure *configureComp modelPandata *modelPandata + modelQiecuo *modelQiecuo } //模块名 @@ -44,6 +47,10 @@ func (this *Practice) Init(service core.IService, module core.IModule, options c func (this *Practice) Start() (err error) { err = this.ModuleBase.Start() var module core.IModule + if module, err = this.service.GetModule(comm.ModuleFriend); err != nil { + return + } + this.friend = module.(comm.IFriend) if module, err = this.service.GetModule(comm.ModuleMail); err != nil { return } @@ -61,6 +68,7 @@ func (this *Practice) OnInstallComp() { this.api = this.RegisterComp(new(apiComp)).(*apiComp) this.configure = this.RegisterComp(new(configureComp)).(*configureComp) this.modelPandata = this.RegisterComp(new(modelPandata)).(*modelPandata) + this.modelQiecuo = this.RegisterComp(new(modelQiecuo)).(*modelQiecuo) } func (this *Practice) AddItems(session comm.IUserSession, items map[string]int32, bPush bool) (code pb.ErrorCode) { @@ -136,10 +144,11 @@ func (this *Practice) TaskComplete(session comm.IUserSession, taskid int32) { } } -func (this *Practice) ChallengeResults(red, bule string, winSide int32) { +func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { if winSide == 0 { return } + var ( redroom *pb.DBPracticeRoom reduser *pb.DBUser @@ -148,6 +157,24 @@ func (this *Practice) ChallengeResults(red, bule string, winSide int32) { keep bool err error ) + + qr := this.modelQiecuo.getQiecuo(red) + if qr != nil && qr.MatchId == bid { + this.Debug("清理切磋记录", + log.Field{Key: "redUid", Value: red}, + log.Field{Key: "matchId", Value: bid}) + //更新时间戳 + update := map[string]interface{}{ + "endTime": configure.Now().Unix(), + } + if err = this.modelQiecuo.Change(red, update); err != nil { + this.Errorln(err) + return + } + return + + } + reduser = this.ModuleUser.GetUser(red) buleuser = this.ModuleUser.GetUser(bule) if redroom, err = this.modelPandata.queryUserMartialhall(red); err != nil { diff --git a/modules/pvp/module.go b/modules/pvp/module.go index ec8856b2f..d46b4ffea 100644 --- a/modules/pvp/module.go +++ b/modules/pvp/module.go @@ -197,8 +197,7 @@ func (this *Pvp) PvpFinishPush(out *pb.BattleFinishPush) { this.lock.RUnlock() switch battle.Ptype { case pb.PvpType_friends: - go this.friend.QiecuoFinishNotify(battle.Red.Uid, out.Battleid) - go this.practice.ChallengeResults(battle.Red.Uid, battle.Blue.Uid, out.WinSide) + go this.practice.ChallengeResults(out.Battleid, battle.Red.Uid, battle.Blue.Uid, out.WinSide) break } this.modelPvpComp.delpvp(out.Battleid) diff --git a/modules/smithy/model_task.go b/modules/smithy/model_task.go index 87ea1aef2..e7a1786cf 100644 --- a/modules/smithy/model_task.go +++ b/modules/smithy/model_task.go @@ -34,29 +34,29 @@ func (this *modelTask) getTaskRecord(uid string) (*pb.DBTujianTask, error) { } func (this *modelTask) updateTaskRecord(uid string, taskId int32) error { - if !this.CheckTaskStatus(uid, taskId) { - return comm.NewCustomError(pb.ErrorCode_SmithyTaskNoFinished) - } - dt, err := this.getTaskRecord(uid) - if err != nil { - return err - } + // if !this.CheckTaskStatus(uid, taskId) { + // return comm.NewCustomError(pb.ErrorCode_SmithyTaskNoFinished) + // } + // dt, err := this.getTaskRecord(uid) + // if err != nil { + // return err + // } - if dt.Uid == "" { - this.Add(uid, &pb.DBTujianTask{Uid: uid, TaskId: taskId, Received: 2}) - } else { - // 已存在 重复领取 - if dt.Received == 2 { - return comm.NewCustomError(pb.ErrorCode_SmithyTaskReceived) - } else { - update := map[string]interface{}{ - "received": 2, - } - if err := this.Change(uid, update); err != nil { - return err - } - } - } + // if dt.Uid == "" { + // this.Add(uid, &pb.DBTujianTask{Uid: uid, TaskId: taskId, Received: 2}) + // } else { + // // 已存在 重复领取 + // if dt.Received == 2 { + // return comm.NewCustomError(pb.ErrorCode_SmithyTaskReceived) + // } else { + // update := map[string]interface{}{ + // "received": 2, + // } + // if err := this.Change(uid, update); err != nil { + // return err + // } + // } + // } return nil } diff --git a/pb/practice_msg.pb.go b/pb/practice_msg.pb.go index b647d5f33..fc5ee043a 100644 --- a/pb/practice_msg.pb.go +++ b/pb/practice_msg.pb.go @@ -1297,6 +1297,347 @@ func (x *PracticeGymConfirmResp) GetBuffid() int32 { return 0 } +///武馆切磋请求 +type PracticeQiecuoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fid string `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid"` +} + +func (x *PracticeQiecuoReq) Reset() { + *x = PracticeQiecuoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_msg_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PracticeQiecuoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PracticeQiecuoReq) ProtoMessage() {} + +func (x *PracticeQiecuoReq) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_msg_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PracticeQiecuoReq.ProtoReflect.Descriptor instead. +func (*PracticeQiecuoReq) Descriptor() ([]byte, []int) { + return file_practice_practice_msg_proto_rawDescGZIP(), []int{25} +} + +func (x *PracticeQiecuoReq) GetFid() string { + if x != nil { + return x.Fid + } + return "" +} + +type PracticeQiecuoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fid string `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid"` +} + +func (x *PracticeQiecuoResp) Reset() { + *x = PracticeQiecuoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_msg_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PracticeQiecuoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PracticeQiecuoResp) ProtoMessage() {} + +func (x *PracticeQiecuoResp) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_msg_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PracticeQiecuoResp.ProtoReflect.Descriptor instead. +func (*PracticeQiecuoResp) Descriptor() ([]byte, []int) { + return file_practice_practice_msg_proto_rawDescGZIP(), []int{26} +} + +func (x *PracticeQiecuoResp) GetFid() string { + if x != nil { + return x.Fid + } + return "" +} + +//接受切磋 +type PracticeAcceptReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //切磋发起者 +} + +func (x *PracticeAcceptReq) Reset() { + *x = PracticeAcceptReq{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_msg_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PracticeAcceptReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PracticeAcceptReq) ProtoMessage() {} + +func (x *PracticeAcceptReq) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_msg_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PracticeAcceptReq.ProtoReflect.Descriptor instead. +func (*PracticeAcceptReq) Descriptor() ([]byte, []int) { + return file_practice_practice_msg_proto_rawDescGZIP(), []int{27} +} + +func (x *PracticeAcceptReq) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +type PracticeAcceptResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsSucc bool `protobuf:"varint,1,opt,name=isSucc,proto3" json:"isSucc"` +} + +func (x *PracticeAcceptResp) Reset() { + *x = PracticeAcceptResp{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_msg_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PracticeAcceptResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PracticeAcceptResp) ProtoMessage() {} + +func (x *PracticeAcceptResp) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_msg_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PracticeAcceptResp.ProtoReflect.Descriptor instead. +func (*PracticeAcceptResp) Descriptor() ([]byte, []int) { + return file_practice_practice_msg_proto_rawDescGZIP(), []int{28} +} + +func (x *PracticeAcceptResp) GetIsSucc() bool { + if x != nil { + return x.IsSucc + } + return false +} + +//拒绝切磋 +type PracticeRefuseReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //切磋发起者 +} + +func (x *PracticeRefuseReq) Reset() { + *x = PracticeRefuseReq{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_msg_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PracticeRefuseReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PracticeRefuseReq) ProtoMessage() {} + +func (x *PracticeRefuseReq) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_msg_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PracticeRefuseReq.ProtoReflect.Descriptor instead. +func (*PracticeRefuseReq) Descriptor() ([]byte, []int) { + return file_practice_practice_msg_proto_rawDescGZIP(), []int{29} +} + +func (x *PracticeRefuseReq) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +type PracticeRefuseResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsSucc bool `protobuf:"varint,1,opt,name=isSucc,proto3" json:"isSucc"` +} + +func (x *PracticeRefuseResp) Reset() { + *x = PracticeRefuseResp{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_msg_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PracticeRefuseResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PracticeRefuseResp) ProtoMessage() {} + +func (x *PracticeRefuseResp) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_msg_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PracticeRefuseResp.ProtoReflect.Descriptor instead. +func (*PracticeRefuseResp) Descriptor() ([]byte, []int) { + return file_practice_practice_msg_proto_rawDescGZIP(), []int{30} +} + +func (x *PracticeRefuseResp) GetIsSucc() bool { + if x != nil { + return x.IsSucc + } + return false +} + +//切磋通知 +type PracticeQiecuonotifyPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //发起者(切磋) + NotifyType int32 `protobuf:"varint,2,opt,name=notifyType,proto3" json:"notifyType"` //1发起通知 2接受通知 3拒绝通知 +} + +func (x *PracticeQiecuonotifyPush) Reset() { + *x = PracticeQiecuonotifyPush{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_msg_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PracticeQiecuonotifyPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PracticeQiecuonotifyPush) ProtoMessage() {} + +func (x *PracticeQiecuonotifyPush) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_msg_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PracticeQiecuonotifyPush.ProtoReflect.Descriptor instead. +func (*PracticeQiecuonotifyPush) Descriptor() ([]byte, []int) { + return file_practice_practice_msg_proto_rawDescGZIP(), []int{31} +} + +func (x *PracticeQiecuonotifyPush) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *PracticeQiecuonotifyPush) GetNotifyType() int32 { + if x != nil { + return x.NotifyType + } + return 0 +} + var File_practice_practice_msg_proto protoreflect.FileDescriptor var file_practice_practice_msg_proto_rawDesc = []byte{ @@ -1412,8 +1753,28 @@ var file_practice_practice_msg_proto_rawDesc = []byte{ 0x30, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, - 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x64, 0x22, 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, + 0x63, 0x75, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, + 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x69, 0x64, + 0x22, 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 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, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, + 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, + 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x4c, 0x0a, 0x18, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1428,47 +1789,54 @@ func file_practice_practice_msg_proto_rawDescGZIP() []byte { return file_practice_practice_msg_proto_rawDescData } -var file_practice_practice_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_practice_practice_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 34) var file_practice_practice_msg_proto_goTypes = []interface{}{ - (*PracticeInfoReq)(nil), // 0: PracticeInfoReq - (*PracticeInfoResp)(nil), // 1: PracticeInfoResp - (*PracticeFriendRommReq)(nil), // 2: PracticeFriendRommReq - (*PracticeFriendRommResp)(nil), // 3: PracticeFriendRommResp - (*PracticeUpgradeReq)(nil), // 4: PracticeUpgradeReq - (*PracticeUpgradeResp)(nil), // 5: PracticeUpgradeResp - (*PracticePracticeReq)(nil), // 6: PracticePracticeReq - (*PracticePracticeResp)(nil), // 7: PracticePracticeResp - (*PracticeLootReq)(nil), // 8: PracticeLootReq - (*PracticeLootResp)(nil), // 9: PracticeLootResp - (*PracticeExpulsionReq)(nil), // 10: PracticeExpulsionReq - (*PracticeExpulsionResp)(nil), // 11: PracticeExpulsionResp - (*PracticeReceiveReq)(nil), // 12: PracticeReceiveReq - (*PracticeReceiveResp)(nil), // 13: PracticeReceiveResp - (*PracticeEnrolledReq)(nil), // 14: PracticeEnrolledReq - (*PracticeEnrolledResp)(nil), // 15: PracticeEnrolledResp - (*PracticeJXItemPush)(nil), // 16: PracticeJXItemPush - (*PracticeGymInfoReq)(nil), // 17: PracticeGymInfoReq - (*PracticeGymInfoResp)(nil), // 18: PracticeGymInfoResp - (*PracticeGymRefreshReq)(nil), // 19: PracticeGymRefreshReq - (*PracticeGymRefreshResp)(nil), // 20: PracticeGymRefreshResp - (*PracticeGetGymBuffReq)(nil), // 21: PracticeGetGymBuffReq - (*PracticeGetGymBuffResp)(nil), // 22: PracticeGetGymBuffResp - (*PracticeGymConfirmReq)(nil), // 23: PracticeGymConfirmReq - (*PracticeGymConfirmResp)(nil), // 24: PracticeGymConfirmResp - nil, // 25: PracticeExpulsionResp.KnapsackEntry - nil, // 26: PracticeReceiveResp.KnapsackEntry - (*DBPracticeRoom)(nil), // 27: DBPracticeRoom - (*DBPracticePillar)(nil), // 28: DBPracticePillar + (*PracticeInfoReq)(nil), // 0: PracticeInfoReq + (*PracticeInfoResp)(nil), // 1: PracticeInfoResp + (*PracticeFriendRommReq)(nil), // 2: PracticeFriendRommReq + (*PracticeFriendRommResp)(nil), // 3: PracticeFriendRommResp + (*PracticeUpgradeReq)(nil), // 4: PracticeUpgradeReq + (*PracticeUpgradeResp)(nil), // 5: PracticeUpgradeResp + (*PracticePracticeReq)(nil), // 6: PracticePracticeReq + (*PracticePracticeResp)(nil), // 7: PracticePracticeResp + (*PracticeLootReq)(nil), // 8: PracticeLootReq + (*PracticeLootResp)(nil), // 9: PracticeLootResp + (*PracticeExpulsionReq)(nil), // 10: PracticeExpulsionReq + (*PracticeExpulsionResp)(nil), // 11: PracticeExpulsionResp + (*PracticeReceiveReq)(nil), // 12: PracticeReceiveReq + (*PracticeReceiveResp)(nil), // 13: PracticeReceiveResp + (*PracticeEnrolledReq)(nil), // 14: PracticeEnrolledReq + (*PracticeEnrolledResp)(nil), // 15: PracticeEnrolledResp + (*PracticeJXItemPush)(nil), // 16: PracticeJXItemPush + (*PracticeGymInfoReq)(nil), // 17: PracticeGymInfoReq + (*PracticeGymInfoResp)(nil), // 18: PracticeGymInfoResp + (*PracticeGymRefreshReq)(nil), // 19: PracticeGymRefreshReq + (*PracticeGymRefreshResp)(nil), // 20: PracticeGymRefreshResp + (*PracticeGetGymBuffReq)(nil), // 21: PracticeGetGymBuffReq + (*PracticeGetGymBuffResp)(nil), // 22: PracticeGetGymBuffResp + (*PracticeGymConfirmReq)(nil), // 23: PracticeGymConfirmReq + (*PracticeGymConfirmResp)(nil), // 24: PracticeGymConfirmResp + (*PracticeQiecuoReq)(nil), // 25: PracticeQiecuoReq + (*PracticeQiecuoResp)(nil), // 26: PracticeQiecuoResp + (*PracticeAcceptReq)(nil), // 27: PracticeAcceptReq + (*PracticeAcceptResp)(nil), // 28: PracticeAcceptResp + (*PracticeRefuseReq)(nil), // 29: PracticeRefuseReq + (*PracticeRefuseResp)(nil), // 30: PracticeRefuseResp + (*PracticeQiecuonotifyPush)(nil), // 31: PracticeQiecuonotifyPush + nil, // 32: PracticeExpulsionResp.KnapsackEntry + nil, // 33: PracticeReceiveResp.KnapsackEntry + (*DBPracticeRoom)(nil), // 34: DBPracticeRoom + (*DBPracticePillar)(nil), // 35: DBPracticePillar } var file_practice_practice_msg_proto_depIdxs = []int32{ - 27, // 0: PracticeInfoResp.info:type_name -> DBPracticeRoom - 27, // 1: PracticeFriendRommResp.info:type_name -> DBPracticeRoom - 28, // 2: PracticePracticeResp.pillar:type_name -> DBPracticePillar - 28, // 3: PracticeLootResp.pillar:type_name -> DBPracticePillar - 28, // 4: PracticeExpulsionResp.pillar:type_name -> DBPracticePillar - 25, // 5: PracticeExpulsionResp.knapsack:type_name -> PracticeExpulsionResp.KnapsackEntry - 28, // 6: PracticeReceiveResp.pillar:type_name -> DBPracticePillar - 26, // 7: PracticeReceiveResp.knapsack:type_name -> PracticeReceiveResp.KnapsackEntry + 34, // 0: PracticeInfoResp.info:type_name -> DBPracticeRoom + 34, // 1: PracticeFriendRommResp.info:type_name -> DBPracticeRoom + 35, // 2: PracticePracticeResp.pillar:type_name -> DBPracticePillar + 35, // 3: PracticeLootResp.pillar:type_name -> DBPracticePillar + 35, // 4: PracticeExpulsionResp.pillar:type_name -> DBPracticePillar + 32, // 5: PracticeExpulsionResp.knapsack:type_name -> PracticeExpulsionResp.KnapsackEntry + 35, // 6: PracticeReceiveResp.pillar:type_name -> DBPracticePillar + 33, // 7: PracticeReceiveResp.knapsack:type_name -> PracticeReceiveResp.KnapsackEntry 8, // [8:8] is the sub-list for method output_type 8, // [8:8] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name @@ -1783,6 +2151,90 @@ func file_practice_practice_msg_proto_init() { return nil } } + file_practice_practice_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PracticeQiecuoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_practice_practice_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PracticeQiecuoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_practice_practice_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PracticeAcceptReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_practice_practice_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PracticeAcceptResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_practice_practice_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PracticeRefuseReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_practice_practice_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PracticeRefuseResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_practice_practice_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PracticeQiecuonotifyPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1790,7 +2242,7 @@ func file_practice_practice_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_practice_practice_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 27, + NumMessages: 34, NumExtensions: 0, NumServices: 0, },