From f0877961f984f2b62c63a1602c82d4f329c8d64f Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Thu, 30 Mar 2023 14:14:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/const.go | 19 +- modules/autoBattle/model_auto.go | 4 +- modules/autoBattle/module.go | 8 +- modules/chat/modelChat.go | 6 +- modules/chat/module.go | 9 +- modules/combat/module.go | 4 +- modules/equipment/module.go | 9 +- modules/hero/model_hero.go | 4 +- modules/hero/module.go | 5 +- modules/items/module.go | 8 +- modules/practice/modelPandata.go | 1 + modules/practice/module.go | 1 + modules/privilege/module.go | 2 +- modules/pvp/module.go | 6 +- modules/task/module.go | 6 +- modules/user/api_create.go | 14 +- modules/user/module.go | 18 +- pb/comm.pb.go | 468 +++++++++++++++++++------------ services/comp_gateroute.go | 31 +- 19 files changed, 376 insertions(+), 247 deletions(-) diff --git a/comm/const.go b/comm/const.go index 4bf1f66c6..ca6adca4f 100644 --- a/comm/const.go +++ b/comm/const.go @@ -247,15 +247,16 @@ const ( // RPC服务接口定义处 const ( //Rpc //Gateway 网关消息 - Rpc_GatewayRoute core.Rpc_Key = "Rpc_GatewayRoute" //网关路由 - Rpc_GatewayAgentBind core.Rpc_Key = "Rpc_GatewayAgentBind" //代理绑定 绑定用户Id - Rpc_GatewayAgentUnBind core.Rpc_Key = "Rpc_GatewayAgentUnBind" //代理解绑 解绑用户Id - Rpc_GatewayAgentSendMsg core.Rpc_Key = "Rpc_GatewayAgentSendMsg" //代理发送消息 向用户发送消息 - Rpc_GatewaySendBatchMsg core.Rpc_Key = "Rpc_GatewaySendBatchMsg" //向多个用户发送消息 - Rpc_GatewaySendRadioMsg core.Rpc_Key = "Rpc_GatewaySendRadioMsg" //广播消息 - Rpc_GatewayAgentClose core.Rpc_Key = "Rpc_GatewayAgentClose" //代理关闭 关闭用户连接 - Rpc_GatewayNoticeUserLogin core.Rpc_Key = "Rpc_NoticeUserLogin" //通知用户登录 - Rpc_GatewayNoticeUserClose core.Rpc_Key = "Rpc_NoticeUserClose" //通知用户离线 + Rpc_GatewayRoute core.Rpc_Key = "Rpc_GatewayRoute" //网关路由 + Rpc_GatewayAgentBind core.Rpc_Key = "Rpc_GatewayAgentBind" //代理绑定 绑定用户Id + Rpc_GatewayAgentUnBind core.Rpc_Key = "Rpc_GatewayAgentUnBind" //代理解绑 解绑用户Id + Rpc_GatewayAgentSendMsg core.Rpc_Key = "Rpc_GatewayAgentSendMsg" //代理发送消息 向用户发送消息 + Rpc_GatewaySendBatchMsg core.Rpc_Key = "Rpc_GatewaySendBatchMsg" //向多个用户发送消息 + Rpc_GatewaySendRadioMsg core.Rpc_Key = "Rpc_GatewaySendRadioMsg" //广播消息 + Rpc_GatewayAgentClose core.Rpc_Key = "Rpc_GatewayAgentClose" //代理关闭 关闭用户连接 + Rpc_GatewayNoticeUserLogin core.Rpc_Key = "Rpc_NoticeUserLogin" //通知用户登录 + Rpc_GatewayNoticeUserCreate core.Rpc_Key = "Rpc_NoticeUserCreate" //通知用户创角 + Rpc_GatewayNoticeUserClose core.Rpc_Key = "Rpc_NoticeUserClose" //通知用户离线 //GM 命令 Rpc_ModuleGMCreateCmd core.Rpc_Key = "Rpc_ModuleGMCreateCmd" //执行GM命令 //Chat 命令 diff --git a/modules/autoBattle/model_auto.go b/modules/autoBattle/model_auto.go index b7e329fb8..ffcc2fe01 100644 --- a/modules/autoBattle/model_auto.go +++ b/modules/autoBattle/model_auto.go @@ -56,7 +56,7 @@ func (this *modelAutoBattle) getAutoBattleList(uid string) (result []*pb.DBAutoB } // 玩家离线清除自动战斗数据 -func (this *modelAutoBattle) RemoveUserInfo(session comm.IUserSession) (err error) { - this.BatchDelLists(session.GetUserId()) +func (this *modelAutoBattle) RemoveUserInfo(uid string) (err error) { + this.BatchDelLists(uid) return err } diff --git a/modules/autoBattle/module.go b/modules/autoBattle/module.go index d995a3b89..adc4c1bd6 100644 --- a/modules/autoBattle/module.go +++ b/modules/autoBattle/module.go @@ -4,6 +4,7 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/event" + "go_dreamfactory/lego/sys/log" "go_dreamfactory/modules" "go_dreamfactory/pb" ) @@ -54,7 +55,8 @@ func (this *AutoBattle) ModifyAutoData(uid string, id string, data map[string]in } //Event-------------------------------------------------------------------------------------------------玩家离线 -func (this *AutoBattle) EventUserOffline(session comm.IUserSession) { - err := this.modelAutoBattle.RemoveUserInfo(session) - this.Debugf("EventUserOffline:%s err:%v", session.ToString(), err) +func (this *AutoBattle) EventUserOffline(uid, sessionid string) { + if err := this.modelAutoBattle.RemoveUserInfo(uid); err != nil { + this.Error("EventUserOffline", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}) + } } diff --git a/modules/chat/modelChat.go b/modules/chat/modelChat.go index c2a1a61df..580021074 100644 --- a/modules/chat/modelChat.go +++ b/modules/chat/modelChat.go @@ -206,17 +206,17 @@ func (this *modelChatComp) getCrossChannelMember(channel int32) (result []*pb.Ca } //移除频道成员 -func (this *modelChatComp) removeCrossChannelMember(session comm.IUserSession) (err error) { +func (this *modelChatComp) removeCrossChannelMember(uid string) (err error) { var ( result *pb.DBUserExpand ) - if result, err = this.module.ModuleUser.GetUserExpand(session.GetUserId()); err != nil { + if result, err = this.module.ModuleUser.GetUserExpand(uid); err != nil { this.module.Errorf("err:%v", err) return } key := fmt.Sprintf("%s-%d-member", crosschatkey, result.Chatchannel) - if err = this.Redis.HDel(key, session.GetUserId()); err != nil { + if err = this.Redis.HDel(key, uid); err != nil { this.module.Errorf("err:%v", err) return } diff --git a/modules/chat/module.go b/modules/chat/module.go index c2f302354..303ef3c7f 100644 --- a/modules/chat/module.go +++ b/modules/chat/module.go @@ -80,12 +80,9 @@ func (this *Chat) OnInstallComp() { } //Event------------------------------------------------------------------------------------------------------------ -func (this *Chat) EventUserOffline(session comm.IUserSession) { - if err := this.modelChat.removeCrossChannelMember(session); err != nil { - this.Debug("EventUserOffline:", - log.Field{Key: "uid", Value: session.GetUserId()}, - log.Field{Key: "err", Value: err.Error()}, - ) +func (this *Chat) EventUserOffline(uid, sessionid string) { + if err := this.modelChat.removeCrossChannelMember(uid); err != nil { + this.Error("EventUserOffline", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}) } } diff --git a/modules/combat/module.go b/modules/combat/module.go index 3a3a98ccc..aea152e77 100644 --- a/modules/combat/module.go +++ b/modules/combat/module.go @@ -59,6 +59,6 @@ func (this *Combat) OnInstallComp() { } //Event------------------------------------------------------------------------------------------------------------ -func (this *Combat) EventUserOffline(session comm.IUserSession) { - this.modelCombat.delInfo(session.GetUserId()) +func (this *Combat) EventUserOffline(uid, sessionid string) { + this.modelCombat.delInfo(uid) } diff --git a/modules/equipment/module.go b/modules/equipment/module.go index e550f354d..0bbed1fd2 100644 --- a/modules/equipment/module.go +++ b/modules/equipment/module.go @@ -4,6 +4,7 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/event" + "go_dreamfactory/lego/sys/log" "go_dreamfactory/modules" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" @@ -67,9 +68,11 @@ func (this *Equipment) OnInstallComp() { } //Event------------------------------------------------------------------------------------------------------------ -func (this *Equipment) EventUserOffline(session comm.IUserSession) { - err := this.modelEquipment.BatchDelLists(session.GetUserId()) - this.Debugf("EventUserOffline:%s err:%v", session, err) +func (this *Equipment) EventUserOffline(uid, sessionid string) { + if err := this.modelEquipment.BatchDelLists(uid); err != nil { + this.Error("EventUserOffline", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}) + } + } //IEquipment------------------------------------------------------------------------------------------------------------------------------- diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index 83082d5cd..7126ad553 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -603,9 +603,9 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, ex } // 玩家离线 清除缓存 -func (this *ModelHero) RemoveUserHeroInfo(session comm.IUserSession) (err error) { +func (this *ModelHero) RemoveUserHeroInfo(uid string) (err error) { //star := configure.Now() - this.BatchDelLists(session.GetUserId()) + this.BatchDelLists(uid) //this.moduleHero.Debugf("=====%d,", time.Since(star).Milliseconds()) return } diff --git a/modules/hero/module.go b/modules/hero/module.go index e4c3996f2..196c242ee 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -258,9 +258,8 @@ func (this *Hero) GetSpecifiedHero(session comm.IUserSession, heroConfId string, } //Event-------------------------------------------------------------------------------------------------玩家离线 -func (this *Hero) EventUserOffline(session comm.IUserSession) { - err := this.modelHero.RemoveUserHeroInfo(session) - this.Debugf("EventUserOffline:%s err:%v", session.ToString(), err) +func (this *Hero) EventUserOffline(uid, sessionid string) { + this.modelHero.RemoveUserHeroInfo(uid) } // 批量创建多个英雄 diff --git a/modules/items/module.go b/modules/items/module.go index 153f89c63..29bb9ebdd 100644 --- a/modules/items/module.go +++ b/modules/items/module.go @@ -8,6 +8,7 @@ import ( "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/event" + "go_dreamfactory/lego/sys/log" ) /* @@ -62,9 +63,10 @@ func (this *Items) OnInstallComp() { } //Event------------------------------------------------------------------------------------------------------------ -func (this *Items) EventUserOffline(session comm.IUserSession) { - err := this.modelItems.BatchDelLists(session.GetUserId()) - this.Debugf("EventUserOffline:%s err:%v", session, err) +func (this *Items) EventUserOffline(uid, sessionid string) { + if err := this.modelItems.BatchDelLists(uid); err != nil { + this.Error("EventUserOffline", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()}) + } } //IItems------------------------------------------------------------------------------------------------------------------------------- diff --git a/modules/practice/modelPandata.go b/modules/practice/modelPandata.go index 985144a95..62267d837 100644 --- a/modules/practice/modelPandata.go +++ b/modules/practice/modelPandata.go @@ -59,6 +59,7 @@ func (this *modelPandata) queryUserMartialhall(uid string) (result *pb.DBPractic this.module.Errorln(err) return } + this.module.atlas.CheckActivatePandaAtlasCollect(uid, "1002") } err = nil return diff --git a/modules/practice/module.go b/modules/practice/module.go index a591033b6..8b765c1df 100644 --- a/modules/practice/module.go +++ b/modules/practice/module.go @@ -142,6 +142,7 @@ func (this *Practice) AddItems(session comm.IUserSession, items map[string]int32 this.Errorln(err) return } + this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), "1002") } else { id = make([]string, 0) for k, _ := range items { diff --git a/modules/privilege/module.go b/modules/privilege/module.go index c6e2a5225..fd6e59fda 100644 --- a/modules/privilege/module.go +++ b/modules/privilege/module.go @@ -62,7 +62,7 @@ func (this *Privilege) Start() (err error) { } //Event------------------------------------------------------------------------------------------------------------ -func (this *Privilege) EventUserOffline(session comm.IUserSession) { +func (this *Privilege) EventUserOffline(uid, sessionid string) { //this.modelPrivilege.DelByUId(session.GetUserId(), db.SetDBMgoLog(false)) } diff --git a/modules/pvp/module.go b/modules/pvp/module.go index 55b91799e..ac6119bc0 100644 --- a/modules/pvp/module.go +++ b/modules/pvp/module.go @@ -370,7 +370,7 @@ func (this *Pvp) userlogin(session comm.IUserSession) { } //用户离线处理 -func (this *Pvp) useroffline(session comm.IUserSession) { +func (this *Pvp) useroffline(uid, sessionid string) { var ( side int32 data []byte @@ -378,8 +378,8 @@ func (this *Pvp) useroffline(session comm.IUserSession) { ) this.lock.RLock() for _, v := range this.battles { - if v.Red.Uid == session.GetUserId() || v.Blue.Uid == session.GetUserId() { - if session.GetUserId() == v.Red.Uid { + if v.Red.Uid == uid || v.Blue.Uid == uid { + if uid == v.Red.Uid { side = 1 v.RedOffline = true } else { diff --git a/modules/task/module.go b/modules/task/module.go index 64a7ad0ea..3439ca9bd 100644 --- a/modules/task/module.go +++ b/modules/task/module.go @@ -79,9 +79,9 @@ func (this *ModuleTask) InitTaskByTag(uid string, taskTag comm.TaskTag) { } // 清除缓存 -func (this *ModuleTask) CleanTask(session comm.IUserSession) { - this.modelTask.BatchDelLists(session.GetUserId()) - this.modelTaskActive.BatchDelLists(session.GetUserId()) +func (this *ModuleTask) CleanTask(uid, sessionid string) { + this.modelTask.BatchDelLists(uid) + this.modelTaskActive.BatchDelLists(uid) } // 重置玩家活跃度 diff --git a/modules/user/api_create.go b/modules/user/api_create.go index b7660c575..3af207025 100644 --- a/modules/user/api_create.go +++ b/modules/user/api_create.go @@ -1,10 +1,13 @@ package user import ( + "context" "go_dreamfactory/comm" + "go_dreamfactory/lego/sys/event" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" + "go_dreamfactory/sys/db" "strings" "google.golang.org/protobuf/proto" @@ -123,10 +126,17 @@ func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (c } if req.Figure != 0 { - this.module.ModuleRtask.TriggerTask(uid, comm.GettaskParam(comm.Rtype72,1)) + this.module.ModuleRtask.TriggerTask(uid, comm.GettaskParam(comm.Rtype72, 1)) } this.mail.SendMailByCid(session, comm.Welcomemail, nil) - + event.TriggerEvent(comm.EventCreateUser, session.GetUserId()) + this.module.service.AcrossClusterRpcGo(context.Background(), db.CrossTag(), comm.Service_Worker, string(comm.Rpc_GatewayNoticeUserCreate), &pb.NoticeUserCreateReq{ + Ip: session.GetIP(), + UserId: session.GetUserId(), + ServiceTag: session.GetServiecTag(), + GatewayServiceId: session.GetGatewayServiceId(), + UserSessionId: session.GetSessionId(), + }, nil) return } diff --git a/modules/user/module.go b/modules/user/module.go index 7dd653b1b..3135b1a6a 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -159,22 +159,22 @@ func (this *User) ResetSession() { } // 清除session -func (this *User) CleanSession(session comm.IUserSession) { - this.stopTicker(session.GetUserId()) +func (this *User) CleanSession(uid, sessionid string) { + this.stopTicker(uid) if !this.IsCross() { - this.modelUser.updateOfflineTime(session.GetUserId()) + this.modelUser.updateOfflineTime(uid) } // sId := fmt.Sprintf("%s-%s", comm.RDS_EMPTY, session.GetUserId()) // this.modelSession.Del(sId, db.SetDBMgoLog(false)) // this.modelSession.DelListlds(comm.RDS_EMPTY, session.GetUserId()) //确保删除的会话是目标会话 不是就不要删除了 - if user := this.modelSession.getUserSession(session.GetUserId()); user != nil && user.SessionId == session.GetSessionId() { - this.modelSession.Del(session.GetUserId(), db.SetDBMgoLog(false)) - this.modelSession.DelListlds(comm.RDS_EMPTY, []string{session.GetUserId()}, db.SetDBMgoLog(false)) + if user := this.modelSession.getUserSession(uid); user != nil && user.SessionId == sessionid { + this.modelSession.Del(uid, db.SetDBMgoLog(false)) + this.modelSession.DelListlds(comm.RDS_EMPTY, []string{uid}, db.SetDBMgoLog(false)) } - this.modelUser.DelByUId(session.GetUserId(), db.SetDBMgoLog(false)) - this.modelExpand.DelByUId(session.GetUserId(), db.SetDBMgoLog(false)) - this.modelSetting.DelByUId(session.GetUserId(), db.SetDBMgoLog(false)) + this.modelUser.DelByUId(uid, db.SetDBMgoLog(false)) + this.modelExpand.DelByUId(uid, db.SetDBMgoLog(false)) + this.modelSetting.DelByUId(uid, db.SetDBMgoLog(false)) } // 在线玩家列表 diff --git a/pb/comm.pb.go b/pb/comm.pb.go index bd439f32f..26f5a0e1a 100644 --- a/pb/comm.pb.go +++ b/pb/comm.pb.go @@ -766,6 +766,86 @@ func (x *NoticeUserLoginReq) GetGatewayServiceId() string { return "" } +//通知用户登录 +type NoticeUserCreateReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ip string `protobuf:"bytes,1,opt,name=Ip,proto3" json:"Ip"` + UserSessionId string `protobuf:"bytes,2,opt,name=UserSessionId,proto3" json:"UserSessionId"` + UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId"` + ServiceTag string `protobuf:"bytes,4,opt,name=ServiceTag,proto3" json:"ServiceTag"` + GatewayServiceId string `protobuf:"bytes,5,opt,name=GatewayServiceId,proto3" json:"GatewayServiceId"` +} + +func (x *NoticeUserCreateReq) Reset() { + *x = NoticeUserCreateReq{} + if protoimpl.UnsafeEnabled { + mi := &file_comm_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NoticeUserCreateReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NoticeUserCreateReq) ProtoMessage() {} + +func (x *NoticeUserCreateReq) ProtoReflect() protoreflect.Message { + mi := &file_comm_proto_msgTypes[10] + 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 NoticeUserCreateReq.ProtoReflect.Descriptor instead. +func (*NoticeUserCreateReq) Descriptor() ([]byte, []int) { + return file_comm_proto_rawDescGZIP(), []int{10} +} + +func (x *NoticeUserCreateReq) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +func (x *NoticeUserCreateReq) GetUserSessionId() string { + if x != nil { + return x.UserSessionId + } + return "" +} + +func (x *NoticeUserCreateReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *NoticeUserCreateReq) GetServiceTag() string { + if x != nil { + return x.ServiceTag + } + return "" +} + +func (x *NoticeUserCreateReq) GetGatewayServiceId() string { + if x != nil { + return x.GatewayServiceId + } + return "" +} + //通知用户离线 type NoticeUserCloseReq struct { state protoimpl.MessageState @@ -782,7 +862,7 @@ type NoticeUserCloseReq struct { func (x *NoticeUserCloseReq) Reset() { *x = NoticeUserCloseReq{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[10] + mi := &file_comm_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -795,7 +875,7 @@ func (x *NoticeUserCloseReq) String() string { func (*NoticeUserCloseReq) ProtoMessage() {} func (x *NoticeUserCloseReq) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[10] + mi := &file_comm_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -808,7 +888,7 @@ func (x *NoticeUserCloseReq) ProtoReflect() protoreflect.Message { // Deprecated: Use NoticeUserCloseReq.ProtoReflect.Descriptor instead. func (*NoticeUserCloseReq) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{10} + return file_comm_proto_rawDescGZIP(), []int{11} } func (x *NoticeUserCloseReq) GetIp() string { @@ -858,7 +938,7 @@ type SkillData struct { func (x *SkillData) Reset() { *x = SkillData{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[11] + mi := &file_comm_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -871,7 +951,7 @@ func (x *SkillData) String() string { func (*SkillData) ProtoMessage() {} func (x *SkillData) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[11] + mi := &file_comm_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -884,7 +964,7 @@ func (x *SkillData) ProtoReflect() protoreflect.Message { // Deprecated: Use SkillData.ProtoReflect.Descriptor instead. func (*SkillData) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{11} + return file_comm_proto_rawDescGZIP(), []int{12} } func (x *SkillData) GetSkillID() int32 { @@ -915,7 +995,7 @@ type UserAssets struct { func (x *UserAssets) Reset() { *x = UserAssets{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[12] + mi := &file_comm_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -928,7 +1008,7 @@ func (x *UserAssets) String() string { func (*UserAssets) ProtoMessage() {} func (x *UserAssets) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[12] + mi := &file_comm_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -941,7 +1021,7 @@ func (x *UserAssets) ProtoReflect() protoreflect.Message { // Deprecated: Use UserAssets.ProtoReflect.Descriptor instead. func (*UserAssets) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{12} + return file_comm_proto_rawDescGZIP(), []int{13} } func (x *UserAssets) GetA() string { @@ -980,7 +1060,7 @@ type UserAtno struct { func (x *UserAtno) Reset() { *x = UserAtno{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[13] + mi := &file_comm_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -993,7 +1073,7 @@ func (x *UserAtno) String() string { func (*UserAtno) ProtoMessage() {} func (x *UserAtno) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[13] + mi := &file_comm_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1006,7 +1086,7 @@ func (x *UserAtno) ProtoReflect() protoreflect.Message { // Deprecated: Use UserAtno.ProtoReflect.Descriptor instead. func (*UserAtno) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{13} + return file_comm_proto_rawDescGZIP(), []int{14} } func (x *UserAtno) GetA() string { @@ -1049,7 +1129,7 @@ type TaskParam struct { func (x *TaskParam) Reset() { *x = TaskParam{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[14] + mi := &file_comm_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1062,7 +1142,7 @@ func (x *TaskParam) String() string { func (*TaskParam) ProtoMessage() {} func (x *TaskParam) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[14] + mi := &file_comm_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1075,7 +1155,7 @@ func (x *TaskParam) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskParam.ProtoReflect.Descriptor instead. func (*TaskParam) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{14} + return file_comm_proto_rawDescGZIP(), []int{15} } func (x *TaskParam) GetFirst() int32 { @@ -1105,7 +1185,7 @@ type RtaskParam struct { func (x *RtaskParam) Reset() { *x = RtaskParam{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[15] + mi := &file_comm_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1118,7 +1198,7 @@ func (x *RtaskParam) String() string { func (*RtaskParam) ProtoMessage() {} func (x *RtaskParam) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[15] + mi := &file_comm_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1131,7 +1211,7 @@ func (x *RtaskParam) ProtoReflect() protoreflect.Message { // Deprecated: Use RtaskParam.ProtoReflect.Descriptor instead. func (*RtaskParam) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{15} + return file_comm_proto_rawDescGZIP(), []int{16} } func (x *RtaskParam) GetParam1() int32 { @@ -1166,7 +1246,7 @@ type UIdReq struct { func (x *UIdReq) Reset() { *x = UIdReq{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[16] + mi := &file_comm_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1179,7 +1259,7 @@ func (x *UIdReq) String() string { func (*UIdReq) ProtoMessage() {} func (x *UIdReq) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[16] + mi := &file_comm_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1192,7 +1272,7 @@ func (x *UIdReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UIdReq.ProtoReflect.Descriptor instead. func (*UIdReq) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{16} + return file_comm_proto_rawDescGZIP(), []int{17} } func (x *UIdReq) GetUid() string { @@ -1213,7 +1293,7 @@ type NameReq struct { func (x *NameReq) Reset() { *x = NameReq{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[17] + mi := &file_comm_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1226,7 +1306,7 @@ func (x *NameReq) String() string { func (*NameReq) ProtoMessage() {} func (x *NameReq) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[17] + mi := &file_comm_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1239,7 +1319,7 @@ func (x *NameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use NameReq.ProtoReflect.Descriptor instead. func (*NameReq) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{17} + return file_comm_proto_rawDescGZIP(), []int{18} } func (x *NameReq) GetName() string { @@ -1258,7 +1338,7 @@ type EmptyReq struct { func (x *EmptyReq) Reset() { *x = EmptyReq{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[18] + mi := &file_comm_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1271,7 +1351,7 @@ func (x *EmptyReq) String() string { func (*EmptyReq) ProtoMessage() {} func (x *EmptyReq) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[18] + mi := &file_comm_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1284,7 +1364,7 @@ func (x *EmptyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use EmptyReq.ProtoReflect.Descriptor instead. func (*EmptyReq) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{18} + return file_comm_proto_rawDescGZIP(), []int{19} } type EmptyResp struct { @@ -1296,7 +1376,7 @@ type EmptyResp struct { func (x *EmptyResp) Reset() { *x = EmptyResp{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[19] + mi := &file_comm_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1309,7 +1389,7 @@ func (x *EmptyResp) String() string { func (*EmptyResp) ProtoMessage() {} func (x *EmptyResp) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[19] + mi := &file_comm_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1322,7 +1402,7 @@ func (x *EmptyResp) ProtoReflect() protoreflect.Message { // Deprecated: Use EmptyResp.ProtoReflect.Descriptor instead. func (*EmptyResp) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{19} + return file_comm_proto_rawDescGZIP(), []int{20} } // rpc 通用请求消息 1 @@ -1337,7 +1417,7 @@ type RPCGeneralReqA1 struct { func (x *RPCGeneralReqA1) Reset() { *x = RPCGeneralReqA1{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[20] + mi := &file_comm_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1350,7 +1430,7 @@ func (x *RPCGeneralReqA1) String() string { func (*RPCGeneralReqA1) ProtoMessage() {} func (x *RPCGeneralReqA1) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[20] + mi := &file_comm_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1363,7 +1443,7 @@ func (x *RPCGeneralReqA1) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCGeneralReqA1.ProtoReflect.Descriptor instead. func (*RPCGeneralReqA1) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{20} + return file_comm_proto_rawDescGZIP(), []int{21} } func (x *RPCGeneralReqA1) GetParam1() string { @@ -1386,7 +1466,7 @@ type RPCGeneralReqA2 struct { func (x *RPCGeneralReqA2) Reset() { *x = RPCGeneralReqA2{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[21] + mi := &file_comm_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1399,7 +1479,7 @@ func (x *RPCGeneralReqA2) String() string { func (*RPCGeneralReqA2) ProtoMessage() {} func (x *RPCGeneralReqA2) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[21] + mi := &file_comm_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1412,7 +1492,7 @@ func (x *RPCGeneralReqA2) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCGeneralReqA2.ProtoReflect.Descriptor instead. func (*RPCGeneralReqA2) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{21} + return file_comm_proto_rawDescGZIP(), []int{22} } func (x *RPCGeneralReqA2) GetParam1() string { @@ -1443,7 +1523,7 @@ type RPCGeneralReqA3 struct { func (x *RPCGeneralReqA3) Reset() { *x = RPCGeneralReqA3{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[22] + mi := &file_comm_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1456,7 +1536,7 @@ func (x *RPCGeneralReqA3) String() string { func (*RPCGeneralReqA3) ProtoMessage() {} func (x *RPCGeneralReqA3) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[22] + mi := &file_comm_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1469,7 +1549,7 @@ func (x *RPCGeneralReqA3) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCGeneralReqA3.ProtoReflect.Descriptor instead. func (*RPCGeneralReqA3) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{22} + return file_comm_proto_rawDescGZIP(), []int{23} } func (x *RPCGeneralReqA3) GetParam1() string { @@ -1508,7 +1588,7 @@ type RPCGeneralReqA4 struct { func (x *RPCGeneralReqA4) Reset() { *x = RPCGeneralReqA4{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[23] + mi := &file_comm_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1521,7 +1601,7 @@ func (x *RPCGeneralReqA4) String() string { func (*RPCGeneralReqA4) ProtoMessage() {} func (x *RPCGeneralReqA4) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[23] + mi := &file_comm_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1534,7 +1614,7 @@ func (x *RPCGeneralReqA4) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCGeneralReqA4.ProtoReflect.Descriptor instead. func (*RPCGeneralReqA4) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{23} + return file_comm_proto_rawDescGZIP(), []int{24} } func (x *RPCGeneralReqA4) GetParam1() string { @@ -1579,7 +1659,7 @@ type RPCRTaskReq struct { func (x *RPCRTaskReq) Reset() { *x = RPCRTaskReq{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[24] + mi := &file_comm_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1592,7 +1672,7 @@ func (x *RPCRTaskReq) String() string { func (*RPCRTaskReq) ProtoMessage() {} func (x *RPCRTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[24] + mi := &file_comm_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1605,7 +1685,7 @@ func (x *RPCRTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCRTaskReq.ProtoReflect.Descriptor instead. func (*RPCRTaskReq) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{24} + return file_comm_proto_rawDescGZIP(), []int{25} } func (x *RPCRTaskReq) GetUid() string { @@ -1653,7 +1733,7 @@ type ServiceDBInfo struct { func (x *ServiceDBInfo) Reset() { *x = ServiceDBInfo{} if protoimpl.UnsafeEnabled { - mi := &file_comm_proto_msgTypes[25] + mi := &file_comm_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1666,7 +1746,7 @@ func (x *ServiceDBInfo) String() string { func (*ServiceDBInfo) ProtoMessage() {} func (x *ServiceDBInfo) ProtoReflect() protoreflect.Message { - mi := &file_comm_proto_msgTypes[25] + mi := &file_comm_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1679,7 +1759,7 @@ func (x *ServiceDBInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceDBInfo.ProtoReflect.Descriptor instead. func (*ServiceDBInfo) Descriptor() ([]byte, []int) { - return file_comm_proto_rawDescGZIP(), []int{25} + return file_comm_proto_rawDescGZIP(), []int{26} } func (x *ServiceDBInfo) GetServerid() string { @@ -1865,101 +1945,112 @@ var file_comm_proto_rawDesc = []byte{ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xae, - 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x6f, - 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, - 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, - 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, - 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, - 0x22, 0x36, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x0c, - 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, - 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x22, 0x42, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x41, 0x74, 0x6e, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, - 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x12, 0x0c, - 0x0a, 0x01, 0x4f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x4f, 0x22, 0x39, 0x0a, 0x09, - 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x0a, 0x52, 0x74, 0x61, 0x73, 0x6b, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x1a, 0x0a, - 0x06, 0x55, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x4e, 0x61, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0a, 0x0a, 0x08, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x52, 0x65, 0x71, 0x22, 0x0b, 0x0a, 0x09, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x29, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, - 0x65, 0x71, 0x41, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x22, 0x41, 0x0a, 0x0f, - 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x32, 0x12, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xaf, + 0x01, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, + 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, + 0x22, 0xae, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, + 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x64, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, + 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, + 0x4c, 0x76, 0x22, 0x36, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, + 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12, 0x0c, 0x0a, 0x01, + 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x22, 0x42, 0x0a, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x01, 0x54, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, + 0x12, 0x0c, 0x0a, 0x01, 0x4f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x4f, 0x22, 0x39, + 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x0a, 0x52, 0x74, 0x61, + 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, + 0x1a, 0x0a, 0x06, 0x55, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0a, 0x0a, 0x08, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x52, 0x65, 0x71, 0x22, 0x0b, 0x0a, 0x09, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x29, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x52, 0x65, 0x71, 0x41, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x22, 0x41, + 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, + 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x32, 0x22, 0x59, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, + 0x65, 0x71, 0x41, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x71, 0x0a, 0x0f, + 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x22, - 0x59, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, - 0x41, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x71, 0x0a, 0x0f, 0x52, 0x50, - 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x34, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x22, 0x51, 0x0a, - 0x0b, 0x52, 0x50, 0x43, 0x52, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x22, 0xa1, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x42, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, - 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x6f, - 0x73, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, - 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, - 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, - 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, - 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x2a, 0x43, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x70, - 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x74, 0x6b, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, - 0x65, 0x66, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, - 0x08, 0x0a, 0x04, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x22, + 0x51, 0x0a, 0x0b, 0x52, 0x50, 0x43, 0x52, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x22, 0xa1, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x42, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, + 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, + 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, + 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0d, + 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x12, 0x1e, 0x0a, 0x0a, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2a, 0x43, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, + 0x48, 0x70, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x74, 0x6b, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x44, 0x65, 0x66, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, + 0x03, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, + 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1975,7 +2066,7 @@ func file_comm_proto_rawDescGZIP() []byte { } var file_comm_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_comm_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_comm_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_comm_proto_goTypes = []interface{}{ (HeroAttributesType)(0), // 0: HeroAttributesType (*UserMessage)(nil), // 1: UserMessage @@ -1988,34 +2079,35 @@ var file_comm_proto_goTypes = []interface{}{ (*BroadCastMessageReq)(nil), // 8: BroadCastMessageReq (*AgentCloseeReq)(nil), // 9: AgentCloseeReq (*NoticeUserLoginReq)(nil), // 10: NoticeUserLoginReq - (*NoticeUserCloseReq)(nil), // 11: NoticeUserCloseReq - (*SkillData)(nil), // 12: SkillData - (*UserAssets)(nil), // 13: UserAssets - (*UserAtno)(nil), // 14: UserAtno - (*TaskParam)(nil), // 15: TaskParam - (*RtaskParam)(nil), // 16: RtaskParam - (*UIdReq)(nil), // 17: UIdReq - (*NameReq)(nil), // 18: NameReq - (*EmptyReq)(nil), // 19: EmptyReq - (*EmptyResp)(nil), // 20: EmptyResp - (*RPCGeneralReqA1)(nil), // 21: RPCGeneralReqA1 - (*RPCGeneralReqA2)(nil), // 22: RPCGeneralReqA2 - (*RPCGeneralReqA3)(nil), // 23: RPCGeneralReqA3 - (*RPCGeneralReqA4)(nil), // 24: RPCGeneralReqA4 - (*RPCRTaskReq)(nil), // 25: RPCRTaskReq - (*ServiceDBInfo)(nil), // 26: ServiceDBInfo - (*anypb.Any)(nil), // 27: google.protobuf.Any - (ErrorCode)(0), // 28: ErrorCode + (*NoticeUserCreateReq)(nil), // 11: NoticeUserCreateReq + (*NoticeUserCloseReq)(nil), // 12: NoticeUserCloseReq + (*SkillData)(nil), // 13: SkillData + (*UserAssets)(nil), // 14: UserAssets + (*UserAtno)(nil), // 15: UserAtno + (*TaskParam)(nil), // 16: TaskParam + (*RtaskParam)(nil), // 17: RtaskParam + (*UIdReq)(nil), // 18: UIdReq + (*NameReq)(nil), // 19: NameReq + (*EmptyReq)(nil), // 20: EmptyReq + (*EmptyResp)(nil), // 21: EmptyResp + (*RPCGeneralReqA1)(nil), // 22: RPCGeneralReqA1 + (*RPCGeneralReqA2)(nil), // 23: RPCGeneralReqA2 + (*RPCGeneralReqA3)(nil), // 24: RPCGeneralReqA3 + (*RPCGeneralReqA4)(nil), // 25: RPCGeneralReqA4 + (*RPCRTaskReq)(nil), // 26: RPCRTaskReq + (*ServiceDBInfo)(nil), // 27: ServiceDBInfo + (*anypb.Any)(nil), // 28: google.protobuf.Any + (ErrorCode)(0), // 29: ErrorCode } var file_comm_proto_depIdxs = []int32{ - 27, // 0: UserMessage.data:type_name -> google.protobuf.Any - 27, // 1: AgentMessage.Message:type_name -> google.protobuf.Any - 28, // 2: RPCMessageReply.Code:type_name -> ErrorCode - 27, // 3: RPCMessageReply.ErrorData:type_name -> google.protobuf.Any + 28, // 0: UserMessage.data:type_name -> google.protobuf.Any + 28, // 1: AgentMessage.Message:type_name -> google.protobuf.Any + 29, // 2: RPCMessageReply.Code:type_name -> ErrorCode + 28, // 3: RPCMessageReply.ErrorData:type_name -> google.protobuf.Any 1, // 4: RPCMessageReply.Reply:type_name -> UserMessage 1, // 5: AgentSendMessageReq.Reply:type_name -> UserMessage - 27, // 6: BatchMessageReq.Data:type_name -> google.protobuf.Any - 27, // 7: BroadCastMessageReq.Data:type_name -> google.protobuf.Any + 28, // 6: BatchMessageReq.Data:type_name -> google.protobuf.Any + 28, // 7: BroadCastMessageReq.Data:type_name -> google.protobuf.Any 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 @@ -2151,7 +2243,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoticeUserCloseReq); i { + switch v := v.(*NoticeUserCreateReq); i { case 0: return &v.state case 1: @@ -2163,7 +2255,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SkillData); i { + switch v := v.(*NoticeUserCloseReq); i { case 0: return &v.state case 1: @@ -2175,7 +2267,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserAssets); i { + switch v := v.(*SkillData); i { case 0: return &v.state case 1: @@ -2187,7 +2279,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserAtno); i { + switch v := v.(*UserAssets); i { case 0: return &v.state case 1: @@ -2199,7 +2291,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskParam); i { + switch v := v.(*UserAtno); i { case 0: return &v.state case 1: @@ -2211,7 +2303,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RtaskParam); i { + switch v := v.(*TaskParam); i { case 0: return &v.state case 1: @@ -2223,7 +2315,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UIdReq); i { + switch v := v.(*RtaskParam); i { case 0: return &v.state case 1: @@ -2235,7 +2327,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NameReq); i { + switch v := v.(*UIdReq); i { case 0: return &v.state case 1: @@ -2247,7 +2339,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EmptyReq); i { + switch v := v.(*NameReq); i { case 0: return &v.state case 1: @@ -2259,7 +2351,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EmptyResp); i { + switch v := v.(*EmptyReq); i { case 0: return &v.state case 1: @@ -2271,7 +2363,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCGeneralReqA1); i { + switch v := v.(*EmptyResp); i { case 0: return &v.state case 1: @@ -2283,7 +2375,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCGeneralReqA2); i { + switch v := v.(*RPCGeneralReqA1); i { case 0: return &v.state case 1: @@ -2295,7 +2387,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCGeneralReqA3); i { + switch v := v.(*RPCGeneralReqA2); i { case 0: return &v.state case 1: @@ -2307,7 +2399,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCGeneralReqA4); i { + switch v := v.(*RPCGeneralReqA3); i { case 0: return &v.state case 1: @@ -2319,7 +2411,7 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCRTaskReq); i { + switch v := v.(*RPCGeneralReqA4); i { case 0: return &v.state case 1: @@ -2331,6 +2423,18 @@ func file_comm_proto_init() { } } file_comm_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RPCRTaskReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_comm_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServiceDBInfo); i { case 0: return &v.state @@ -2349,7 +2453,7 @@ func file_comm_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_comm_proto_rawDesc, NumEnums: 1, - NumMessages: 26, + NumMessages: 27, NumExtensions: 0, NumServices: 0, }, diff --git a/services/comp_gateroute.go b/services/comp_gateroute.go index 91454d586..f679ec100 100644 --- a/services/comp_gateroute.go +++ b/services/comp_gateroute.go @@ -85,11 +85,12 @@ func (this *SCompGateRoute) Init(service core.IService, comp core.IServiceComp, // 组件启动时注册rpc服务监听 func (this *SCompGateRoute) Start() (err error) { - this.service.RegisterFunctionName(string(comm.Rpc_GatewayRoute), this.ReceiveMsg) //注册网关路由接收接口 - this.service.RegisterFunctionName(string(comm.Rpc_GatewayNoticeUserLogin), this.NoticeUserLogin) //注册用户登录通知 - this.service.RegisterFunctionName(string(comm.Rpc_GatewayNoticeUserClose), this.NoticeUserClose) //注册用户离线通知 - this.service.RegisterFunctionName(string(comm.Rpc_ConfigureUpDate), this.ConfigureUpDate) //注册配置更新 - if db.IsCross() { //跨服环境 + this.service.RegisterFunctionName(string(comm.Rpc_GatewayRoute), this.ReceiveMsg) //注册网关路由接收接口 + this.service.RegisterFunctionName(string(comm.Rpc_GatewayNoticeUserLogin), this.NoticeUserLogin) //注册用户登录通知 + this.service.RegisterFunctionName(string(comm.Rpc_GatewayNoticeUserCreate), this.NoticeUserCreate) //注册用户离线创角 + this.service.RegisterFunctionName(string(comm.Rpc_GatewayNoticeUserClose), this.NoticeUserClose) //注册用户离线通知 + this.service.RegisterFunctionName(string(comm.Rpc_ConfigureUpDate), this.ConfigureUpDate) //注册配置更新 + if db.IsCross() { //跨服环境 this.service.RegisterFunctionName(string(comm.Rpc_DBSyncCross), this.DBSyncCross) //注册配置更新 } err = this.ServiceCompBase.Start() @@ -190,6 +191,7 @@ func (this *SCompGateRoute) ReceiveMsg(ctx context.Context, args *pb.AgentMessag // RPC_NoticeUserClose 接收用户登录通知 func (this *SCompGateRoute) NoticeUserLogin(ctx context.Context, args *pb.NoticeUserLoginReq, reply *pb.RPCMessageReply) error { + log.Debug("RPC_NoticeUserLogin", log.Field{Key: "args", Value: args}) conn, err := db.Local() if err != nil { log.Errorf("[RPC] NoticeUserLogin err: %v", err) @@ -210,17 +212,24 @@ func (this *SCompGateRoute) NoticeUserLogin(ctx context.Context, args *pb.Notice GatewayServiceId: args.GatewayServiceId, Ip: args.Ip, }, db.SetDBMgoLog(false)) - session := this.pools.Get().(comm.IUserSession) - session.SetSession(args.Ip, args.UserSessionId, args.ServiceTag, args.GatewayServiceId, args.UserId) - event.TriggerEvent(comm.EventUserLogin, session) + // session := this.pools.Get().(comm.IUserSession) + // session.SetSession(args.Ip, args.UserSessionId, args.ServiceTag, args.GatewayServiceId, args.UserId) + event.TriggerEvent(comm.EventUserLogin, args.UserId) + return nil +} + +func (this *SCompGateRoute) NoticeUserCreate(ctx context.Context, args *pb.NoticeUserCreateReq, reply *pb.RPCMessageReply) error { + log.Debug("RPC_NoticeUserCreate", log.Field{Key: "args", Value: args}) + event.TriggerEvent(comm.EventCreateUser, args.UserId) return nil } // RPC_NoticeUserClose 接收用户离线通知 func (this *SCompGateRoute) NoticeUserClose(ctx context.Context, args *pb.NoticeUserCloseReq, reply *pb.RPCMessageReply) error { - session := this.pools.Get().(comm.IUserSession) - session.SetSession(args.Ip, args.UserSessionId, args.ServiceTag, args.GatewayServiceId, args.UserId) - event.TriggerEvent(comm.EventUserOffline, session) + // session := this.pools.Get().(comm.IUserSession) + // session.SetSession(args.Ip, args.UserSessionId, args.ServiceTag, args.GatewayServiceId, args.UserId) + log.Debug("RPC_NoticeUserClose", log.Field{Key: "args", Value: args}) + event.TriggerEvent(comm.EventUserOffline, args.UserId, args.UserSessionId) return nil }