From 852471d7bb66f2f71850b6ab4b988eda7c9cc537 Mon Sep 17 00:00:00 2001 From: NorthLan <6995syu@163.com> Date: Mon, 6 Jun 2022 00:30:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=B2=AE=E8=8D=89=E7=89=88?= =?UTF-8?q?=EF=BC=8C=E7=B2=BE=E8=8B=B1=E5=8D=95=E4=BD=8D=EF=BC=8C=E7=A7=B0?= =?UTF-8?q?=E5=8F=B7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/user_center/etc/user_center.yaml | 6 - app/user_center/internal/config/config.go | 7 - .../internal/logic/buy_elite_logic.go | 30 -- .../internal/logic/buy_title_logic.go | 30 -- .../internal/logic/change_coin_logic.go | 31 -- .../internal/logic/change_elite_logic.go | 30 -- .../internal/logic/change_title_logic.go | 30 -- .../internal/logic/draw_gift_pack_logic.go | 30 -- .../internal/logic/get_user_coin_logic.go | 31 -- .../internal/logic/get_user_details_logic.go | 31 -- .../logic/get_user_id_by_p_uid_logic.go | 31 -- .../internal/logic/give_elite_logic.go | 30 -- .../internal/logic/give_title_logic.go | 30 -- .../internal/logic/rank_pvp_logic.go | 31 -- .../internal/logic/rank_pvp_submit_logic.go | 30 -- .../logic/retrieve_platform_user_logic.go | 31 -- .../internal/logic/stat_pvp_report_logic.go | 30 -- .../logic/transfer_user_coin_logic.go | 31 -- .../internal/logic/user_buy_nobility_logic.go | 30 -- .../internal/logic/user_check_in_logic.go | 31 -- .../internal/logic/user_rank_pvp_logic.go | 30 -- .../internal/logic/user_send_gift_logic.go | 31 -- .../internal/server/user_center_server.go | 132 -------- .../internal/svc/service_context.go | 13 - app/user_center/pb/user_center.pb.go | 320 +++++++++--------- app/user_center/pb/user_center.proto | 3 +- app/user_center/user_center.go | 40 --- config-dev.yml | 12 +- config.yml | 92 ++++- config/config.go | 1 + game/live_logic/zhg_handler.go | 108 +++++- game/pb/game/zhg/Rank.cs | 294 ++++++++-------- game/pb/game/zhg/rank.pb.go | 104 +++--- game/pb/game/zhg/rank.proto | 17 +- game/pb/routes.go | 1 + 35 files changed, 558 insertions(+), 1201 deletions(-) delete mode 100644 app/user_center/etc/user_center.yaml delete mode 100644 app/user_center/internal/config/config.go delete mode 100644 app/user_center/internal/logic/buy_elite_logic.go delete mode 100644 app/user_center/internal/logic/buy_title_logic.go delete mode 100644 app/user_center/internal/logic/change_coin_logic.go delete mode 100644 app/user_center/internal/logic/change_elite_logic.go delete mode 100644 app/user_center/internal/logic/change_title_logic.go delete mode 100644 app/user_center/internal/logic/draw_gift_pack_logic.go delete mode 100644 app/user_center/internal/logic/get_user_coin_logic.go delete mode 100644 app/user_center/internal/logic/get_user_details_logic.go delete mode 100644 app/user_center/internal/logic/get_user_id_by_p_uid_logic.go delete mode 100644 app/user_center/internal/logic/give_elite_logic.go delete mode 100644 app/user_center/internal/logic/give_title_logic.go delete mode 100644 app/user_center/internal/logic/rank_pvp_logic.go delete mode 100644 app/user_center/internal/logic/rank_pvp_submit_logic.go delete mode 100644 app/user_center/internal/logic/retrieve_platform_user_logic.go delete mode 100644 app/user_center/internal/logic/stat_pvp_report_logic.go delete mode 100644 app/user_center/internal/logic/transfer_user_coin_logic.go delete mode 100644 app/user_center/internal/logic/user_buy_nobility_logic.go delete mode 100644 app/user_center/internal/logic/user_check_in_logic.go delete mode 100644 app/user_center/internal/logic/user_rank_pvp_logic.go delete mode 100644 app/user_center/internal/logic/user_send_gift_logic.go delete mode 100644 app/user_center/internal/server/user_center_server.go delete mode 100644 app/user_center/internal/svc/service_context.go delete mode 100644 app/user_center/user_center.go diff --git a/app/user_center/etc/user_center.yaml b/app/user_center/etc/user_center.yaml deleted file mode 100644 index 6be3c1b..0000000 --- a/app/user_center/etc/user_center.yaml +++ /dev/null @@ -1,6 +0,0 @@ -Name: usercenter.rpc -ListenOn: 127.0.0.1:8080 -Etcd: - Hosts: - - 127.0.0.1:2379 - Key: usercenter.rpc diff --git a/app/user_center/internal/config/config.go b/app/user_center/internal/config/config.go deleted file mode 100644 index c1f85b9..0000000 --- a/app/user_center/internal/config/config.go +++ /dev/null @@ -1,7 +0,0 @@ -package config - -import "github.com/zeromicro/go-zero/zrpc" - -type Config struct { - zrpc.RpcServerConf -} diff --git a/app/user_center/internal/logic/buy_elite_logic.go b/app/user_center/internal/logic/buy_elite_logic.go deleted file mode 100644 index dcab7c7..0000000 --- a/app/user_center/internal/logic/buy_elite_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type BuyEliteLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewBuyEliteLogic(ctx context.Context, svcCtx *svc.ServiceContext) *BuyEliteLogic { - return &BuyEliteLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *BuyEliteLogic) BuyElite(in *pb.EliteReq) (*pb.BuyEliteResp, error) { - // todo: add your logic here and delete this line - - return &pb.BuyEliteResp{}, nil -} diff --git a/app/user_center/internal/logic/buy_title_logic.go b/app/user_center/internal/logic/buy_title_logic.go deleted file mode 100644 index 13a33ce..0000000 --- a/app/user_center/internal/logic/buy_title_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type BuyTitleLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewBuyTitleLogic(ctx context.Context, svcCtx *svc.ServiceContext) *BuyTitleLogic { - return &BuyTitleLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *BuyTitleLogic) BuyTitle(in *pb.TitleReq) (*pb.BuyTitleResp, error) { - // todo: add your logic here and delete this line - - return &pb.BuyTitleResp{}, nil -} diff --git a/app/user_center/internal/logic/change_coin_logic.go b/app/user_center/internal/logic/change_coin_logic.go deleted file mode 100644 index 0d0b725..0000000 --- a/app/user_center/internal/logic/change_coin_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type ChangeCoinLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewChangeCoinLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ChangeCoinLogic { - return &ChangeCoinLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// changeCoin 新增或扣减用户弹币 -func (l *ChangeCoinLogic) ChangeCoin(in *pb.ChangeCoinReq) (*pb.Empty, error) { - // todo: add your logic here and delete this line - - return &pb.Empty{}, nil -} diff --git a/app/user_center/internal/logic/change_elite_logic.go b/app/user_center/internal/logic/change_elite_logic.go deleted file mode 100644 index c5998dd..0000000 --- a/app/user_center/internal/logic/change_elite_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type ChangeEliteLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewChangeEliteLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ChangeEliteLogic { - return &ChangeEliteLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *ChangeEliteLogic) ChangeElite(in *pb.EliteReq) (*pb.ChangeEliteResp, error) { - // todo: add your logic here and delete this line - - return &pb.ChangeEliteResp{}, nil -} diff --git a/app/user_center/internal/logic/change_title_logic.go b/app/user_center/internal/logic/change_title_logic.go deleted file mode 100644 index 13dd667..0000000 --- a/app/user_center/internal/logic/change_title_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type ChangeTitleLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewChangeTitleLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ChangeTitleLogic { - return &ChangeTitleLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *ChangeTitleLogic) ChangeTitle(in *pb.TitleReq) (*pb.ChangeTitleResp, error) { - // todo: add your logic here and delete this line - - return &pb.ChangeTitleResp{}, nil -} diff --git a/app/user_center/internal/logic/draw_gift_pack_logic.go b/app/user_center/internal/logic/draw_gift_pack_logic.go deleted file mode 100644 index 723d1cc..0000000 --- a/app/user_center/internal/logic/draw_gift_pack_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type DrawGiftPackLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewDrawGiftPackLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DrawGiftPackLogic { - return &DrawGiftPackLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *DrawGiftPackLogic) DrawGiftPack(in *pb.DrawGiftPackReq) (*pb.DrawGiftPackResp, error) { - // todo: add your logic here and delete this line - - return &pb.DrawGiftPackResp{}, nil -} diff --git a/app/user_center/internal/logic/get_user_coin_logic.go b/app/user_center/internal/logic/get_user_coin_logic.go deleted file mode 100644 index 7f1d936..0000000 --- a/app/user_center/internal/logic/get_user_coin_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type GetUserCoinLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewGetUserCoinLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserCoinLogic { - return &GetUserCoinLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// getUserCoin 获取用户弹币 -func (l *GetUserCoinLogic) GetUserCoin(in *pb.UserIdReq) (*pb.GetUserCoinResp, error) { - // todo: add your logic here and delete this line - - return &pb.GetUserCoinResp{}, nil -} diff --git a/app/user_center/internal/logic/get_user_details_logic.go b/app/user_center/internal/logic/get_user_details_logic.go deleted file mode 100644 index 9dbdca3..0000000 --- a/app/user_center/internal/logic/get_user_details_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type GetUserDetailsLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewGetUserDetailsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserDetailsLogic { - return &GetUserDetailsLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// getUserDetails 获取用户详细信息 -func (l *GetUserDetailsLogic) GetUserDetails(in *pb.UserIdReq) (*pb.UserDetailsResp, error) { - // todo: add your logic here and delete this line - - return &pb.UserDetailsResp{}, nil -} diff --git a/app/user_center/internal/logic/get_user_id_by_p_uid_logic.go b/app/user_center/internal/logic/get_user_id_by_p_uid_logic.go deleted file mode 100644 index bd87085..0000000 --- a/app/user_center/internal/logic/get_user_id_by_p_uid_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type GetUserIdByPUidLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewGetUserIdByPUidLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserIdByPUidLogic { - return &GetUserIdByPUidLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// getUserIdByPUid 通过平台用户id获取系统用户ID -func (l *GetUserIdByPUidLogic) GetUserIdByPUid(in *pb.PlatformUserReq) (*pb.UserIdResp, error) { - // todo: add your logic here and delete this line - - return &pb.UserIdResp{}, nil -} diff --git a/app/user_center/internal/logic/give_elite_logic.go b/app/user_center/internal/logic/give_elite_logic.go deleted file mode 100644 index 4196536..0000000 --- a/app/user_center/internal/logic/give_elite_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type GiveEliteLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewGiveEliteLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GiveEliteLogic { - return &GiveEliteLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *GiveEliteLogic) GiveElite(in *pb.GiveEliteReq) (*pb.BuyEliteResp, error) { - // todo: add your logic here and delete this line - - return &pb.BuyEliteResp{}, nil -} diff --git a/app/user_center/internal/logic/give_title_logic.go b/app/user_center/internal/logic/give_title_logic.go deleted file mode 100644 index d4361d9..0000000 --- a/app/user_center/internal/logic/give_title_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type GiveTitleLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewGiveTitleLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GiveTitleLogic { - return &GiveTitleLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *GiveTitleLogic) GiveTitle(in *pb.GiveTitleReq) (*pb.BuyTitleResp, error) { - // todo: add your logic here and delete this line - - return &pb.BuyTitleResp{}, nil -} diff --git a/app/user_center/internal/logic/rank_pvp_logic.go b/app/user_center/internal/logic/rank_pvp_logic.go deleted file mode 100644 index 6a68e3a..0000000 --- a/app/user_center/internal/logic/rank_pvp_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type RankPvpLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewRankPvpLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RankPvpLogic { - return &RankPvpLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// rankPvp pvp排行 -func (l *RankPvpLogic) RankPvp(in *pb.RankPvpReq) (*pb.RankPvpResp, error) { - // todo: add your logic here and delete this line - - return &pb.RankPvpResp{}, nil -} diff --git a/app/user_center/internal/logic/rank_pvp_submit_logic.go b/app/user_center/internal/logic/rank_pvp_submit_logic.go deleted file mode 100644 index 8d4d51e..0000000 --- a/app/user_center/internal/logic/rank_pvp_submit_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type RankPvpSubmitLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewRankPvpSubmitLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RankPvpSubmitLogic { - return &RankPvpSubmitLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *RankPvpSubmitLogic) RankPvpSubmit(in *pb.RankPvpSubmitReq) (*pb.RankPvpSubmitResp, error) { - // todo: add your logic here and delete this line - - return &pb.RankPvpSubmitResp{}, nil -} diff --git a/app/user_center/internal/logic/retrieve_platform_user_logic.go b/app/user_center/internal/logic/retrieve_platform_user_logic.go deleted file mode 100644 index 7e1b43d..0000000 --- a/app/user_center/internal/logic/retrieve_platform_user_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type RetrievePlatformUserLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewRetrievePlatformUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RetrievePlatformUserLogic { - return &RetrievePlatformUserLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// retrievePlatformUser 新增或获取用户 -func (l *RetrievePlatformUserLogic) RetrievePlatformUser(in *pb.PlatformUserReq) (*pb.PlatformUserResp, error) { - // todo: add your logic here and delete this line - - return &pb.PlatformUserResp{}, nil -} diff --git a/app/user_center/internal/logic/stat_pvp_report_logic.go b/app/user_center/internal/logic/stat_pvp_report_logic.go deleted file mode 100644 index 8b5c705..0000000 --- a/app/user_center/internal/logic/stat_pvp_report_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type StatPvpReportLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewStatPvpReportLogic(ctx context.Context, svcCtx *svc.ServiceContext) *StatPvpReportLogic { - return &StatPvpReportLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *StatPvpReportLogic) StatPvpReport(in *pb.StatPvPReportReq) (*pb.StatPvPReportResp, error) { - // todo: add your logic here and delete this line - - return &pb.StatPvPReportResp{}, nil -} diff --git a/app/user_center/internal/logic/transfer_user_coin_logic.go b/app/user_center/internal/logic/transfer_user_coin_logic.go deleted file mode 100644 index 4207190..0000000 --- a/app/user_center/internal/logic/transfer_user_coin_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type TransferUserCoinLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewTransferUserCoinLogic(ctx context.Context, svcCtx *svc.ServiceContext) *TransferUserCoinLogic { - return &TransferUserCoinLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// transferUserCoin 转移用户弹币 -func (l *TransferUserCoinLogic) TransferUserCoin(in *pb.TransferUserCoinReq) (*pb.TransferUserCoinResp, error) { - // todo: add your logic here and delete this line - - return &pb.TransferUserCoinResp{}, nil -} diff --git a/app/user_center/internal/logic/user_buy_nobility_logic.go b/app/user_center/internal/logic/user_buy_nobility_logic.go deleted file mode 100644 index 825775a..0000000 --- a/app/user_center/internal/logic/user_buy_nobility_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type UserBuyNobilityLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewUserBuyNobilityLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserBuyNobilityLogic { - return &UserBuyNobilityLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *UserBuyNobilityLogic) UserBuyNobility(in *pb.UserBuyNobilityReq) (*pb.Empty, error) { - // todo: add your logic here and delete this line - - return &pb.Empty{}, nil -} diff --git a/app/user_center/internal/logic/user_check_in_logic.go b/app/user_center/internal/logic/user_check_in_logic.go deleted file mode 100644 index ad62fbb..0000000 --- a/app/user_center/internal/logic/user_check_in_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type UserCheckInLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewUserCheckInLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserCheckInLogic { - return &UserCheckInLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// UserCheckIn 用户签到|打卡 -func (l *UserCheckInLogic) UserCheckIn(in *pb.UserIdReq) (*pb.UserCheckInResp, error) { - // todo: add your logic here and delete this line - - return &pb.UserCheckInResp{}, nil -} diff --git a/app/user_center/internal/logic/user_rank_pvp_logic.go b/app/user_center/internal/logic/user_rank_pvp_logic.go deleted file mode 100644 index 7b8709a..0000000 --- a/app/user_center/internal/logic/user_rank_pvp_logic.go +++ /dev/null @@ -1,30 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type UserRankPvpLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewUserRankPvpLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserRankPvpLogic { - return &UserRankPvpLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -func (l *UserRankPvpLogic) UserRankPvp(in *pb.UserRankReq) (*pb.UserRankResp, error) { - // todo: add your logic here and delete this line - - return &pb.UserRankResp{}, nil -} diff --git a/app/user_center/internal/logic/user_send_gift_logic.go b/app/user_center/internal/logic/user_send_gift_logic.go deleted file mode 100644 index 20e873e..0000000 --- a/app/user_center/internal/logic/user_send_gift_logic.go +++ /dev/null @@ -1,31 +0,0 @@ -package logic - -import ( - "context" - - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/logx" -) - -type UserSendGiftLogic struct { - ctx context.Context - svcCtx *svc.ServiceContext - logx.Logger -} - -func NewUserSendGiftLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserSendGiftLogic { - return &UserSendGiftLogic{ - ctx: ctx, - svcCtx: svcCtx, - Logger: logx.WithContext(ctx), - } -} - -// UserSendGift 用户赠送礼物 -func (l *UserSendGiftLogic) UserSendGift(in *pb.UserSendGiftReq) (*pb.Empty, error) { - // todo: add your logic here and delete this line - - return &pb.Empty{}, nil -} diff --git a/app/user_center/internal/server/user_center_server.go b/app/user_center/internal/server/user_center_server.go deleted file mode 100644 index 8202f86..0000000 --- a/app/user_center/internal/server/user_center_server.go +++ /dev/null @@ -1,132 +0,0 @@ -// Code generated by goctl. DO NOT EDIT! -// Source: user_center.proto - -package server - -import ( - "context" - - "dcg/app/user_center/internal/logic" - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" -) - -type UserCenterServer struct { - svcCtx *svc.ServiceContext - pb.UnimplementedUserCenterServer -} - -func NewUserCenterServer(svcCtx *svc.ServiceContext) *UserCenterServer { - return &UserCenterServer{ - svcCtx: svcCtx, - } -} - -// retrievePlatformUser 新增或获取用户 -func (s *UserCenterServer) RetrievePlatformUser(ctx context.Context, in *pb.PlatformUserReq) (*pb.PlatformUserResp, error) { - l := logic.NewRetrievePlatformUserLogic(ctx, s.svcCtx) - return l.RetrievePlatformUser(in) -} - -// getUserDetails 获取用户详细信息 -func (s *UserCenterServer) GetUserDetails(ctx context.Context, in *pb.UserIdReq) (*pb.UserDetailsResp, error) { - l := logic.NewGetUserDetailsLogic(ctx, s.svcCtx) - return l.GetUserDetails(in) -} - -// getUserIdByPUid 通过平台用户id获取系统用户ID -func (s *UserCenterServer) GetUserIdByPUid(ctx context.Context, in *pb.PlatformUserReq) (*pb.UserIdResp, error) { - l := logic.NewGetUserIdByPUidLogic(ctx, s.svcCtx) - return l.GetUserIdByPUid(in) -} - -// UserCheckIn 用户签到|打卡 -func (s *UserCenterServer) UserCheckIn(ctx context.Context, in *pb.UserIdReq) (*pb.UserCheckInResp, error) { - l := logic.NewUserCheckInLogic(ctx, s.svcCtx) - return l.UserCheckIn(in) -} - -// changeCoin 新增或扣减用户弹币 -func (s *UserCenterServer) ChangeCoin(ctx context.Context, in *pb.ChangeCoinReq) (*pb.Empty, error) { - l := logic.NewChangeCoinLogic(ctx, s.svcCtx) - return l.ChangeCoin(in) -} - -// getUserCoin 获取用户弹币 -func (s *UserCenterServer) GetUserCoin(ctx context.Context, in *pb.UserIdReq) (*pb.GetUserCoinResp, error) { - l := logic.NewGetUserCoinLogic(ctx, s.svcCtx) - return l.GetUserCoin(in) -} - -// transferUserCoin 转移用户弹币 -func (s *UserCenterServer) TransferUserCoin(ctx context.Context, in *pb.TransferUserCoinReq) (*pb.TransferUserCoinResp, error) { - l := logic.NewTransferUserCoinLogic(ctx, s.svcCtx) - return l.TransferUserCoin(in) -} - -// UserSendGift 用户赠送礼物 -func (s *UserCenterServer) UserSendGift(ctx context.Context, in *pb.UserSendGiftReq) (*pb.Empty, error) { - l := logic.NewUserSendGiftLogic(ctx, s.svcCtx) - return l.UserSendGift(in) -} - -func (s *UserCenterServer) UserBuyNobility(ctx context.Context, in *pb.UserBuyNobilityReq) (*pb.Empty, error) { - l := logic.NewUserBuyNobilityLogic(ctx, s.svcCtx) - return l.UserBuyNobility(in) -} - -func (s *UserCenterServer) StatPvpReport(ctx context.Context, in *pb.StatPvPReportReq) (*pb.StatPvPReportResp, error) { - l := logic.NewStatPvpReportLogic(ctx, s.svcCtx) - return l.StatPvpReport(in) -} - -func (s *UserCenterServer) DrawGiftPack(ctx context.Context, in *pb.DrawGiftPackReq) (*pb.DrawGiftPackResp, error) { - l := logic.NewDrawGiftPackLogic(ctx, s.svcCtx) - return l.DrawGiftPack(in) -} - -// rankPvp pvp排行 -func (s *UserCenterServer) RankPvp(ctx context.Context, in *pb.RankPvpReq) (*pb.RankPvpResp, error) { - l := logic.NewRankPvpLogic(ctx, s.svcCtx) - return l.RankPvp(in) -} - -func (s *UserCenterServer) RankPvpSubmit(ctx context.Context, in *pb.RankPvpSubmitReq) (*pb.RankPvpSubmitResp, error) { - l := logic.NewRankPvpSubmitLogic(ctx, s.svcCtx) - return l.RankPvpSubmit(in) -} - -func (s *UserCenterServer) UserRankPvp(ctx context.Context, in *pb.UserRankReq) (*pb.UserRankResp, error) { - l := logic.NewUserRankPvpLogic(ctx, s.svcCtx) - return l.UserRankPvp(in) -} - -func (s *UserCenterServer) GiveElite(ctx context.Context, in *pb.GiveEliteReq) (*pb.BuyEliteResp, error) { - l := logic.NewGiveEliteLogic(ctx, s.svcCtx) - return l.GiveElite(in) -} - -func (s *UserCenterServer) BuyElite(ctx context.Context, in *pb.EliteReq) (*pb.BuyEliteResp, error) { - l := logic.NewBuyEliteLogic(ctx, s.svcCtx) - return l.BuyElite(in) -} - -func (s *UserCenterServer) GiveTitle(ctx context.Context, in *pb.GiveTitleReq) (*pb.BuyTitleResp, error) { - l := logic.NewGiveTitleLogic(ctx, s.svcCtx) - return l.GiveTitle(in) -} - -func (s *UserCenterServer) BuyTitle(ctx context.Context, in *pb.TitleReq) (*pb.BuyTitleResp, error) { - l := logic.NewBuyTitleLogic(ctx, s.svcCtx) - return l.BuyTitle(in) -} - -func (s *UserCenterServer) ChangeElite(ctx context.Context, in *pb.EliteReq) (*pb.ChangeEliteResp, error) { - l := logic.NewChangeEliteLogic(ctx, s.svcCtx) - return l.ChangeElite(in) -} - -func (s *UserCenterServer) ChangeTitle(ctx context.Context, in *pb.TitleReq) (*pb.ChangeTitleResp, error) { - l := logic.NewChangeTitleLogic(ctx, s.svcCtx) - return l.ChangeTitle(in) -} diff --git a/app/user_center/internal/svc/service_context.go b/app/user_center/internal/svc/service_context.go deleted file mode 100644 index e714852..0000000 --- a/app/user_center/internal/svc/service_context.go +++ /dev/null @@ -1,13 +0,0 @@ -package svc - -import "dcg/app/user_center/internal/config" - -type ServiceContext struct { - Config config.Config -} - -func NewServiceContext(c config.Config) *ServiceContext { - return &ServiceContext{ - Config: c, - } -} diff --git a/app/user_center/pb/user_center.pb.go b/app/user_center/pb/user_center.pb.go index 87d0cd2..5ec8f41 100644 --- a/app/user_center/pb/user_center.pb.go +++ b/app/user_center/pb/user_center.pb.go @@ -2773,12 +2773,11 @@ type RankPvpSubmitResp_Result struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar,omitempty"` - Coin int64 `protobuf:"varint,4,opt,name=coin,proto3" json:"coin,omitempty"` // 获取到的积分数 - Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` // 获取到的称号 - TitleDuration int64 `protobuf:"varint,6,opt,name=titleDuration,proto3" json:"titleDuration,omitempty"` // 称号持续时间(单位: 秒,负数为无限长) + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar,omitempty"` + Coin int64 `protobuf:"varint,4,opt,name=coin,proto3" json:"coin,omitempty"` // 获取到的积分数 + Title int64 `protobuf:"varint,5,opt,name=title,proto3" json:"title,omitempty"` // 获取到的称号ID } func (x *RankPvpSubmitResp_Result) Reset() { @@ -2841,17 +2840,10 @@ func (x *RankPvpSubmitResp_Result) GetCoin() int64 { return 0 } -func (x *RankPvpSubmitResp_Result) GetTitle() string { +func (x *RankPvpSubmitResp_Result) GetTitle() int64 { if x != nil { return x.Title } - return "" -} - -func (x *RankPvpSubmitResp_Result) GetTitleDuration() int64 { - if x != nil { - return x.TitleDuration - } return 0 } @@ -3209,166 +3201,164 @@ var file_user_center_proto_rawDesc = []byte{ 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, - 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0xdb, 0x02, 0x0a, 0x11, 0x52, 0x61, + 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb4, 0x02, 0x0a, 0x11, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x1a, 0xa4, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6d, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x36, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x72, - 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, - 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, - 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x61, 0x6c, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9a, 0x01, 0x0a, - 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, - 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x70, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x36, 0x0a, 0x08, 0x45, 0x6c, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, - 0x74, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x69, - 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, 0x74, - 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x75, 0x79, - 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0c, 0x47, - 0x69, 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, + 0x73, 0x1a, 0x7e, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x72, - 0x65, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x65, - 0x76, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, + 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x1a, 0x6d, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, + 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, + 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x52, + 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x22, 0x92, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x71, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, + 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x52, 0x61, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x0a, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, + 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x22, 0x36, 0x0a, 0x08, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x69, + 0x76, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x65, + 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, + 0x65, 0x72, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, + 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, + 0x74, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x69, 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x0f, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, + 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, + 0x0c, 0x42, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, - 0x36, 0x0a, 0x08, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0x57, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x2a, 0x28, 0x0a, 0x08, 0x47, 0x69, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x75, 0x62, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x10, 0x01, 0x32, 0xaf, 0x08, 0x0a, 0x0a, 0x75, - 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x14, 0x72, 0x65, 0x74, - 0x72, 0x69, 0x65, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0e, - 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x0d, - 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, - 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, - 0x79, 0x50, 0x55, 0x69, 0x64, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, - 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x11, 0x2e, 0x70, 0x62, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x09, - 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x0b, 0x67, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x10, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x54, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x36, 0x0a, 0x08, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, + 0x22, 0x57, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x2a, 0x28, 0x0a, 0x08, 0x47, 0x69, 0x66, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x72, + 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x65, 0x10, 0x01, 0x32, 0xaf, 0x08, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x41, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0e, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0f, 0x67, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, 0x79, 0x50, 0x55, 0x69, 0x64, 0x12, 0x13, + 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x49, 0x6e, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x31, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, + 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, - 0x69, 0x66, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, - 0x64, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x09, - 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x74, 0x61, - 0x74, 0x50, 0x76, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x72, 0x61, 0x77, 0x47, - 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x72, 0x61, - 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, - 0x62, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x12, 0x0e, 0x2e, - 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, - 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, - 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, - 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, - 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, - 0x75, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x12, 0x0f, 0x2e, 0x70, 0x62, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, - 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, - 0x0a, 0x09, 0x67, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x70, 0x62, - 0x2e, 0x47, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, - 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x2a, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, - 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, - 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x09, 0x67, - 0x69, 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x69, - 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, - 0x42, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x08, - 0x62, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x69, - 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6c, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, - 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0c, + 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x12, 0x13, 0x2e, 0x70, + 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x0f, + 0x75, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, + 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x50, 0x76, 0x70, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x72, 0x61, 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, + 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x47, + 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x72, + 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, + 0x50, 0x76, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, + 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x6b, 0x50, + 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, + 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, + 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, + 0x6b, 0x50, 0x76, 0x70, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x09, 0x67, 0x69, 0x76, 0x65, 0x45, + 0x6c, 0x69, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x69, 0x76, 0x65, 0x45, 0x6c, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x45, + 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x45, + 0x6c, 0x69, 0x74, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x09, 0x67, 0x69, 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x69, 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, + 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, + 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/app/user_center/pb/user_center.proto b/app/user_center/pb/user_center.proto index 584c9f8..c677ec4 100644 --- a/app/user_center/pb/user_center.proto +++ b/app/user_center/pb/user_center.proto @@ -239,8 +239,7 @@ message RankPvpSubmitResp { string username = 2; string avatar = 3; int64 coin = 4; // 获取到的积分数 - string title = 5; // 获取到的称号 - int64 titleDuration = 6; // 称号持续时间(单位: 秒,负数为无限长) + int64 title = 5; // 获取到的称号ID } message Item { pb.vars.RankType rankType = 1; // 排行榜类型 diff --git a/app/user_center/user_center.go b/app/user_center/user_center.go deleted file mode 100644 index defc1aa..0000000 --- a/app/user_center/user_center.go +++ /dev/null @@ -1,40 +0,0 @@ -package main - -import ( - "flag" - "fmt" - - "dcg/app/user_center/internal/config" - "dcg/app/user_center/internal/server" - "dcg/app/user_center/internal/svc" - "dcg/app/user_center/pb" - - "github.com/zeromicro/go-zero/core/conf" - "github.com/zeromicro/go-zero/core/service" - "github.com/zeromicro/go-zero/zrpc" - "google.golang.org/grpc" - "google.golang.org/grpc/reflection" -) - -var configFile = flag.String("f", "etc/user_center.yaml", "the config file") - -func main() { - flag.Parse() - - var c config.Config - conf.MustLoad(*configFile, &c) - ctx := svc.NewServiceContext(c) - svr := server.NewUserCenterServer(ctx) - - s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) { - pb.RegisterUserCenterServer(grpcServer, svr) - - if c.Mode == service.DevMode || c.Mode == service.TestMode { - reflection.Register(grpcServer) - } - }) - defer s.Stop() - - fmt.Printf("Starting rpc server at %s...\n", c.ListenOn) - s.Start() -} diff --git a/config-dev.yml b/config-dev.yml index 24285c2..f56b8ce 100644 --- a/config-dev.yml +++ b/config-dev.yml @@ -28,15 +28,17 @@ Kafka: Topic: "notify-user-coin-dev" ConsumerGroup: "notifyUserCoinConsumerG-dev" Game: + # 30213831837876229 地球 + AdminUserId: [30096265903603717, 30213831837876229] Zhg: # 1元=10 Coin (1元40个步兵) CoinFoodRatio: 4 - OutbreakCount: 2 + OutbreakCount: 3 OutbreakBaseCost: 5 OutbreakCostDict: - 1: 4 # 步兵 - 2: 9 # 骑兵 - 3: 5 # 弓箭手 + 1: 3 # 步兵 + 2: 7 # 骑兵 + 3: 4 # 弓箭手 4: 3 # 法师 Zhghz: Zhgfb: @@ -100,7 +102,7 @@ Game: Log: Console: Level: debug - Format: console- + Format: console File: Enabled: false Level: info diff --git a/config.yml b/config.yml index fae34e0..7df8305 100644 --- a/config.yml +++ b/config.yml @@ -15,24 +15,90 @@ Kafka: Addr: [ "127.0.0.1:9093" ] Topic: "gift" ConsumerGroup: "giftToPush" + GuardBuy: + Addr: [ "127.0.0.1:9093" ] + Topic: "guardBuy" + ConsumerGroup: "guardBuyConsumerG" + RewardPool: + Addr: [ "127.0.0.1:9093" ] + Topic: "rewardPool" + ConsumerGroup: "rewardPoolConsumerG" + UserCoin: + Addr: [ "127.0.0.1:9093" ] + Topic: "notify-user-coin" + ConsumerGroup: "notifyUserCoinConsumerG" Game: - ModeDict: - 8722013: 0 - Common: - Commands: [ "q", "查询", "打卡", "签到" ] + # 30213831837876229 地球 + AdminUserId: [30096265903603717, 30213831837876229] Zhg: - Commands: [ "j", "加入", "加入游戏", "s", "w", "我在哪", "s1", "s2", "s3", "s4", "c1", "c2", "c3", "c4", "r1", "r2", "r3", "m1", "m2", "m3" ] - OutbreakCount: 5 - OutbreakBaseCost: 300 + # 1元=10 Coin (1元40个步兵) + CoinFoodRatio: 4 + OutbreakCount: 3 + OutbreakBaseCost: 5 OutbreakCostDict: - 1: 120 # 步兵 - 2: 160 # 骑兵 - 3: 200 # 弓箭手 - 4: 220 # 法师 + 1: 3 # 步兵 + 2: 7 # 骑兵 + 3: 4 # 弓箭手 + 4: 3 # 法师 Zhghz: - Commands: [ "j", "加入", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "w", "我在哪", "m1", "m2", "m3", "m4", "f", "开炮" ] Zhgfb: - Commands: [ ] + Zhgzd: + MaxStrategicPoints: 100 + StrategicRecoverSpeed: 5 + CommandUnitDict: + 1: "0001" + 2: "0004" + 3: "0003" + 4: "0006" + CommandCostDict: + s: + Common: 0 + Units: + "0001": 30 + "0003": 35 + "0004": 30 + "0006": 30 + c: + Common: 5 + r: + Common: 10 + p: + Common: 10 + m: + Common: 5 + DispatchCountDict: + "0001": 5 + "0003": 5 + "0004": 2 + "0006": 5 + GiftEffect: + StrategicMaximal: + # 这个好诶 10电池 1元 + GiftIds: [ 30758,30971,31213,31478 ] + Addon: 10 + Limit: 5 + StrategicRecover: + # 打call 5电池 0.5元 + GiftIds: [ 31278,31037,31212,31485 ] + Addon: 3 + Duration: 5 + Limit: 10 + SupportSkill: + # 辣条随机 免费 + - GiftIds: [ 1 ] + SkillIds: [ "S0001", "S0001", "S0002","S0002", "S0003", "S0005" ] + # 小花花 - 火墙 1电池 0.1元 + - GiftIds: [ 31036, 31476 ] + SkillIds: [ "S0001" ] + # 牛哇牛哇 - 雷击 1电池 0.1元 + - GiftIds: [ 31225, 31214, 31039, 31202, 31477 ] + SkillIds: [ "S0003" ] + # i了i了 - 箭雨 1电池 0.1元 + - GiftIds: [ 31060, 31216 ] + SkillIds: [ "S0002" ] + SuperSkill: + # 干杯 超级技能 + GiftIds: [30606, 31049, 31251, 31116] Log: Console: Level: info diff --git a/config/config.go b/config/config.go index 1697941..4598bdc 100644 --- a/config/config.go +++ b/config/config.go @@ -37,6 +37,7 @@ type ( UserCoin Kafka // 用户金币变动消息 } Game struct { + AdminUserId []int64 // 管理员ID // Zhg 指挥官PvP模式 Zhg struct { CoinFoodRatio float32 // 硬币到粮草的转换系数(乘) diff --git a/game/live_logic/zhg_handler.go b/game/live_logic/zhg_handler.go index 47aeeb2..6b6ba2e 100644 --- a/game/live_logic/zhg_handler.go +++ b/game/live_logic/zhg_handler.go @@ -60,15 +60,19 @@ func NewZhgLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic { }, cmd.Pattern{ Prefix: "bw", Alias: []string{"购买精英", "买精英"}, - ContentMaxLen: 1, + ContentMaxLen: 2, }, cmd.Pattern{ Prefix: "zw", Alias: []string{"装备精英"}, - ContentMaxLen: 1, + ContentMaxLen: 2, }, cmd.Pattern{ Prefix: "zz", Alias: []string{"使用称号"}, - ContentMaxLen: 1, + ContentMaxLen: 2, + }, cmd.Pattern{ + Prefix: "结算", + Alias: nil, + ContentMaxLen: 2, }, )), } @@ -84,6 +88,8 @@ func NewZhgLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic { resp.RegisterCMDHandler(resp.handleBuyElite, "bw") resp.RegisterCMDHandler(resp.handleChangeElite, "zw") resp.RegisterCMDHandler(resp.handleChangeTitle, "zz") + // + resp.RegisterCMDHandler(resp.handleRankSubmit, "结算") // gift resp.RegisterGiftHandler(resp.handleGift) return resp.LiveGameLogic @@ -103,16 +109,20 @@ func (h *ZhgGameLogic) handleQuery(roomId int64, _ []rune, user *pbCommon.PbUser // details if details, err := h.svcCtx.UserCenterRpc.GetUserDetails(h.svcCtx.Ctx, &usercenter.UserIdReq{UserId: user.UserId}); err == nil { resp.Coin = details.Coin - resp.CurrentTitle = &pbCommon.TitleItem{ - Id: details.CurrentTitle.Id, - Name: details.CurrentTitle.Name, - Sort: details.CurrentTitle.Sort, - Remain: details.CurrentTitle.Remain, + if details.CurrentTitle != nil { + resp.CurrentTitle = &pbCommon.TitleItem{ + Id: details.CurrentTitle.Id, + Name: details.CurrentTitle.Name, + Sort: details.CurrentTitle.Sort, + Remain: details.CurrentTitle.Remain, + } } - resp.CurrentElite = &pbGameZhg.EliteItem{ - Id: details.CurrentElite.Id, - Sort: details.CurrentElite.Sort, - Remain: details.CurrentElite.Remain, + if details.CurrentElite != nil { + resp.CurrentElite = &pbGameZhg.EliteItem{ + Id: details.CurrentElite.Id, + Sort: details.CurrentElite.Sort, + Remain: details.CurrentElite.Remain, + } } resp.Titles = make([]*pbCommon.TitleItem, 0, len(details.Titles)) for _, item := range details.Titles { @@ -166,22 +176,29 @@ func (h *ZhgGameLogic) handleJoinGame(roomId int64, _ []rune, user *pbCommon.PbU return } - room.Broadcast(pb.PushZhgJoinGame, &pbGameZhg.JoinGame{ + resp := &pbGameZhg.JoinGame{ User: user, NobilityLevel: details.NobilityLevel, Coin: details.Coin, - CurrentTitle: &pbCommon.TitleItem{ + } + + if details.CurrentTitle != nil { + resp.CurrentTitle = &pbCommon.TitleItem{ Id: details.CurrentTitle.Id, Name: details.CurrentTitle.Name, Sort: details.CurrentTitle.Sort, Remain: details.CurrentTitle.Remain, - }, - CurrentElite: &pbGameZhg.EliteItem{ + } + } + if details.CurrentElite != nil { + resp.CurrentElite = &pbGameZhg.EliteItem{ Id: details.CurrentElite.Id, Sort: details.CurrentElite.Sort, Remain: details.CurrentElite.Remain, - }, - }) + } + } + + room.Broadcast(pb.PushZhgJoinGame, resp) } func (h *ZhgGameLogic) handleOutbreak(roomId int64, content []rune, user *pbCommon.PbUser) { @@ -408,6 +425,61 @@ func (h *ZhgGameLogic) handleChangeTitle(roomId int64, content []rune, user *pbC room.Broadcast(pb.PushZhgChangeTitle, resp) } +func (h *ZhgGameLogic) handleRankSubmit(roomId int64, content []rune, user *pbCommon.PbUser) { + room, err := manager.GameManager.RoomByLiveRoomId(roomId) + if err != nil { + return + } + if len(content) == 0 { + return + } + var isAdminUser bool + for _, i := range config.Config.Game.AdminUserId { + if user.UserId == i { + isAdminUser = true + break + } + } + if !isAdminUser { + return + } + rankType := pbVars.RankType_General + if r, err := strconv.ParseInt(string(content), 10, 0); err == nil { + rankType = pbVars.RankType(r) + } + rpcResp, err := h.svcCtx.UserCenterRpc.RankPvpSubmit(h.svcCtx.Ctx, &usercenter.RankPvpSubmitReq{ + RankType: rankType, + AllRankType: false, + }) + if err != nil { + code, msg, _ := grpcx.WrapGrpcErr(err) + logger.SLog.Errorf("结算排行榜时RPC错误 code:[%d] msg:[%s] %v", code, msg, err) + return + } + resp := &pbGameZhg.RankRvpSubmitResult{ + Items: make([]*pbGameZhg.RankRvpSubmitResult_Item, 0, len(rpcResp.Items)), + } + for _, item := range rpcResp.Items { + tmp := &pbGameZhg.RankRvpSubmitResult_Item{ + RankType: item.RankType, + Results: make([]*pbGameZhg.RankRvpSubmitResult_Result, 0, len(item.Results)), + } + for _, result := range item.Results { + tmp.Results = append(tmp.Results, &pbGameZhg.RankRvpSubmitResult_Result{ + UserId: result.UserId, + Username: result.Username, + Avatar: result.Avatar, + Coin: result.Coin, + Title: result.Title, + }) + } + resp.Items = append(resp.Items, tmp) + } + + logger.SLog.Debugf("用户 [%s] 结算排行榜 %d\n%+v", user.Username, rankType, resp) + room.Broadcast(pb.PushZhgRankSubmit, resp) +} + func (h *ZhgGameLogic) handleGift(roomId int64, user *pbCommon.PbUser, gift *pbMq.MqGift) { // TODO 暂时没有特殊礼物需求,留空 } diff --git a/game/pb/game/zhg/Rank.cs b/game/pb/game/zhg/Rank.cs index 0ca92bc..3d9cdc0 100644 --- a/game/pb/game/zhg/Rank.cs +++ b/game/pb/game/zhg/Rank.cs @@ -30,20 +30,21 @@ namespace Pb.Game.Zhg { "ZRgBIAEoDjIRLnBiLnZhcnMuUmFua1R5cGUSLAoFaXRlbXMYAiADKAsyHS5w", "Yi5nYW1lLnpoZy5SYW5rUHZwUmVzcC5JdGVtGkEKBEl0ZW0SCwoDdWlkGAEg", "ASgDEg0KBXVuYW1lGAIgASgJEg0KBXNjb3JlGAMgASgDEg4KBmF2YXRhchgE", - "IAEoCSL1AQoTUmFua1J2cFN1Ym1pdFJlc3VsdBI0CgVpdGVtcxgBIAMoCzIl", - "LnBiLmdhbWUuemhnLlJhbmtSdnBTdWJtaXRSZXN1bHQuSXRlbRpFCgZSZXdh", - "cmQSCwoDdWlkGAEgASgDEg0KBXVuYW1lGAIgASgJEhAKCGludGVncmFsGAMg", - "ASgDEg0KBXRpdGxlGAQgASgDGmEKBEl0ZW0SHwoEdHlwZRgBIAEoDjIRLnBi", - "LnZhcnMuUmFua1R5cGUSOAoHcmV3YXJkcxgCIAMoCzInLnBiLmdhbWUuemhn", - "LlJhbmtSdnBTdWJtaXRSZXN1bHQuUmV3YXJkQiBaHmRjZy9nYW1lL3BiL2dh", - "bWUvemhnO3BiR2FtZVpoZ2IGcHJvdG8z")); + "IAEoCSKLAgoTUmFua1J2cFN1Ym1pdFJlc3VsdBI0CgVpdGVtcxgBIAMoCzIl", + "LnBiLmdhbWUuemhnLlJhbmtSdnBTdWJtaXRSZXN1bHQuSXRlbRpXCgZSZXN1", + "bHQSDgoGdXNlcklkGAEgASgDEhAKCHVzZXJuYW1lGAIgASgJEg4KBmF2YXRh", + "chgDIAEoCRIMCgRjb2luGAQgASgDEg0KBXRpdGxlGAUgASgDGmUKBEl0ZW0S", + "IwoIcmFua1R5cGUYASABKA4yES5wYi52YXJzLlJhbmtUeXBlEjgKB3Jlc3Vs", + "dHMYAiADKAsyJy5wYi5nYW1lLnpoZy5SYW5rUnZwU3VibWl0UmVzdWx0LlJl", + "c3VsdEIgWh5kY2cvZ2FtZS9wYi9nYW1lL3poZztwYkdhbWVaaGdiBnByb3Rv", + "Mw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Pb.Vars.VarsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankPvpReq), global::Pb.Game.Zhg.RankPvpReq.Parser, new[]{ "Type", "TopN" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankPvpResp), global::Pb.Game.Zhg.RankPvpResp.Parser, new[]{ "Type", "Items" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankPvpResp.Types.Item), global::Pb.Game.Zhg.RankPvpResp.Types.Item.Parser, new[]{ "Uid", "Uname", "Score", "Avatar" }, null, null, null, null)}), - new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankRvpSubmitResult), global::Pb.Game.Zhg.RankRvpSubmitResult.Parser, new[]{ "Items" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Reward), global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Reward.Parser, new[]{ "Uid", "Uname", "Integral", "Title" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Item), global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Item.Parser, new[]{ "Type", "Rewards" }, null, null, null, null)}) + new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankRvpSubmitResult), global::Pb.Game.Zhg.RankRvpSubmitResult.Parser, new[]{ "Items" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Result), global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Result.Parser, new[]{ "UserId", "Username", "Avatar", "Coin", "Title" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Item), global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Item.Parser, new[]{ "RankType", "Results" }, null, null, null, null)}) })); } #endregion @@ -1001,19 +1002,16 @@ namespace Pb.Game.Zhg { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static partial class Types { - /// - /// Reward 具体奖励 - /// - public sealed partial class Reward : pb::IMessage + public sealed partial class Result : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Reward()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Result()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -1029,7 +1027,7 @@ namespace Pb.Game.Zhg { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Reward() { + public Result() { OnConstruction(); } @@ -1037,70 +1035,77 @@ namespace Pb.Game.Zhg { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Reward(Reward other) : this() { - uid_ = other.uid_; - uname_ = other.uname_; - integral_ = other.integral_; + public Result(Result other) : this() { + userId_ = other.userId_; + username_ = other.username_; + avatar_ = other.avatar_; + coin_ = other.coin_; title_ = other.title_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public Reward Clone() { - return new Reward(this); + public Result Clone() { + return new Result(this); } - /// Field number for the "uid" field. - public const int UidFieldNumber = 1; - private long uid_; - /// - /// 用户ID - /// + /// Field number for the "userId" field. + public const int UserIdFieldNumber = 1; + private long userId_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Uid { - get { return uid_; } + public long UserId { + get { return userId_; } set { - uid_ = value; + userId_ = value; } } - /// Field number for the "uname" field. - public const int UnameFieldNumber = 2; - private string uname_ = ""; - /// - /// 用户名称 - /// + /// Field number for the "username" field. + public const int UsernameFieldNumber = 2; + private string username_ = ""; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public string Uname { - get { return uname_; } + public string Username { + get { return username_; } set { - uname_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + username_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); } } - /// Field number for the "integral" field. - public const int IntegralFieldNumber = 3; - private long integral_; + /// Field number for the "avatar" field. + public const int AvatarFieldNumber = 3; + private string avatar_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Avatar { + get { return avatar_; } + set { + avatar_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "coin" field. + public const int CoinFieldNumber = 4; + private long coin_; /// - /// 积分奖励 + /// 获取到的积分数 /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public long Integral { - get { return integral_; } + public long Coin { + get { return coin_; } set { - integral_ = value; + coin_ = value; } } /// Field number for the "title" field. - public const int TitleFieldNumber = 4; + public const int TitleFieldNumber = 5; private long title_; /// - /// 称号奖励(称号ID列表) + /// 获取到的称号ID /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -1114,21 +1119,22 @@ namespace Pb.Game.Zhg { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as Reward); + return Equals(other as Result); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(Reward other) { + public bool Equals(Result other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (Uid != other.Uid) return false; - if (Uname != other.Uname) return false; - if (Integral != other.Integral) return false; + if (UserId != other.UserId) return false; + if (Username != other.Username) return false; + if (Avatar != other.Avatar) return false; + if (Coin != other.Coin) return false; if (Title != other.Title) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1137,9 +1143,10 @@ namespace Pb.Game.Zhg { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (Uid != 0L) hash ^= Uid.GetHashCode(); - if (Uname.Length != 0) hash ^= Uname.GetHashCode(); - if (Integral != 0L) hash ^= Integral.GetHashCode(); + if (UserId != 0L) hash ^= UserId.GetHashCode(); + if (Username.Length != 0) hash ^= Username.GetHashCode(); + if (Avatar.Length != 0) hash ^= Avatar.GetHashCode(); + if (Coin != 0L) hash ^= Coin.GetHashCode(); if (Title != 0L) hash ^= Title.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -1159,20 +1166,24 @@ namespace Pb.Game.Zhg { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (Uid != 0L) { + if (UserId != 0L) { output.WriteRawTag(8); - output.WriteInt64(Uid); + output.WriteInt64(UserId); } - if (Uname.Length != 0) { + if (Username.Length != 0) { output.WriteRawTag(18); - output.WriteString(Uname); + output.WriteString(Username); } - if (Integral != 0L) { - output.WriteRawTag(24); - output.WriteInt64(Integral); + if (Avatar.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Avatar); } - if (Title != 0L) { + if (Coin != 0L) { output.WriteRawTag(32); + output.WriteInt64(Coin); + } + if (Title != 0L) { + output.WriteRawTag(40); output.WriteInt64(Title); } if (_unknownFields != null) { @@ -1185,20 +1196,24 @@ namespace Pb.Game.Zhg { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Uid != 0L) { + if (UserId != 0L) { output.WriteRawTag(8); - output.WriteInt64(Uid); + output.WriteInt64(UserId); } - if (Uname.Length != 0) { + if (Username.Length != 0) { output.WriteRawTag(18); - output.WriteString(Uname); + output.WriteString(Username); } - if (Integral != 0L) { - output.WriteRawTag(24); - output.WriteInt64(Integral); + if (Avatar.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Avatar); } - if (Title != 0L) { + if (Coin != 0L) { output.WriteRawTag(32); + output.WriteInt64(Coin); + } + if (Title != 0L) { + output.WriteRawTag(40); output.WriteInt64(Title); } if (_unknownFields != null) { @@ -1211,14 +1226,17 @@ namespace Pb.Game.Zhg { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (Uid != 0L) { - size += 1 + pb::CodedOutputStream.ComputeInt64Size(Uid); + if (UserId != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(UserId); } - if (Uname.Length != 0) { - size += 1 + pb::CodedOutputStream.ComputeStringSize(Uname); + if (Username.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Username); } - if (Integral != 0L) { - size += 1 + pb::CodedOutputStream.ComputeInt64Size(Integral); + if (Avatar.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Avatar); + } + if (Coin != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Coin); } if (Title != 0L) { size += 1 + pb::CodedOutputStream.ComputeInt64Size(Title); @@ -1231,18 +1249,21 @@ namespace Pb.Game.Zhg { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(Reward other) { + public void MergeFrom(Result other) { if (other == null) { return; } - if (other.Uid != 0L) { - Uid = other.Uid; + if (other.UserId != 0L) { + UserId = other.UserId; } - if (other.Uname.Length != 0) { - Uname = other.Uname; + if (other.Username.Length != 0) { + Username = other.Username; } - if (other.Integral != 0L) { - Integral = other.Integral; + if (other.Avatar.Length != 0) { + Avatar = other.Avatar; + } + if (other.Coin != 0L) { + Coin = other.Coin; } if (other.Title != 0L) { Title = other.Title; @@ -1263,18 +1284,22 @@ namespace Pb.Game.Zhg { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 8: { - Uid = input.ReadInt64(); + UserId = input.ReadInt64(); break; } case 18: { - Uname = input.ReadString(); + Username = input.ReadString(); break; } - case 24: { - Integral = input.ReadInt64(); + case 26: { + Avatar = input.ReadString(); break; } case 32: { + Coin = input.ReadInt64(); + break; + } + case 40: { Title = input.ReadInt64(); break; } @@ -1294,18 +1319,22 @@ namespace Pb.Game.Zhg { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 8: { - Uid = input.ReadInt64(); + UserId = input.ReadInt64(); break; } case 18: { - Uname = input.ReadString(); + Username = input.ReadString(); break; } - case 24: { - Integral = input.ReadInt64(); + case 26: { + Avatar = input.ReadString(); break; } case 32: { + Coin = input.ReadInt64(); + break; + } + case 40: { Title = input.ReadInt64(); break; } @@ -1316,9 +1345,6 @@ namespace Pb.Game.Zhg { } - /// - /// Item 奖励项 - /// public sealed partial class Item : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage @@ -1353,8 +1379,8 @@ namespace Pb.Game.Zhg { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public Item(Item other) : this() { - type_ = other.type_; - rewards_ = other.rewards_.Clone(); + rankType_ = other.rankType_; + results_ = other.results_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1364,33 +1390,33 @@ namespace Pb.Game.Zhg { return new Item(this); } - /// Field number for the "type" field. - public const int TypeFieldNumber = 1; - private global::Pb.Vars.RankType type_ = global::Pb.Vars.RankType.Unknown; + /// Field number for the "rankType" field. + public const int RankTypeFieldNumber = 1; + private global::Pb.Vars.RankType rankType_ = global::Pb.Vars.RankType.Unknown; /// - /// 榜单类型 + /// 排行榜类型 /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::Pb.Vars.RankType Type { - get { return type_; } + public global::Pb.Vars.RankType RankType { + get { return rankType_; } set { - type_ = value; + rankType_ = value; } } - /// Field number for the "rewards" field. - public const int RewardsFieldNumber = 2; - private static readonly pb::FieldCodec _repeated_rewards_codec - = pb::FieldCodec.ForMessage(18, global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Reward.Parser); - private readonly pbc::RepeatedField rewards_ = new pbc::RepeatedField(); + /// Field number for the "results" field. + public const int ResultsFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_results_codec + = pb::FieldCodec.ForMessage(18, global::Pb.Game.Zhg.RankRvpSubmitResult.Types.Result.Parser); + private readonly pbc::RepeatedField results_ = new pbc::RepeatedField(); /// - /// 奖励项 + /// 上榜玩家? /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public pbc::RepeatedField Rewards { - get { return rewards_; } + public pbc::RepeatedField Results { + get { return results_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1408,8 +1434,8 @@ namespace Pb.Game.Zhg { if (ReferenceEquals(other, this)) { return true; } - if (Type != other.Type) return false; - if(!rewards_.Equals(other.rewards_)) return false; + if (RankType != other.RankType) return false; + if(!results_.Equals(other.results_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1417,8 +1443,8 @@ namespace Pb.Game.Zhg { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; - if (Type != global::Pb.Vars.RankType.Unknown) hash ^= Type.GetHashCode(); - hash ^= rewards_.GetHashCode(); + if (RankType != global::Pb.Vars.RankType.Unknown) hash ^= RankType.GetHashCode(); + hash ^= results_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1437,11 +1463,11 @@ namespace Pb.Game.Zhg { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else - if (Type != global::Pb.Vars.RankType.Unknown) { + if (RankType != global::Pb.Vars.RankType.Unknown) { output.WriteRawTag(8); - output.WriteEnum((int) Type); + output.WriteEnum((int) RankType); } - rewards_.WriteTo(output, _repeated_rewards_codec); + results_.WriteTo(output, _repeated_results_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1452,11 +1478,11 @@ namespace Pb.Game.Zhg { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { - if (Type != global::Pb.Vars.RankType.Unknown) { + if (RankType != global::Pb.Vars.RankType.Unknown) { output.WriteRawTag(8); - output.WriteEnum((int) Type); + output.WriteEnum((int) RankType); } - rewards_.WriteTo(ref output, _repeated_rewards_codec); + results_.WriteTo(ref output, _repeated_results_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1467,10 +1493,10 @@ namespace Pb.Game.Zhg { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; - if (Type != global::Pb.Vars.RankType.Unknown) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type); + if (RankType != global::Pb.Vars.RankType.Unknown) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) RankType); } - size += rewards_.CalculateSize(_repeated_rewards_codec); + size += results_.CalculateSize(_repeated_results_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1483,10 +1509,10 @@ namespace Pb.Game.Zhg { if (other == null) { return; } - if (other.Type != global::Pb.Vars.RankType.Unknown) { - Type = other.Type; + if (other.RankType != global::Pb.Vars.RankType.Unknown) { + RankType = other.RankType; } - rewards_.Add(other.rewards_); + results_.Add(other.results_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1503,11 +1529,11 @@ namespace Pb.Game.Zhg { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 8: { - Type = (global::Pb.Vars.RankType) input.ReadEnum(); + RankType = (global::Pb.Vars.RankType) input.ReadEnum(); break; } case 18: { - rewards_.AddEntriesFrom(input, _repeated_rewards_codec); + results_.AddEntriesFrom(input, _repeated_results_codec); break; } } @@ -1526,11 +1552,11 @@ namespace Pb.Game.Zhg { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; case 8: { - Type = (global::Pb.Vars.RankType) input.ReadEnum(); + RankType = (global::Pb.Vars.RankType) input.ReadEnum(); break; } case 18: { - rewards_.AddEntriesFrom(ref input, _repeated_rewards_codec); + results_.AddEntriesFrom(ref input, _repeated_results_codec); break; } } diff --git a/game/pb/game/zhg/rank.pb.go b/game/pb/game/zhg/rank.pb.go index 2edb555..5691b80 100644 --- a/game/pb/game/zhg/rank.pb.go +++ b/game/pb/game/zhg/rank.pb.go @@ -252,20 +252,20 @@ func (x *RankPvpResp_Item) GetAvatar() string { return "" } -// Reward 具体奖励 -type RankRvpSubmitResult_Reward struct { +type RankRvpSubmitResult_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID - Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` // 用户名称 - Integral int64 `protobuf:"varint,3,opt,name=integral,proto3" json:"integral,omitempty"` // 积分奖励 - Title int64 `protobuf:"varint,4,opt,name=title,proto3" json:"title,omitempty"` // 称号奖励(称号ID列表) + UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar,omitempty"` + Coin int64 `protobuf:"varint,4,opt,name=coin,proto3" json:"coin,omitempty"` // 获取到的积分数 + Title int64 `protobuf:"varint,5,opt,name=title,proto3" json:"title,omitempty"` // 获取到的称号ID } -func (x *RankRvpSubmitResult_Reward) Reset() { - *x = RankRvpSubmitResult_Reward{} +func (x *RankRvpSubmitResult_Result) Reset() { + *x = RankRvpSubmitResult_Result{} if protoimpl.UnsafeEnabled { mi := &file_game_zhg_rank_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -273,13 +273,13 @@ func (x *RankRvpSubmitResult_Reward) Reset() { } } -func (x *RankRvpSubmitResult_Reward) String() string { +func (x *RankRvpSubmitResult_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RankRvpSubmitResult_Reward) ProtoMessage() {} +func (*RankRvpSubmitResult_Result) ProtoMessage() {} -func (x *RankRvpSubmitResult_Reward) ProtoReflect() protoreflect.Message { +func (x *RankRvpSubmitResult_Result) ProtoReflect() protoreflect.Message { mi := &file_game_zhg_rank_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -291,47 +291,53 @@ func (x *RankRvpSubmitResult_Reward) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RankRvpSubmitResult_Reward.ProtoReflect.Descriptor instead. -func (*RankRvpSubmitResult_Reward) Descriptor() ([]byte, []int) { +// Deprecated: Use RankRvpSubmitResult_Result.ProtoReflect.Descriptor instead. +func (*RankRvpSubmitResult_Result) Descriptor() ([]byte, []int) { return file_game_zhg_rank_proto_rawDescGZIP(), []int{2, 0} } -func (x *RankRvpSubmitResult_Reward) GetUid() int64 { +func (x *RankRvpSubmitResult_Result) GetUserId() int64 { if x != nil { - return x.Uid + return x.UserId } return 0 } -func (x *RankRvpSubmitResult_Reward) GetUname() string { +func (x *RankRvpSubmitResult_Result) GetUsername() string { if x != nil { - return x.Uname + return x.Username } return "" } -func (x *RankRvpSubmitResult_Reward) GetIntegral() int64 { +func (x *RankRvpSubmitResult_Result) GetAvatar() string { if x != nil { - return x.Integral + return x.Avatar + } + return "" +} + +func (x *RankRvpSubmitResult_Result) GetCoin() int64 { + if x != nil { + return x.Coin } return 0 } -func (x *RankRvpSubmitResult_Reward) GetTitle() int64 { +func (x *RankRvpSubmitResult_Result) GetTitle() int64 { if x != nil { return x.Title } return 0 } -// Item 奖励项 type RankRvpSubmitResult_Item struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type vars.RankType `protobuf:"varint,1,opt,name=type,proto3,enum=pb.vars.RankType" json:"type,omitempty"` // 榜单类型 - Rewards []*RankRvpSubmitResult_Reward `protobuf:"bytes,2,rep,name=rewards,proto3" json:"rewards,omitempty"` // 奖励项 + RankType vars.RankType `protobuf:"varint,1,opt,name=rankType,proto3,enum=pb.vars.RankType" json:"rankType,omitempty"` // 排行榜类型 + Results []*RankRvpSubmitResult_Result `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` // 上榜玩家? } func (x *RankRvpSubmitResult_Item) Reset() { @@ -366,16 +372,16 @@ func (*RankRvpSubmitResult_Item) Descriptor() ([]byte, []int) { return file_game_zhg_rank_proto_rawDescGZIP(), []int{2, 1} } -func (x *RankRvpSubmitResult_Item) GetType() vars.RankType { +func (x *RankRvpSubmitResult_Item) GetRankType() vars.RankType { if x != nil { - return x.Type + return x.RankType } return vars.RankType(0) } -func (x *RankRvpSubmitResult_Item) GetRewards() []*RankRvpSubmitResult_Reward { +func (x *RankRvpSubmitResult_Item) GetResults() []*RankRvpSubmitResult_Result { if x != nil { - return x.Rewards + return x.Results } return nil } @@ -403,28 +409,30 @@ var file_game_zhg_rank_proto_rawDesc = []byte{ 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0xa8, 0x02, 0x0a, 0x13, 0x52, 0x61, 0x6e, 0x6b, 0x52, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0xcc, 0x02, 0x0a, 0x13, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, - 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x62, 0x0a, 0x06, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x1a, - 0x70, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x7e, 0x0a, 0x06, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x1a, 0x78, 0x0a, 0x04, 0x49, + 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, - 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, - 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x52, 0x61, - 0x6e, 0x6b, 0x52, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x62, - 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b, 0x70, 0x62, 0x47, 0x61, 0x6d, 0x65, - 0x5a, 0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, + 0x67, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67, 0x61, 0x6d, + 0x65, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b, 0x70, 0x62, + 0x47, 0x61, 0x6d, 0x65, 0x5a, 0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -445,7 +453,7 @@ var file_game_zhg_rank_proto_goTypes = []interface{}{ (*RankPvpResp)(nil), // 1: pb.game.zhg.RankPvpResp (*RankRvpSubmitResult)(nil), // 2: pb.game.zhg.RankRvpSubmitResult (*RankPvpResp_Item)(nil), // 3: pb.game.zhg.RankPvpResp.Item - (*RankRvpSubmitResult_Reward)(nil), // 4: pb.game.zhg.RankRvpSubmitResult.Reward + (*RankRvpSubmitResult_Result)(nil), // 4: pb.game.zhg.RankRvpSubmitResult.Result (*RankRvpSubmitResult_Item)(nil), // 5: pb.game.zhg.RankRvpSubmitResult.Item (vars.RankType)(0), // 6: pb.vars.RankType } @@ -454,8 +462,8 @@ var file_game_zhg_rank_proto_depIdxs = []int32{ 6, // 1: pb.game.zhg.RankPvpResp.type:type_name -> pb.vars.RankType 3, // 2: pb.game.zhg.RankPvpResp.items:type_name -> pb.game.zhg.RankPvpResp.Item 5, // 3: pb.game.zhg.RankRvpSubmitResult.items:type_name -> pb.game.zhg.RankRvpSubmitResult.Item - 6, // 4: pb.game.zhg.RankRvpSubmitResult.Item.type:type_name -> pb.vars.RankType - 4, // 5: pb.game.zhg.RankRvpSubmitResult.Item.rewards:type_name -> pb.game.zhg.RankRvpSubmitResult.Reward + 6, // 4: pb.game.zhg.RankRvpSubmitResult.Item.rankType:type_name -> pb.vars.RankType + 4, // 5: pb.game.zhg.RankRvpSubmitResult.Item.results:type_name -> pb.game.zhg.RankRvpSubmitResult.Result 6, // [6:6] is the sub-list for method output_type 6, // [6:6] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name @@ -518,7 +526,7 @@ func file_game_zhg_rank_proto_init() { } } file_game_zhg_rank_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RankRvpSubmitResult_Reward); i { + switch v := v.(*RankRvpSubmitResult_Result); i { case 0: return &v.state case 1: diff --git a/game/pb/game/zhg/rank.proto b/game/pb/game/zhg/rank.proto index d9e241e..9ba8e66 100644 --- a/game/pb/game/zhg/rank.proto +++ b/game/pb/game/zhg/rank.proto @@ -26,17 +26,16 @@ message RankPvpResp { // RankRvpSubmitResult 排行榜结算结果通知 push -> rank.submit 命令(排行榜结算) message RankRvpSubmitResult { - // Reward 具体奖励 - message Reward { - int64 uid = 1; // 用户ID - string uname = 2; // 用户名称 - int64 integral = 3; // 积分奖励 - int64 title = 4; // 称号奖励(称号ID列表) + message Result { + int64 userId = 1; + string username = 2; + string avatar = 3; + int64 coin = 4; // 获取到的积分数 + int64 title = 5; // 获取到的称号ID } - // Item 奖励项 message Item { - pb.vars.RankType type = 1; // 榜单类型 - repeated Reward rewards = 2; // 奖励项 + pb.vars.RankType rankType = 1; // 排行榜类型 + repeated Result results = 2; // 上榜玩家? } repeated Item items = 1; } \ No newline at end of file diff --git a/game/pb/routes.go b/game/pb/routes.go index 76c619c..d347db5 100644 --- a/game/pb/routes.go +++ b/game/pb/routes.go @@ -26,6 +26,7 @@ const ( PushZhgChangeElite = "game.change.elite" PushZhgChangeTitle = "game.change.title" PushZhgBuyFood = "game.buy.food" + PushZhgRankSubmit = "game.rank.submit" ) // zhgzd