// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v4.25.1 // source: Message.proto package message import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // 通用操作结果码 type GameStatus int32 const ( GameStatus_GAME_STATUS_OK GameStatus = 0 GameStatus_GAME_STATUS_PLAYER_NIL GameStatus = 1001 // 玩家不存在 GameStatus_GAME_STATUS_UID_PASSWD_NIL GameStatus = 1002 // 账号或密码不能为空 GameStatus_GAME_STATUS_UID_ERROR GameStatus = 1003 // 账号不存在 GameStatus_GAME_STATUS_PASSWD_ERROR GameStatus = 1004 // 密码错误 GameStatus_GAME_STATUS_ROOM_NOT_EXIT GameStatus = 1005 // 房间不存在 GameStatus_GAME_STATUS_PB_ERR GameStatus = 1006 //协议解析报错 GameStatus_GAME_STATUS_INNER_ERR GameStatus = 1007 // 服务器内部错误 GameStatus_GAME_STATUS_LOGIN_CHECK_ERR GameStatus = 1055 // 登录校验失败 GameStatus_Player_Status_0 GameStatus = 11 //表示玩家在大厅, GameStatus_Player_Status_1 GameStatus = 1 //表示玩家开始匹配, GameStatus_Player_Status_2 GameStatus = 2 //玩家进入游戏房间, GameStatus_Player_Status_3 GameStatus = 3 //ready,玩家落座开始游戏 GameStatus_Player_Status_4 GameStatus = 4 //play, GameStatus_Player_Status_5 GameStatus = 5 //胜利后观战, GameStatus_Player_Status_6 GameStatus = 6 //胜利后离开, GameStatus_Player_Status_7 GameStatus = 7 //组队逃跑, GameStatus_Player_Status_8 GameStatus = 8 //逃跑, GameStatus_Player_Status_9 GameStatus = 9 //托管, GameStatus_Player_Status_10 GameStatus = 10 //观战玩家, ) // Enum value maps for GameStatus. var ( GameStatus_name = map[int32]string{ 0: "GAME_STATUS_OK", 1001: "GAME_STATUS_PLAYER_NIL", 1002: "GAME_STATUS_UID_PASSWD_NIL", 1003: "GAME_STATUS_UID_ERROR", 1004: "GAME_STATUS_PASSWD_ERROR", 1005: "GAME_STATUS_ROOM_NOT_EXIT", 1006: "GAME_STATUS_PB_ERR", 1007: "GAME_STATUS_INNER_ERR", 1055: "GAME_STATUS_LOGIN_CHECK_ERR", 11: "Player_Status_0", 1: "Player_Status_1", 2: "Player_Status_2", 3: "Player_Status_3", 4: "Player_Status_4", 5: "Player_Status_5", 6: "Player_Status_6", 7: "Player_Status_7", 8: "Player_Status_8", 9: "Player_Status_9", 10: "Player_Status_10", } GameStatus_value = map[string]int32{ "GAME_STATUS_OK": 0, "GAME_STATUS_PLAYER_NIL": 1001, "GAME_STATUS_UID_PASSWD_NIL": 1002, "GAME_STATUS_UID_ERROR": 1003, "GAME_STATUS_PASSWD_ERROR": 1004, "GAME_STATUS_ROOM_NOT_EXIT": 1005, "GAME_STATUS_PB_ERR": 1006, "GAME_STATUS_INNER_ERR": 1007, "GAME_STATUS_LOGIN_CHECK_ERR": 1055, "Player_Status_0": 11, "Player_Status_1": 1, "Player_Status_2": 2, "Player_Status_3": 3, "Player_Status_4": 4, "Player_Status_5": 5, "Player_Status_6": 6, "Player_Status_7": 7, "Player_Status_8": 8, "Player_Status_9": 9, "Player_Status_10": 10, } ) func (x GameStatus) Enum() *GameStatus { p := new(GameStatus) *p = x return p } func (x GameStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GameStatus) Descriptor() protoreflect.EnumDescriptor { return file_Message_proto_enumTypes[0].Descriptor() } func (GameStatus) Type() protoreflect.EnumType { return &file_Message_proto_enumTypes[0] } func (x GameStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GameStatus.Descriptor instead. func (GameStatus) EnumDescriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{0} } // 踢人原因 type KickReason int32 const ( KickReason_KICK_REASON_UNKNOWN KickReason = 0 KickReason_KICK_REASON_LOGIN_ELSEWHERE KickReason = 1 KickReason_KICK_REASON_HEARTBEAT_TIMEOUT KickReason = 2 KickReason_KICK_REASON_NOT_LOGIN KickReason = 3 ) // Enum value maps for KickReason. var ( KickReason_name = map[int32]string{ 0: "KICK_REASON_UNKNOWN", 1: "KICK_REASON_LOGIN_ELSEWHERE", 2: "KICK_REASON_HEARTBEAT_TIMEOUT", 3: "KICK_REASON_NOT_LOGIN", } KickReason_value = map[string]int32{ "KICK_REASON_UNKNOWN": 0, "KICK_REASON_LOGIN_ELSEWHERE": 1, "KICK_REASON_HEARTBEAT_TIMEOUT": 2, "KICK_REASON_NOT_LOGIN": 3, } ) func (x KickReason) Enum() *KickReason { p := new(KickReason) *p = x return p } func (x KickReason) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (KickReason) Descriptor() protoreflect.EnumDescriptor { return file_Message_proto_enumTypes[1].Descriptor() } func (KickReason) Type() protoreflect.EnumType { return &file_Message_proto_enumTypes[1] } func (x KickReason) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use KickReason.Descriptor instead. func (KickReason) EnumDescriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{1} } // 心跳包C->S, Cmd.MSGID_Heartbeat_Push(心跳包需要保持,不然玩家会被踢下线) type HeartbeatPush struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *HeartbeatPush) Reset() { *x = HeartbeatPush{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HeartbeatPush) String() string { return protoimpl.X.MessageStringOf(x) } func (*HeartbeatPush) ProtoMessage() {} func (x *HeartbeatPush) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HeartbeatPush.ProtoReflect.Descriptor instead. func (*HeartbeatPush) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{0} } // 登录请求 C->S, Cmd.MSGID_Login type LoginReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //账号ID PassWd string `protobuf:"bytes,2,opt,name=passWd,proto3" json:"passWd,omitempty"` //密码 } func (x *LoginReq) Reset() { *x = LoginReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoginReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoginReq) ProtoMessage() {} func (x *LoginReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LoginReq.ProtoReflect.Descriptor instead. func (*LoginReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{1} } func (x *LoginReq) GetUid() string { if x != nil { return x.Uid } return "" } func (x *LoginReq) GetPassWd() string { if x != nil { return x.PassWd } return "" } // 登录响应 S->C, Cmd.MSGID_Login type LoginRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result uint32 `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` //结果 PlayerId int64 `protobuf:"varint,2,opt,name=playerId,proto3" json:"playerId,omitempty"` //玩家ID IsNew bool `protobuf:"varint,3,opt,name=isNew,proto3" json:"isNew,omitempty"` //是否为新玩家 } func (x *LoginRsp) Reset() { *x = LoginRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LoginRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*LoginRsp) ProtoMessage() {} func (x *LoginRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LoginRsp.ProtoReflect.Descriptor instead. func (*LoginRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{2} } func (x *LoginRsp) GetResult() uint32 { if x != nil { return x.Result } return 0 } func (x *LoginRsp) GetPlayerId() int64 { if x != nil { return x.PlayerId } return 0 } func (x *LoginRsp) GetIsNew() bool { if x != nil { return x.IsNew } return false } type CreateGameReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Mode uint32 `protobuf:"varint,1,opt,name=mode,proto3" json:"mode,omitempty"` //游戏模式,1是经典,2是匹配 PlayerNum uint32 `protobuf:"varint,2,opt,name=playerNum,proto3" json:"playerNum,omitempty"` //选择玩家人数 2是两个人,4是四个人 AdmissionFee uint32 `protobuf:"varint,3,opt,name=admissionFee,proto3" json:"admissionFee,omitempty"` //入场金额 500、1000、2000、5000、10000、20000 IsRoom bool `protobuf:"varint,4,opt,name=isRoom,proto3" json:"isRoom,omitempty"` //是否房间内建房 Uid string `protobuf:"bytes,5,opt,name=uid,proto3" json:"uid,omitempty"` //玩家id Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` //玩家名称 HeadImg string `protobuf:"bytes,7,opt,name=headImg,proto3" json:"headImg,omitempty"` //玩家头像 Money *uint32 `protobuf:"varint,8,opt,name=money,proto3,oneof" json:"money,omitempty"` //玩家金币 ChatRoomId *uint32 `protobuf:"varint,9,opt,name=chatRoomId,proto3,oneof" json:"chatRoomId,omitempty"` //语聊房id } func (x *CreateGameReq) Reset() { *x = CreateGameReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateGameReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateGameReq) ProtoMessage() {} func (x *CreateGameReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateGameReq.ProtoReflect.Descriptor instead. func (*CreateGameReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{3} } func (x *CreateGameReq) GetMode() uint32 { if x != nil { return x.Mode } return 0 } func (x *CreateGameReq) GetPlayerNum() uint32 { if x != nil { return x.PlayerNum } return 0 } func (x *CreateGameReq) GetAdmissionFee() uint32 { if x != nil { return x.AdmissionFee } return 0 } func (x *CreateGameReq) GetIsRoom() bool { if x != nil { return x.IsRoom } return false } func (x *CreateGameReq) GetUid() string { if x != nil { return x.Uid } return "" } func (x *CreateGameReq) GetName() string { if x != nil { return x.Name } return "" } func (x *CreateGameReq) GetHeadImg() string { if x != nil { return x.HeadImg } return "" } func (x *CreateGameReq) GetMoney() uint32 { if x != nil && x.Money != nil { return *x.Money } return 0 } func (x *CreateGameReq) GetChatRoomId() uint32 { if x != nil && x.ChatRoomId != nil { return *x.ChatRoomId } return 0 } type CreateGameRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId *uint32 `protobuf:"varint,1,opt,name=roomId,proto3,oneof" json:"roomId,omitempty"` //房间id Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` //用户id Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` //玩家名称 HeadImg string `protobuf:"bytes,4,opt,name=headImg,proto3" json:"headImg,omitempty"` //玩家头像 Money *uint32 `protobuf:"varint,5,opt,name=money,proto3,oneof" json:"money,omitempty"` //玩家金币 } func (x *CreateGameRsp) Reset() { *x = CreateGameRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateGameRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateGameRsp) ProtoMessage() {} func (x *CreateGameRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateGameRsp.ProtoReflect.Descriptor instead. func (*CreateGameRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{4} } func (x *CreateGameRsp) GetRoomId() uint32 { if x != nil && x.RoomId != nil { return *x.RoomId } return 0 } func (x *CreateGameRsp) GetUid() string { if x != nil { return x.Uid } return "" } func (x *CreateGameRsp) GetName() string { if x != nil { return x.Name } return "" } func (x *CreateGameRsp) GetHeadImg() string { if x != nil { return x.HeadImg } return "" } func (x *CreateGameRsp) GetMoney() uint32 { if x != nil && x.Money != nil { return *x.Money } return 0 } type RoomInfoRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 Money []uint32 `protobuf:"varint,2,rep,packed,name=money,proto3" json:"money,omitempty"` PlayerID []string `protobuf:"bytes,3,rep,name=playerID,proto3" json:"playerID,omitempty"` Nick []string `protobuf:"bytes,4,rep,name=nick,proto3" json:"nick,omitempty"` //昵称 HeadUrl []string `protobuf:"bytes,5,rep,name=headUrl,proto3" json:"headUrl,omitempty"` //头像 SeatId []uint32 `protobuf:"varint,9,rep,packed,name=seatId,proto3" json:"seatId,omitempty"` //头像 Mode uint32 `protobuf:"varint,6,opt,name=mode,proto3" json:"mode,omitempty"` //游戏模式,1是经典,2是匹配 PlayerNum uint32 `protobuf:"varint,7,opt,name=playerNum,proto3" json:"playerNum,omitempty"` //选择玩家人数 2是两个人,4是四个人 AdmissionFee uint32 `protobuf:"varint,8,opt,name=admissionFee,proto3" json:"admissionFee,omitempty"` //入场金额 500、1000、2000、5000、10000、20000 } func (x *RoomInfoRsp) Reset() { *x = RoomInfoRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomInfoRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomInfoRsp) ProtoMessage() {} func (x *RoomInfoRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomInfoRsp.ProtoReflect.Descriptor instead. func (*RoomInfoRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{5} } func (x *RoomInfoRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *RoomInfoRsp) GetMoney() []uint32 { if x != nil { return x.Money } return nil } func (x *RoomInfoRsp) GetPlayerID() []string { if x != nil { return x.PlayerID } return nil } func (x *RoomInfoRsp) GetNick() []string { if x != nil { return x.Nick } return nil } func (x *RoomInfoRsp) GetHeadUrl() []string { if x != nil { return x.HeadUrl } return nil } func (x *RoomInfoRsp) GetSeatId() []uint32 { if x != nil { return x.SeatId } return nil } func (x *RoomInfoRsp) GetMode() uint32 { if x != nil { return x.Mode } return 0 } func (x *RoomInfoRsp) GetPlayerNum() uint32 { if x != nil { return x.PlayerNum } return 0 } func (x *RoomInfoRsp) GetAdmissionFee() uint32 { if x != nil { return x.AdmissionFee } return 0 } type JoinRoomReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //uID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` //玩家名称 HeadImg string `protobuf:"bytes,3,opt,name=headImg,proto3" json:"headImg,omitempty"` //玩家头像 Money *uint32 `protobuf:"varint,4,opt,name=money,proto3,oneof" json:"money,omitempty"` //玩家金币 RoomId *uint32 `protobuf:"varint,5,opt,name=roomId,proto3,oneof" json:"roomId,omitempty"` //房间id RestartBtn bool `protobuf:"varint,6,opt,name=restartBtn,proto3" json:"restartBtn,omitempty"` //是否是restart点击 } func (x *JoinRoomReq) Reset() { *x = JoinRoomReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JoinRoomReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*JoinRoomReq) ProtoMessage() {} func (x *JoinRoomReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JoinRoomReq.ProtoReflect.Descriptor instead. func (*JoinRoomReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{6} } func (x *JoinRoomReq) GetUid() string { if x != nil { return x.Uid } return "" } func (x *JoinRoomReq) GetName() string { if x != nil { return x.Name } return "" } func (x *JoinRoomReq) GetHeadImg() string { if x != nil { return x.HeadImg } return "" } func (x *JoinRoomReq) GetMoney() uint32 { if x != nil && x.Money != nil { return *x.Money } return 0 } func (x *JoinRoomReq) GetRoomId() uint32 { if x != nil && x.RoomId != nil { return *x.RoomId } return 0 } func (x *JoinRoomReq) GetRestartBtn() bool { if x != nil { return x.RestartBtn } return false } type RoomKickUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //uID } func (x *RoomKickUserReq) Reset() { *x = RoomKickUserReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomKickUserReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomKickUserReq) ProtoMessage() {} func (x *RoomKickUserReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomKickUserReq.ProtoReflect.Descriptor instead. func (*RoomKickUserReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{7} } func (x *RoomKickUserReq) GetUid() string { if x != nil { return x.Uid } return "" } type RoomKickUserRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //uID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` //玩家名称 } func (x *RoomKickUserRsp) Reset() { *x = RoomKickUserRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomKickUserRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomKickUserRsp) ProtoMessage() {} func (x *RoomKickUserRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomKickUserRsp.ProtoReflect.Descriptor instead. func (*RoomKickUserRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{8} } func (x *RoomKickUserRsp) GetUid() string { if x != nil { return x.Uid } return "" } func (x *RoomKickUserRsp) GetName() string { if x != nil { return x.Name } return "" } type RoomQuitUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //uID } func (x *RoomQuitUserReq) Reset() { *x = RoomQuitUserReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomQuitUserReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomQuitUserReq) ProtoMessage() {} func (x *RoomQuitUserReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomQuitUserReq.ProtoReflect.Descriptor instead. func (*RoomQuitUserReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{9} } func (x *RoomQuitUserReq) GetUid() string { if x != nil { return x.Uid } return "" } type RoomInviteReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //邀请的玩家id ChatRoomId *uint32 `protobuf:"varint,2,opt,name=chatRoomId,proto3,oneof" json:"chatRoomId,omitempty"` //语聊房id RoomId *uint32 `protobuf:"varint,3,opt,name=roomId,proto3,oneof" json:"roomId,omitempty"` //游戏房间id } func (x *RoomInviteReq) Reset() { *x = RoomInviteReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomInviteReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomInviteReq) ProtoMessage() {} func (x *RoomInviteReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomInviteReq.ProtoReflect.Descriptor instead. func (*RoomInviteReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{10} } func (x *RoomInviteReq) GetUid() string { if x != nil { return x.Uid } return "" } func (x *RoomInviteReq) GetChatRoomId() uint32 { if x != nil && x.ChatRoomId != nil { return *x.ChatRoomId } return 0 } func (x *RoomInviteReq) GetRoomId() uint32 { if x != nil && x.RoomId != nil { return *x.RoomId } return 0 } type RoomInviteRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 } func (x *RoomInviteRsp) Reset() { *x = RoomInviteRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomInviteRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomInviteRsp) ProtoMessage() {} func (x *RoomInviteRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomInviteRsp.ProtoReflect.Descriptor instead. func (*RoomInviteRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{11} } func (x *RoomInviteRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } type RoomQuitUserRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //uID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` //玩家名称 } func (x *RoomQuitUserRsp) Reset() { *x = RoomQuitUserRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomQuitUserRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomQuitUserRsp) ProtoMessage() {} func (x *RoomQuitUserRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomQuitUserRsp.ProtoReflect.Descriptor instead. func (*RoomQuitUserRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{12} } func (x *RoomQuitUserRsp) GetUid() string { if x != nil { return x.Uid } return "" } func (x *RoomQuitUserRsp) GetName() string { if x != nil { return x.Name } return "" } type JoinRoomInfoRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 Money string `protobuf:"bytes,2,opt,name=money,proto3" json:"money,omitempty"` PlayerID string `protobuf:"bytes,3,opt,name=playerID,proto3" json:"playerID,omitempty"` PlayerStatus uint32 `protobuf:"varint,4,opt,name=playerStatus,proto3" json:"playerStatus,omitempty"` // 玩家的当前状态, 0、1 表示空位无玩家,2: sitdown, 3: ready, 4: play, 5: 胜利后观战, 6: 胜利后离开,7: 组队逃跑,8: 逃跑 TableID uint32 `protobuf:"varint,5,opt,name=tableID,proto3" json:"tableID,omitempty"` // 桌子ID SeatID *uint32 `protobuf:"varint,6,opt,name=seatID,proto3,oneof" json:"seatID,omitempty"` //座位号 Nick string `protobuf:"bytes,7,opt,name=nick,proto3" json:"nick,omitempty"` //昵称 HeadUrl string `protobuf:"bytes,8,opt,name=headUrl,proto3" json:"headUrl,omitempty"` //头像 Gender string `protobuf:"bytes,9,opt,name=gender,proto3" json:"gender,omitempty"` //性别 PlayerNum *uint32 `protobuf:"varint,10,opt,name=playerNum,proto3,oneof" json:"playerNum,omitempty"` // 玩家数量 PlayerType uint32 `protobuf:"varint,11,opt,name=playerType,proto3" json:"playerType,omitempty"` // 玩家类型1是正常玩家2是机器人 } func (x *JoinRoomInfoRsp) Reset() { *x = JoinRoomInfoRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *JoinRoomInfoRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*JoinRoomInfoRsp) ProtoMessage() {} func (x *JoinRoomInfoRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JoinRoomInfoRsp.ProtoReflect.Descriptor instead. func (*JoinRoomInfoRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{13} } func (x *JoinRoomInfoRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *JoinRoomInfoRsp) GetMoney() string { if x != nil { return x.Money } return "" } func (x *JoinRoomInfoRsp) GetPlayerID() string { if x != nil { return x.PlayerID } return "" } func (x *JoinRoomInfoRsp) GetPlayerStatus() uint32 { if x != nil { return x.PlayerStatus } return 0 } func (x *JoinRoomInfoRsp) GetTableID() uint32 { if x != nil { return x.TableID } return 0 } func (x *JoinRoomInfoRsp) GetSeatID() uint32 { if x != nil && x.SeatID != nil { return *x.SeatID } return 0 } func (x *JoinRoomInfoRsp) GetNick() string { if x != nil { return x.Nick } return "" } func (x *JoinRoomInfoRsp) GetHeadUrl() string { if x != nil { return x.HeadUrl } return "" } func (x *JoinRoomInfoRsp) GetGender() string { if x != nil { return x.Gender } return "" } func (x *JoinRoomInfoRsp) GetPlayerNum() uint32 { if x != nil && x.PlayerNum != nil { return *x.PlayerNum } return 0 } func (x *JoinRoomInfoRsp) GetPlayerType() uint32 { if x != nil { return x.PlayerType } return 0 } type RoomInfoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId *uint32 `protobuf:"varint,1,opt,name=roomId,proto3,oneof" json:"roomId,omitempty"` //房间id Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` //玩家id } func (x *RoomInfoReq) Reset() { *x = RoomInfoReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomInfoReq) ProtoMessage() {} func (x *RoomInfoReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomInfoReq.ProtoReflect.Descriptor instead. func (*RoomInfoReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{14} } func (x *RoomInfoReq) GetRoomId() uint32 { if x != nil && x.RoomId != nil { return *x.RoomId } return 0 } func (x *RoomInfoReq) GetUid() string { if x != nil { return x.Uid } return "" } type CancelMatchReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CancelMatchReq) Reset() { *x = CancelMatchReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelMatchReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelMatchReq) ProtoMessage() {} func (x *CancelMatchReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CancelMatchReq.ProtoReflect.Descriptor instead. func (*CancelMatchReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{15} } type CancelMatchRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果0表示成功,其他表示失败 Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` //用户id } func (x *CancelMatchRsp) Reset() { *x = CancelMatchRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelMatchRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelMatchRsp) ProtoMessage() {} func (x *CancelMatchRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CancelMatchRsp.ProtoReflect.Descriptor instead. func (*CancelMatchRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{16} } func (x *CancelMatchRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *CancelMatchRsp) GetUid() string { if x != nil { return x.Uid } return "" } type MatchRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 0表示成功,其他表示失败 } func (x *MatchRsp) Reset() { *x = MatchRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MatchRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*MatchRsp) ProtoMessage() {} func (x *MatchRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MatchRsp.ProtoReflect.Descriptor instead. func (*MatchRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{17} } func (x *MatchRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } type MatchJoinUserRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 PlayerID string `protobuf:"bytes,2,opt,name=playerID,proto3" json:"playerID,omitempty"` Nick string `protobuf:"bytes,3,opt,name=nick,proto3" json:"nick,omitempty"` //昵称 HeadUrl string `protobuf:"bytes,4,opt,name=headUrl,proto3" json:"headUrl,omitempty"` //头像 Gender string `protobuf:"bytes,5,opt,name=gender,proto3" json:"gender,omitempty"` //性别 PlayerNum uint32 `protobuf:"varint,6,opt,name=playerNum,proto3" json:"playerNum,omitempty"` // 玩家数量 } func (x *MatchJoinUserRsp) Reset() { *x = MatchJoinUserRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MatchJoinUserRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*MatchJoinUserRsp) ProtoMessage() {} func (x *MatchJoinUserRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MatchJoinUserRsp.ProtoReflect.Descriptor instead. func (*MatchJoinUserRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{18} } func (x *MatchJoinUserRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *MatchJoinUserRsp) GetPlayerID() string { if x != nil { return x.PlayerID } return "" } func (x *MatchJoinUserRsp) GetNick() string { if x != nil { return x.Nick } return "" } func (x *MatchJoinUserRsp) GetHeadUrl() string { if x != nil { return x.HeadUrl } return "" } func (x *MatchJoinUserRsp) GetGender() string { if x != nil { return x.Gender } return "" } func (x *MatchJoinUserRsp) GetPlayerNum() uint32 { if x != nil { return x.PlayerNum } return 0 } type RoomStartGameReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *RoomStartGameReq) Reset() { *x = RoomStartGameReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomStartGameReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomStartGameReq) ProtoMessage() {} func (x *RoomStartGameReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomStartGameReq.ProtoReflect.Descriptor instead. func (*RoomStartGameReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{19} } type RoomStartGameRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *RoomStartGameRsp) Reset() { *x = RoomStartGameRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomStartGameRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomStartGameRsp) ProtoMessage() {} func (x *RoomStartGameRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomStartGameRsp.ProtoReflect.Descriptor instead. func (*RoomStartGameRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{20} } // 获取玩家数据 type GetUserInfoReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //账号ID RoomId uint32 `protobuf:"varint,2,opt,name=roomId,proto3" json:"roomId,omitempty"` //房间ID } func (x *GetUserInfoReq) Reset() { *x = GetUserInfoReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetUserInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetUserInfoReq) ProtoMessage() {} func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetUserInfoReq.ProtoReflect.Descriptor instead. func (*GetUserInfoReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{21} } func (x *GetUserInfoReq) GetUid() string { if x != nil { return x.Uid } return "" } func (x *GetUserInfoReq) GetRoomId() uint32 { if x != nil { return x.RoomId } return 0 } // 获取玩家数据 type KickUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //账号ID } func (x *KickUserReq) Reset() { *x = KickUserReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KickUserReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*KickUserReq) ProtoMessage() {} func (x *KickUserReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use KickUserReq.ProtoReflect.Descriptor instead. func (*KickUserReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{22} } func (x *KickUserReq) GetUid() string { if x != nil { return x.Uid } return "" } type GetUserInfoRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 Money []string `protobuf:"bytes,2,rep,name=money,proto3" json:"money,omitempty"` PlayerID []string `protobuf:"bytes,3,rep,name=playerID,proto3" json:"playerID,omitempty"` PlayerStatus []uint32 `protobuf:"varint,4,rep,packed,name=playerStatus,proto3" json:"playerStatus,omitempty"` // 玩家的当前状态, 0、1 表示空位无玩家,2: sitdown, 3: ready, 4: play, 5: 胜利后观战, 6: 胜利后离开,7: 组队逃跑,8: 逃跑 TableID []uint32 `protobuf:"varint,5,rep,packed,name=tableID,proto3" json:"tableID,omitempty"` // 桌子ID SeatID []uint32 `protobuf:"varint,6,rep,packed,name=seatID,proto3" json:"seatID,omitempty"` //座位号 Nick []string `protobuf:"bytes,7,rep,name=nick,proto3" json:"nick,omitempty"` //昵称 HeadUrl []string `protobuf:"bytes,8,rep,name=headUrl,proto3" json:"headUrl,omitempty"` //头像 Gender []string `protobuf:"bytes,9,rep,name=gender,proto3" json:"gender,omitempty"` //性别 PlayerNum uint32 `protobuf:"varint,10,opt,name=playerNum,proto3" json:"playerNum,omitempty"` // 玩家数量 PlayerType []uint32 `protobuf:"varint,11,rep,packed,name=playerType,proto3" json:"playerType,omitempty"` // 玩家类型1是正常玩家2是机器人 SelfSeatId *uint32 `protobuf:"varint,12,opt,name=selfSeatId,proto3,oneof" json:"selfSeatId,omitempty"` // 玩家座位号 WatchingPlayers *uint32 `protobuf:"varint,13,opt,name=watchingPlayers,proto3,oneof" json:"watchingPlayers,omitempty"` // 观战玩家数量 Countdown *uint32 `protobuf:"varint,14,opt,name=countdown,proto3,oneof" json:"countdown,omitempty"` // 游戏结束倒计时 GameType uint32 `protobuf:"varint,15,opt,name=gameType,proto3" json:"gameType,omitempty"` // 游戏类型,1经典,2匹配 } func (x *GetUserInfoRsp) Reset() { *x = GetUserInfoRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetUserInfoRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetUserInfoRsp) ProtoMessage() {} func (x *GetUserInfoRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetUserInfoRsp.ProtoReflect.Descriptor instead. func (*GetUserInfoRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{23} } func (x *GetUserInfoRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *GetUserInfoRsp) GetMoney() []string { if x != nil { return x.Money } return nil } func (x *GetUserInfoRsp) GetPlayerID() []string { if x != nil { return x.PlayerID } return nil } func (x *GetUserInfoRsp) GetPlayerStatus() []uint32 { if x != nil { return x.PlayerStatus } return nil } func (x *GetUserInfoRsp) GetTableID() []uint32 { if x != nil { return x.TableID } return nil } func (x *GetUserInfoRsp) GetSeatID() []uint32 { if x != nil { return x.SeatID } return nil } func (x *GetUserInfoRsp) GetNick() []string { if x != nil { return x.Nick } return nil } func (x *GetUserInfoRsp) GetHeadUrl() []string { if x != nil { return x.HeadUrl } return nil } func (x *GetUserInfoRsp) GetGender() []string { if x != nil { return x.Gender } return nil } func (x *GetUserInfoRsp) GetPlayerNum() uint32 { if x != nil { return x.PlayerNum } return 0 } func (x *GetUserInfoRsp) GetPlayerType() []uint32 { if x != nil { return x.PlayerType } return nil } func (x *GetUserInfoRsp) GetSelfSeatId() uint32 { if x != nil && x.SelfSeatId != nil { return *x.SelfSeatId } return 0 } func (x *GetUserInfoRsp) GetWatchingPlayers() uint32 { if x != nil && x.WatchingPlayers != nil { return *x.WatchingPlayers } return 0 } func (x *GetUserInfoRsp) GetCountdown() uint32 { if x != nil && x.Countdown != nil { return *x.Countdown } return 0 } func (x *GetUserInfoRsp) GetGameType() uint32 { if x != nil { return x.GameType } return 0 } type TKickEventRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlayerNum *uint32 `protobuf:"varint,1,opt,name=PlayerNum,proto3,oneof" json:"PlayerNum,omitempty"` // 被踢玩家数 KickPlayer []*KickPlayerRsp `protobuf:"bytes,2,rep,name=kickPlayer,proto3" json:"kickPlayer,omitempty"` } func (x *TKickEventRsp) Reset() { *x = TKickEventRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TKickEventRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*TKickEventRsp) ProtoMessage() {} func (x *TKickEventRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TKickEventRsp.ProtoReflect.Descriptor instead. func (*TKickEventRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{24} } func (x *TKickEventRsp) GetPlayerNum() uint32 { if x != nil && x.PlayerNum != nil { return *x.PlayerNum } return 0 } func (x *TKickEventRsp) GetKickPlayer() []*KickPlayerRsp { if x != nil { return x.KickPlayer } return nil } type KickPlayerRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SeatId *uint32 `protobuf:"varint,1,opt,name=seatId,proto3,oneof" json:"seatId,omitempty"` // 被踢玩家 PlaneNum *uint32 `protobuf:"varint,2,opt,name=planeNum,proto3,oneof" json:"planeNum,omitempty"` // 被踢飞机数 PlaneID string `protobuf:"bytes,3,opt,name=planeID,proto3" json:"planeID,omitempty"` // 飞机ID } func (x *KickPlayerRsp) Reset() { *x = KickPlayerRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KickPlayerRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*KickPlayerRsp) ProtoMessage() {} func (x *KickPlayerRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use KickPlayerRsp.ProtoReflect.Descriptor instead. func (*KickPlayerRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{25} } func (x *KickPlayerRsp) GetSeatId() uint32 { if x != nil && x.SeatId != nil { return *x.SeatId } return 0 } func (x *KickPlayerRsp) GetPlaneNum() uint32 { if x != nil && x.PlaneNum != nil { return *x.PlaneNum } return 0 } func (x *KickPlayerRsp) GetPlaneID() string { if x != nil { return x.PlaneID } return "" } type FinishEventRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SeatId *uint32 `protobuf:"varint,1,opt,name=seatId,proto3,oneof" json:"seatId,omitempty"` // 到达玩家 PlaneId string `protobuf:"bytes,2,opt,name=planeId,proto3" json:"planeId,omitempty"` // 飞机ID } func (x *FinishEventRsp) Reset() { *x = FinishEventRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinishEventRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinishEventRsp) ProtoMessage() {} func (x *FinishEventRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FinishEventRsp.ProtoReflect.Descriptor instead. func (*FinishEventRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{26} } func (x *FinishEventRsp) GetSeatId() uint32 { if x != nil && x.SeatId != nil { return *x.SeatId } return 0 } func (x *FinishEventRsp) GetPlaneId() string { if x != nil { return x.PlaneId } return "" } type PlayerRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SeatId *uint32 `protobuf:"varint,1,opt,name=seatId,proto3,oneof" json:"seatId,omitempty"` // 到达玩家 Planes []*PlaneRsp `protobuf:"bytes,2,rep,name=planes,proto3" json:"planes,omitempty"` // 飞机 } func (x *PlayerRsp) Reset() { *x = PlayerRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerRsp) ProtoMessage() {} func (x *PlayerRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerRsp.ProtoReflect.Descriptor instead. func (*PlayerRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{27} } func (x *PlayerRsp) GetSeatId() uint32 { if x != nil && x.SeatId != nil { return *x.SeatId } return 0 } func (x *PlayerRsp) GetPlanes() []*PlaneRsp { if x != nil { return x.Planes } return nil } type PlaneRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlaneId string `protobuf:"bytes,1,opt,name=planeId,proto3" json:"planeId,omitempty"` // 飞机ID CurrentIndex *uint32 `protobuf:"varint,2,opt,name=currentIndex,proto3,oneof" json:"currentIndex,omitempty"` // 飞机下标 PlaneStatus *uint32 `protobuf:"varint,3,opt,name=planeStatus,proto3,oneof" json:"planeStatus,omitempty"` // 0是未起飞,1是移动中,2是到达终点 } func (x *PlaneRsp) Reset() { *x = PlaneRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlaneRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlaneRsp) ProtoMessage() {} func (x *PlaneRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlaneRsp.ProtoReflect.Descriptor instead. func (*PlaneRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{28} } func (x *PlaneRsp) GetPlaneId() string { if x != nil { return x.PlaneId } return "" } func (x *PlaneRsp) GetCurrentIndex() uint32 { if x != nil && x.CurrentIndex != nil { return *x.CurrentIndex } return 0 } func (x *PlaneRsp) GetPlaneStatus() uint32 { if x != nil && x.PlaneStatus != nil { return *x.PlaneStatus } return 0 } type RoomDjsRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Time *uint32 `protobuf:"varint,1,opt,name=time,proto3,oneof" json:"time,omitempty"` // 倒计时时间 } func (x *RoomDjsRsp) Reset() { *x = RoomDjsRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomDjsRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomDjsRsp) ProtoMessage() {} func (x *RoomDjsRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomDjsRsp.ProtoReflect.Descriptor instead. func (*RoomDjsRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{29} } func (x *RoomDjsRsp) GetTime() uint32 { if x != nil && x.Time != nil { return *x.Time } return 0 } // 加入房间通知其他玩家 type RoomJoinUserRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 Money string `protobuf:"bytes,2,opt,name=money,proto3" json:"money,omitempty"` PlayerID string `protobuf:"bytes,3,opt,name=playerID,proto3" json:"playerID,omitempty"` PlayerStatus uint32 `protobuf:"varint,4,opt,name=playerStatus,proto3" json:"playerStatus,omitempty"` // 玩家的当前状态, 0、1 表示空位无玩家,2: sitdown, 3: ready, 4: play, 5: 胜利后观战, 6: 胜利后离开,7: 组队逃跑,8: 逃跑 TableID uint32 `protobuf:"varint,5,opt,name=tableID,proto3" json:"tableID,omitempty"` // 桌子ID SeatID uint32 `protobuf:"varint,6,opt,name=seatID,proto3" json:"seatID,omitempty"` //座位号 Nick string `protobuf:"bytes,7,opt,name=nick,proto3" json:"nick,omitempty"` //昵称 HeadUrl string `protobuf:"bytes,8,opt,name=headUrl,proto3" json:"headUrl,omitempty"` //头像 Gender string `protobuf:"bytes,9,opt,name=gender,proto3" json:"gender,omitempty"` //性别 PlayerNum uint32 `protobuf:"varint,10,opt,name=playerNum,proto3" json:"playerNum,omitempty"` // 玩家数量 PlayerType uint32 `protobuf:"varint,11,opt,name=playerType,proto3" json:"playerType,omitempty"` // 玩家类型1是正常玩家2是机器人 } func (x *RoomJoinUserRsp) Reset() { *x = RoomJoinUserRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomJoinUserRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomJoinUserRsp) ProtoMessage() {} func (x *RoomJoinUserRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomJoinUserRsp.ProtoReflect.Descriptor instead. func (*RoomJoinUserRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{30} } func (x *RoomJoinUserRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *RoomJoinUserRsp) GetMoney() string { if x != nil { return x.Money } return "" } func (x *RoomJoinUserRsp) GetPlayerID() string { if x != nil { return x.PlayerID } return "" } func (x *RoomJoinUserRsp) GetPlayerStatus() uint32 { if x != nil { return x.PlayerStatus } return 0 } func (x *RoomJoinUserRsp) GetTableID() uint32 { if x != nil { return x.TableID } return 0 } func (x *RoomJoinUserRsp) GetSeatID() uint32 { if x != nil { return x.SeatID } return 0 } func (x *RoomJoinUserRsp) GetNick() string { if x != nil { return x.Nick } return "" } func (x *RoomJoinUserRsp) GetHeadUrl() string { if x != nil { return x.HeadUrl } return "" } func (x *RoomJoinUserRsp) GetGender() string { if x != nil { return x.Gender } return "" } func (x *RoomJoinUserRsp) GetPlayerNum() uint32 { if x != nil { return x.PlayerNum } return 0 } func (x *RoomJoinUserRsp) GetPlayerType() uint32 { if x != nil { return x.PlayerType } return 0 } // 1,通知开始掷子并且开始倒计时 type GameStartRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 SeatID *uint32 `protobuf:"varint,2,opt,name=seatID,proto3,oneof" json:"seatID,omitempty"` //掷子玩家座位号 CastSecond *uint32 `protobuf:"varint,3,opt,name=castSecond,proto3,oneof" json:"castSecond,omitempty"` //结果 } func (x *GameStartRsp) Reset() { *x = GameStartRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameStartRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameStartRsp) ProtoMessage() {} func (x *GameStartRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GameStartRsp.ProtoReflect.Descriptor instead. func (*GameStartRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{31} } func (x *GameStartRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *GameStartRsp) GetSeatID() uint32 { if x != nil && x.SeatID != nil { return *x.SeatID } return 0 } func (x *GameStartRsp) GetCastSecond() uint32 { if x != nil && x.CastSecond != nil { return *x.CastSecond } return 0 } // 2,客户端请求掷子,空消息 type ThrowTheDiceReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ThrowTheDiceReq) Reset() { *x = ThrowTheDiceReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ThrowTheDiceReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ThrowTheDiceReq) ProtoMessage() {} func (x *ThrowTheDiceReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ThrowTheDiceReq.ProtoReflect.Descriptor instead. func (*ThrowTheDiceReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{32} } // 3,通知掷子结果 type ThrowTheDiceRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 0表示成功,其他表示失败 SeatID *uint32 `protobuf:"varint,2,opt,name=seatID,proto3,oneof" json:"seatID,omitempty"` //座位id Point uint32 `protobuf:"varint,3,opt,name=point,proto3" json:"point,omitempty"` //掷子点数 SkipReason *uint32 `protobuf:"varint,4,opt,name=skipReason,proto3,oneof" json:"skipReason,omitempty"` //玩家是否可以行棋,不为0表示不能行棋 NextTurn *uint32 `protobuf:"varint,5,opt,name=nextTurn,proto3,oneof" json:"nextTurn,omitempty"` //玩家不能行走时下一玩家 AutoMove *uint32 `protobuf:"varint,6,opt,name=autoMove,proto3,oneof" json:"autoMove,omitempty"` //1代表正常 2自动骰子 3自动起飞,4自动行走 Players []*PlayerRsp `protobuf:"bytes,7,rep,name=players,proto3" json:"players,omitempty"` } func (x *ThrowTheDiceRsp) Reset() { *x = ThrowTheDiceRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ThrowTheDiceRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ThrowTheDiceRsp) ProtoMessage() {} func (x *ThrowTheDiceRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ThrowTheDiceRsp.ProtoReflect.Descriptor instead. func (*ThrowTheDiceRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{33} } func (x *ThrowTheDiceRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *ThrowTheDiceRsp) GetSeatID() uint32 { if x != nil && x.SeatID != nil { return *x.SeatID } return 0 } func (x *ThrowTheDiceRsp) GetPoint() uint32 { if x != nil { return x.Point } return 0 } func (x *ThrowTheDiceRsp) GetSkipReason() uint32 { if x != nil && x.SkipReason != nil { return *x.SkipReason } return 0 } func (x *ThrowTheDiceRsp) GetNextTurn() uint32 { if x != nil && x.NextTurn != nil { return *x.NextTurn } return 0 } func (x *ThrowTheDiceRsp) GetAutoMove() uint32 { if x != nil && x.AutoMove != nil { return *x.AutoMove } return 0 } func (x *ThrowTheDiceRsp) GetPlayers() []*PlayerRsp { if x != nil { return x.Players } return nil } // 4,客户端请求起飞 type PlaneStartReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlaneID string `protobuf:"bytes,1,opt,name=planeID,proto3" json:"planeID,omitempty"` //飞机id,从0开始 } func (x *PlaneStartReq) Reset() { *x = PlaneStartReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlaneStartReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlaneStartReq) ProtoMessage() {} func (x *PlaneStartReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlaneStartReq.ProtoReflect.Descriptor instead. func (*PlaneStartReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{34} } func (x *PlaneStartReq) GetPlaneID() string { if x != nil { return x.PlaneID } return "" } // 5,通知起飞结果 type PlaneStartRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //结果 SeatID *uint32 `protobuf:"varint,2,opt,name=seatID,proto3,oneof" json:"seatID,omitempty"` //起飞玩家座位id PlaneID string `protobuf:"bytes,3,opt,name=planeID,proto3" json:"planeID,omitempty"` //起飞飞机ID NextTurn *uint32 `protobuf:"varint,4,opt,name=nextTurn,proto3,oneof" json:"nextTurn,omitempty"` //下一个玩家座位id PlayerNum uint32 `protobuf:"varint,5,opt,name=playerNum,proto3" json:"playerNum,omitempty"` //玩家数 Players []*PlayerRsp `protobuf:"bytes,6,rep,name=players,proto3" json:"players,omitempty"` } func (x *PlaneStartRsp) Reset() { *x = PlaneStartRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlaneStartRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlaneStartRsp) ProtoMessage() {} func (x *PlaneStartRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlaneStartRsp.ProtoReflect.Descriptor instead. func (*PlaneStartRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{35} } func (x *PlaneStartRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *PlaneStartRsp) GetSeatID() uint32 { if x != nil && x.SeatID != nil { return *x.SeatID } return 0 } func (x *PlaneStartRsp) GetPlaneID() string { if x != nil { return x.PlaneID } return "" } func (x *PlaneStartRsp) GetNextTurn() uint32 { if x != nil && x.NextTurn != nil { return *x.NextTurn } return 0 } func (x *PlaneStartRsp) GetPlayerNum() uint32 { if x != nil { return x.PlayerNum } return 0 } func (x *PlaneStartRsp) GetPlayers() []*PlayerRsp { if x != nil { return x.Players } return nil } // 6,客户端请求行走 type MoveReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlaneID string `protobuf:"bytes,1,opt,name=planeID,proto3" json:"planeID,omitempty"` //飞机id,从0开始 } func (x *MoveReq) Reset() { *x = MoveReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MoveReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*MoveReq) ProtoMessage() {} func (x *MoveReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MoveReq.ProtoReflect.Descriptor instead. func (*MoveReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{36} } func (x *MoveReq) GetPlaneID() string { if x != nil { return x.PlaneID } return "" } // 7,通知移动结果 type MoveRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result,proto3,oneof" json:"result,omitempty"` //0表示成功,其他表示失败 SeatID *uint32 `protobuf:"varint,2,opt,name=seatID,proto3,oneof" json:"seatID,omitempty"` //起飞玩家座位id PlaneID string `protobuf:"bytes,3,opt,name=planeID,proto3" json:"planeID,omitempty"` //行走飞机ID Step *uint32 `protobuf:"varint,4,opt,name=step,proto3,oneof" json:"step,omitempty"` //行走的步数 CurPosIndex *uint32 `protobuf:"varint,5,opt,name=curPosIndex,proto3,oneof" json:"curPosIndex,omitempty"` // 棋子当前相对于行走路线的索引 NextTurn *uint32 `protobuf:"varint,6,opt,name=nextTurn,proto3,oneof" json:"nextTurn,omitempty"` //下一个玩家 HasWin *uint32 `protobuf:"varint,7,opt,name=hasWin,proto3,oneof" json:"hasWin,omitempty"` //玩家是否已经获胜,1表示已经获胜,0表示还没有获胜 PlayerNum uint32 `protobuf:"varint,8,opt,name=playerNum,proto3" json:"playerNum,omitempty"` //玩家数 FinishEvent *FinishEventRsp `protobuf:"bytes,9,opt,name=finishEvent,proto3" json:"finishEvent,omitempty"` TKickEvent *TKickEventRsp `protobuf:"bytes,10,opt,name=tKickEvent,proto3" json:"tKickEvent,omitempty"` Players []*PlayerRsp `protobuf:"bytes,11,rep,name=players,proto3" json:"players,omitempty"` } func (x *MoveRsp) Reset() { *x = MoveRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MoveRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*MoveRsp) ProtoMessage() {} func (x *MoveRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MoveRsp.ProtoReflect.Descriptor instead. func (*MoveRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{37} } func (x *MoveRsp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *MoveRsp) GetSeatID() uint32 { if x != nil && x.SeatID != nil { return *x.SeatID } return 0 } func (x *MoveRsp) GetPlaneID() string { if x != nil { return x.PlaneID } return "" } func (x *MoveRsp) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } func (x *MoveRsp) GetCurPosIndex() uint32 { if x != nil && x.CurPosIndex != nil { return *x.CurPosIndex } return 0 } func (x *MoveRsp) GetNextTurn() uint32 { if x != nil && x.NextTurn != nil { return *x.NextTurn } return 0 } func (x *MoveRsp) GetHasWin() uint32 { if x != nil && x.HasWin != nil { return *x.HasWin } return 0 } func (x *MoveRsp) GetPlayerNum() uint32 { if x != nil { return x.PlayerNum } return 0 } func (x *MoveRsp) GetFinishEvent() *FinishEventRsp { if x != nil { return x.FinishEvent } return nil } func (x *MoveRsp) GetTKickEvent() *TKickEventRsp { if x != nil { return x.TKickEvent } return nil } func (x *MoveRsp) GetPlayers() []*PlayerRsp { if x != nil { return x.Players } return nil } // 9,客户端请求托管 type TrusteeshipReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Trust bool `protobuf:"varint,1,opt,name=trust,proto3" json:"trust,omitempty"` //true表示托管,2表示不托管 } func (x *TrusteeshipReq) Reset() { *x = TrusteeshipReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TrusteeshipReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*TrusteeshipReq) ProtoMessage() {} func (x *TrusteeshipReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TrusteeshipReq.ProtoReflect.Descriptor instead. func (*TrusteeshipReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{38} } func (x *TrusteeshipReq) GetTrust() bool { if x != nil { return x.Trust } return false } // 8,通知玩家托管 type TrusteeshipRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Trust bool `protobuf:"varint,1,opt,name=trust,proto3" json:"trust,omitempty"` //true表示托管,false表示不托管 SeatID *uint32 `protobuf:"varint,2,opt,name=seatID,proto3,oneof" json:"seatID,omitempty"` //座位id } func (x *TrusteeshipRsp) Reset() { *x = TrusteeshipRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TrusteeshipRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*TrusteeshipRsp) ProtoMessage() {} func (x *TrusteeshipRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TrusteeshipRsp.ProtoReflect.Descriptor instead. func (*TrusteeshipRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{39} } func (x *TrusteeshipRsp) GetTrust() bool { if x != nil { return x.Trust } return false } func (x *TrusteeshipRsp) GetSeatID() uint32 { if x != nil && x.SeatID != nil { return *x.SeatID } return 0 } // 退出游戏请求 type QuitReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QuitReq) Reset() { *x = QuitReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QuitReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuitReq) ProtoMessage() {} func (x *QuitReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use QuitReq.ProtoReflect.Descriptor instead. func (*QuitReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{40} } // 通知玩家退出游戏,直接剔除这个玩家 type QuitRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlayerStatus uint32 `protobuf:"varint,1,opt,name=playerStatus,proto3" json:"playerStatus,omitempty"` // 玩家的当前状态, 0、1 表示空位无玩家,2: sitdown, 3: ready, 4: play, 5: 胜利后观战, 6: 胜利后离开,7: 组队逃跑,8: 逃跑 10,观战玩家 SeatID *uint32 `protobuf:"varint,2,opt,name=seatID,proto3,oneof" json:"seatID,omitempty"` //座位号 NextTurn *uint32 `protobuf:"varint,3,opt,name=nextTurn,proto3,oneof" json:"nextTurn,omitempty"` //下一个座位号 Uid string `protobuf:"bytes,4,opt,name=uid,proto3" json:"uid,omitempty"` //用户id } func (x *QuitRsp) Reset() { *x = QuitRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QuitRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuitRsp) ProtoMessage() {} func (x *QuitRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use QuitRsp.ProtoReflect.Descriptor instead. func (*QuitRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{41} } func (x *QuitRsp) GetPlayerStatus() uint32 { if x != nil { return x.PlayerStatus } return 0 } func (x *QuitRsp) GetSeatID() uint32 { if x != nil && x.SeatID != nil { return *x.SeatID } return 0 } func (x *QuitRsp) GetNextTurn() uint32 { if x != nil && x.NextTurn != nil { return *x.NextTurn } return 0 } func (x *QuitRsp) GetUid() string { if x != nil { return x.Uid } return "" } // 通知玩家游戏结束 type EndGameRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SeatID []uint32 `protobuf:"varint,1,rep,packed,name=seatID,proto3" json:"seatID,omitempty"` //座位号 PlayerStatus []string `protobuf:"bytes,2,rep,name=playerStatus,proto3" json:"playerStatus,omitempty"` //玩家状态 Kick []uint32 `protobuf:"varint,3,rep,packed,name=kick,proto3" json:"kick,omitempty"` //- 玩家当局撞棋数量 BeKick []uint32 `protobuf:"varint,4,rep,packed,name=beKick,proto3" json:"beKick,omitempty"` //- 玩家当局被撞棋数量 Money []uint32 `protobuf:"varint,5,rep,packed,name=money,proto3" json:"money,omitempty"` //- 胜方当局赢得金额 } func (x *EndGameRsp) Reset() { *x = EndGameRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EndGameRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*EndGameRsp) ProtoMessage() {} func (x *EndGameRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EndGameRsp.ProtoReflect.Descriptor instead. func (*EndGameRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{42} } func (x *EndGameRsp) GetSeatID() []uint32 { if x != nil { return x.SeatID } return nil } func (x *EndGameRsp) GetPlayerStatus() []string { if x != nil { return x.PlayerStatus } return nil } func (x *EndGameRsp) GetKick() []uint32 { if x != nil { return x.Kick } return nil } func (x *EndGameRsp) GetBeKick() []uint32 { if x != nil { return x.BeKick } return nil } func (x *EndGameRsp) GetMoney() []uint32 { if x != nil { return x.Money } return nil } // 拉房失败解散游戏 type DissolveTheGameReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *DissolveTheGameReq) Reset() { *x = DissolveTheGameReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DissolveTheGameReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DissolveTheGameReq) ProtoMessage() {} func (x *DissolveTheGameReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DissolveTheGameReq.ProtoReflect.Descriptor instead. func (*DissolveTheGameReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{43} } // 拉房失败解散游戏 type DissolveTheGameRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *DissolveTheGameRsp) Reset() { *x = DissolveTheGameRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DissolveTheGameRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DissolveTheGameRsp) ProtoMessage() {} func (x *DissolveTheGameRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DissolveTheGameRsp.ProtoReflect.Descriptor instead. func (*DissolveTheGameRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{44} } // pb解析失败 type PbErrorRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageData string `protobuf:"bytes,1,opt,name=messageData,proto3" json:"messageData,omitempty"` //错误信息 } func (x *PbErrorRsp) Reset() { *x = PbErrorRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PbErrorRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PbErrorRsp) ProtoMessage() {} func (x *PbErrorRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PbErrorRsp.ProtoReflect.Descriptor instead. func (*PbErrorRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{45} } func (x *PbErrorRsp) GetMessageData() string { if x != nil { return x.MessageData } return "" } // //////////////////////////房间消息////////////////////////////// // 拉取房间列表 C->S, Cmd.MSGID_Get_Room_List type GetRoomListReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetRoomListReq) Reset() { *x = GetRoomListReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetRoomListReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetRoomListReq) ProtoMessage() {} func (x *GetRoomListReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetRoomListReq.ProtoReflect.Descriptor instead. func (*GetRoomListReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{46} } // 拉取房间列表 S->C, Cmd.MSGID_Get_Room_List type GetRoomListRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result uint32 `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` //结果 } func (x *GetRoomListRsp) Reset() { *x = GetRoomListRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetRoomListRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetRoomListRsp) ProtoMessage() {} func (x *GetRoomListRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetRoomListRsp.ProtoReflect.Descriptor instead. func (*GetRoomListRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{47} } func (x *GetRoomListRsp) GetResult() uint32 { if x != nil { return x.Result } return 0 } // 踢人通知 S->C, Cmd.MSGID_Kick_Notify type KickNotify struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Reason uint32 `protobuf:"varint,1,opt,name=reason,proto3" json:"reason,omitempty"` } func (x *KickNotify) Reset() { *x = KickNotify{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KickNotify) String() string { return protoimpl.X.MessageStringOf(x) } func (*KickNotify) ProtoMessage() {} func (x *KickNotify) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use KickNotify.ProtoReflect.Descriptor instead. func (*KickNotify) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{48} } func (x *KickNotify) GetReason() uint32 { if x != nil { return x.Reason } return 0 } // 退出客户端房主变更 type RoomChangeOfHomeownerRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //玩家ID } func (x *RoomChangeOfHomeownerRsp) Reset() { *x = RoomChangeOfHomeownerRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomChangeOfHomeownerRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomChangeOfHomeownerRsp) ProtoMessage() {} func (x *RoomChangeOfHomeownerRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomChangeOfHomeownerRsp.ProtoReflect.Descriptor instead. func (*RoomChangeOfHomeownerRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{49} } func (x *RoomChangeOfHomeownerRsp) GetUid() string { if x != nil { return x.Uid } return "" } type GetUserMoneyReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //玩家ID } func (x *GetUserMoneyReq) Reset() { *x = GetUserMoneyReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetUserMoneyReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetUserMoneyReq) ProtoMessage() {} func (x *GetUserMoneyReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetUserMoneyReq.ProtoReflect.Descriptor instead. func (*GetUserMoneyReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{50} } func (x *GetUserMoneyReq) GetUid() string { if x != nil { return x.Uid } return "" } type GetUserMoneyRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Money *uint32 `protobuf:"varint,1,opt,name=money,proto3,oneof" json:"money,omitempty"` //玩家金币 } func (x *GetUserMoneyRsp) Reset() { *x = GetUserMoneyRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetUserMoneyRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetUserMoneyRsp) ProtoMessage() {} func (x *GetUserMoneyRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetUserMoneyRsp.ProtoReflect.Descriptor instead. func (*GetUserMoneyRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{51} } func (x *GetUserMoneyRsp) GetMoney() uint32 { if x != nil && x.Money != nil { return *x.Money } return 0 } type DiscReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` //玩家ID RoomId uint32 `protobuf:"varint,2,opt,name=roomId,proto3" json:"roomId,omitempty"` //房间ID } func (x *DiscReq) Reset() { *x = DiscReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiscReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiscReq) ProtoMessage() {} func (x *DiscReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DiscReq.ProtoReflect.Descriptor instead. func (*DiscReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{52} } func (x *DiscReq) GetUid() string { if x != nil { return x.Uid } return "" } func (x *DiscReq) GetRoomId() uint32 { if x != nil { return x.RoomId } return 0 } type RoomQuitReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *RoomQuitReq) Reset() { *x = RoomQuitReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomQuitReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomQuitReq) ProtoMessage() {} func (x *RoomQuitReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomQuitReq.ProtoReflect.Descriptor instead. func (*RoomQuitReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{53} } type RoomRestartReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *RoomRestartReq) Reset() { *x = RoomRestartReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomRestartReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomRestartReq) ProtoMessage() {} func (x *RoomRestartReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomRestartReq.ProtoReflect.Descriptor instead. func (*RoomRestartReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{54} } type SendMsgReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` //消息数据 } func (x *SendMsgReq) Reset() { *x = SendMsgReq{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMsgReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMsgReq) ProtoMessage() {} func (x *SendMsgReq) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMsgReq.ProtoReflect.Descriptor instead. func (*SendMsgReq) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{55} } func (x *SendMsgReq) GetData() string { if x != nil { return x.Data } return "" } type SendMsgRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` //消息数据 Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` //消息数据 } func (x *SendMsgRsp) Reset() { *x = SendMsgRsp{} if protoimpl.UnsafeEnabled { mi := &file_Message_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMsgRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMsgRsp) ProtoMessage() {} func (x *SendMsgRsp) ProtoReflect() protoreflect.Message { mi := &file_Message_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMsgRsp.ProtoReflect.Descriptor instead. func (*SendMsgRsp) Descriptor() ([]byte, []int) { return file_Message_proto_rawDescGZIP(), []int{56} } func (x *SendMsgRsp) GetData() string { if x != nil { return x.Data } return "" } func (x *SendMsgRsp) GetUid() string { if x != nil { return x.Uid } return "" } var File_Message_proto protoreflect.FileDescriptor var file_Message_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x42, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x50, 0x75, 0x73, 0x68, 0x22, 0x34, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x57, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x57, 0x64, 0x22, 0x54, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x22, 0x96, 0x02, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x12, 0x19, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x9c, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x12, 0x19, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x22, 0x83, 0x02, 0x0a, 0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xba, 0x01, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x12, 0x19, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x74, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x74, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x6f, 0x6f, 0x6d, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x37, 0x0a, 0x0f, 0x52, 0x6f, 0x6f, 0x6d, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x6f, 0x6f, 0x6d, 0x51, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x7d, 0x0a, 0x0d, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0d, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x37, 0x0a, 0x0f, 0x52, 0x6f, 0x6f, 0x6d, 0x51, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe8, 0x02, 0x0a, 0x0f, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x22, 0x4a, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x08, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xba, 0x01, 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x73, 0x70, 0x22, 0x3a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x1f, 0x0a, 0x0b, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x88, 0x04, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x66, 0x53, 0x65, 0x61, 0x74, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x66, 0x53, 0x65, 0x61, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x53, 0x65, 0x61, 0x74, 0x49, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x7a, 0x0a, 0x0d, 0x54, 0x4b, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x42, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x73, 0x70, 0x52, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, 0x0d, 0x4b, 0x69, 0x63, 0x6b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x52, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x42, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x52, 0x73, 0x70, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x64, 0x22, 0x95, 0x01, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2e, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x6a, 0x73, 0x52, 0x73, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xc5, 0x02, 0x0a, 0x0f, 0x52, 0x6f, 0x6f, 0x6d, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x0c, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x54, 0x68, 0x72, 0x6f, 0x77, 0x54, 0x68, 0x65, 0x44, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x22, 0xb7, 0x02, 0x0a, 0x0f, 0x54, 0x68, 0x72, 0x6f, 0x77, 0x54, 0x68, 0x65, 0x44, 0x69, 0x63, 0x65, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x08, 0x61, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x42, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x73, 0x70, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x76, 0x65, 0x22, 0x29, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x22, 0xf5, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x42, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x73, 0x70, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x22, 0x23, 0x0a, 0x07, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x22, 0xe7, 0x03, 0x0a, 0x07, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x50, 0x6f, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x50, 0x6f, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x68, 0x61, 0x73, 0x57, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x42, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x73, 0x70, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x74, 0x4b, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x42, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x4b, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x73, 0x70, 0x52, 0x0a, 0x74, 0x4b, 0x69, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x42, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x73, 0x70, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x72, 0x50, 0x6f, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x68, 0x61, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x26, 0x0a, 0x0e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x72, 0x75, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x74, 0x72, 0x75, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x0e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x65, 0x73, 0x68, 0x69, 0x70, 0x52, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x72, 0x75, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x74, 0x72, 0x75, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x22, 0x09, 0x0a, 0x07, 0x51, 0x75, 0x69, 0x74, 0x52, 0x65, 0x71, 0x22, 0x95, 0x01, 0x0a, 0x07, 0x51, 0x75, 0x69, 0x74, 0x52, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x22, 0x8a, 0x01, 0x0a, 0x0a, 0x45, 0x6e, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x65, 0x61, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x6b, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x4b, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x62, 0x65, 0x4b, 0x69, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x68, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x68, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x73, 0x70, 0x22, 0x2e, 0x0a, 0x0a, 0x50, 0x62, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x28, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x24, 0x0a, 0x0a, 0x4b, 0x69, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x18, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x66, 0x48, 0x6f, 0x6d, 0x65, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x36, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x73, 0x70, 0x12, 0x19, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x22, 0x33, 0x0a, 0x07, 0x44, 0x69, 0x73, 0x63, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x51, 0x75, 0x69, 0x74, 0x52, 0x65, 0x71, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x22, 0x20, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x2a, 0xf8, 0x03, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x16, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4e, 0x49, 0x4c, 0x10, 0xe9, 0x07, 0x12, 0x1f, 0x0a, 0x1a, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x49, 0x44, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x44, 0x5f, 0x4e, 0x49, 0x4c, 0x10, 0xea, 0x07, 0x12, 0x1a, 0x0a, 0x15, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x49, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xeb, 0x07, 0x12, 0x1d, 0x0a, 0x18, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xec, 0x07, 0x12, 0x1e, 0x0a, 0x19, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0xed, 0x07, 0x12, 0x17, 0x0a, 0x12, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x42, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xee, 0x07, 0x12, 0x1a, 0x0a, 0x15, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x10, 0xef, 0x07, 0x12, 0x20, 0x0a, 0x1b, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x10, 0x9f, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x30, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x33, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x34, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x35, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x36, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x37, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x38, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x39, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x31, 0x30, 0x10, 0x0a, 0x2a, 0x84, 0x01, 0x0a, 0x0a, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x4b, 0x49, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x4b, 0x49, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x5f, 0x45, 0x4c, 0x53, 0x45, 0x57, 0x48, 0x45, 0x52, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x4b, 0x49, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x4b, 0x49, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x03, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x3b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_Message_proto_rawDescOnce sync.Once file_Message_proto_rawDescData = file_Message_proto_rawDesc ) func file_Message_proto_rawDescGZIP() []byte { file_Message_proto_rawDescOnce.Do(func() { file_Message_proto_rawDescData = protoimpl.X.CompressGZIP(file_Message_proto_rawDescData) }) return file_Message_proto_rawDescData } var file_Message_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_Message_proto_msgTypes = make([]protoimpl.MessageInfo, 57) var file_Message_proto_goTypes = []interface{}{ (GameStatus)(0), // 0: BBMessage.GameStatus (KickReason)(0), // 1: BBMessage.KickReason (*HeartbeatPush)(nil), // 2: BBMessage.HeartbeatPush (*LoginReq)(nil), // 3: BBMessage.LoginReq (*LoginRsp)(nil), // 4: BBMessage.LoginRsp (*CreateGameReq)(nil), // 5: BBMessage.CreateGameReq (*CreateGameRsp)(nil), // 6: BBMessage.CreateGameRsp (*RoomInfoRsp)(nil), // 7: BBMessage.RoomInfoRsp (*JoinRoomReq)(nil), // 8: BBMessage.JoinRoomReq (*RoomKickUserReq)(nil), // 9: BBMessage.RoomKickUserReq (*RoomKickUserRsp)(nil), // 10: BBMessage.RoomKickUserRsp (*RoomQuitUserReq)(nil), // 11: BBMessage.RoomQuitUserReq (*RoomInviteReq)(nil), // 12: BBMessage.RoomInviteReq (*RoomInviteRsp)(nil), // 13: BBMessage.RoomInviteRsp (*RoomQuitUserRsp)(nil), // 14: BBMessage.RoomQuitUserRsp (*JoinRoomInfoRsp)(nil), // 15: BBMessage.JoinRoomInfoRsp (*RoomInfoReq)(nil), // 16: BBMessage.RoomInfoReq (*CancelMatchReq)(nil), // 17: BBMessage.CancelMatchReq (*CancelMatchRsp)(nil), // 18: BBMessage.CancelMatchRsp (*MatchRsp)(nil), // 19: BBMessage.MatchRsp (*MatchJoinUserRsp)(nil), // 20: BBMessage.MatchJoinUserRsp (*RoomStartGameReq)(nil), // 21: BBMessage.RoomStartGameReq (*RoomStartGameRsp)(nil), // 22: BBMessage.RoomStartGameRsp (*GetUserInfoReq)(nil), // 23: BBMessage.GetUserInfoReq (*KickUserReq)(nil), // 24: BBMessage.KickUserReq (*GetUserInfoRsp)(nil), // 25: BBMessage.GetUserInfoRsp (*TKickEventRsp)(nil), // 26: BBMessage.TKickEventRsp (*KickPlayerRsp)(nil), // 27: BBMessage.KickPlayerRsp (*FinishEventRsp)(nil), // 28: BBMessage.FinishEventRsp (*PlayerRsp)(nil), // 29: BBMessage.PlayerRsp (*PlaneRsp)(nil), // 30: BBMessage.PlaneRsp (*RoomDjsRsp)(nil), // 31: BBMessage.RoomDjsRsp (*RoomJoinUserRsp)(nil), // 32: BBMessage.RoomJoinUserRsp (*GameStartRsp)(nil), // 33: BBMessage.GameStartRsp (*ThrowTheDiceReq)(nil), // 34: BBMessage.ThrowTheDiceReq (*ThrowTheDiceRsp)(nil), // 35: BBMessage.ThrowTheDiceRsp (*PlaneStartReq)(nil), // 36: BBMessage.PlaneStartReq (*PlaneStartRsp)(nil), // 37: BBMessage.PlaneStartRsp (*MoveReq)(nil), // 38: BBMessage.MoveReq (*MoveRsp)(nil), // 39: BBMessage.MoveRsp (*TrusteeshipReq)(nil), // 40: BBMessage.TrusteeshipReq (*TrusteeshipRsp)(nil), // 41: BBMessage.TrusteeshipRsp (*QuitReq)(nil), // 42: BBMessage.QuitReq (*QuitRsp)(nil), // 43: BBMessage.QuitRsp (*EndGameRsp)(nil), // 44: BBMessage.EndGameRsp (*DissolveTheGameReq)(nil), // 45: BBMessage.DissolveTheGameReq (*DissolveTheGameRsp)(nil), // 46: BBMessage.DissolveTheGameRsp (*PbErrorRsp)(nil), // 47: BBMessage.PbErrorRsp (*GetRoomListReq)(nil), // 48: BBMessage.GetRoomListReq (*GetRoomListRsp)(nil), // 49: BBMessage.GetRoomListRsp (*KickNotify)(nil), // 50: BBMessage.KickNotify (*RoomChangeOfHomeownerRsp)(nil), // 51: BBMessage.RoomChangeOfHomeownerRsp (*GetUserMoneyReq)(nil), // 52: BBMessage.GetUserMoneyReq (*GetUserMoneyRsp)(nil), // 53: BBMessage.GetUserMoneyRsp (*DiscReq)(nil), // 54: BBMessage.DiscReq (*RoomQuitReq)(nil), // 55: BBMessage.RoomQuitReq (*RoomRestartReq)(nil), // 56: BBMessage.RoomRestartReq (*SendMsgReq)(nil), // 57: BBMessage.SendMsgReq (*SendMsgRsp)(nil), // 58: BBMessage.SendMsgRsp } var file_Message_proto_depIdxs = []int32{ 27, // 0: BBMessage.TKickEventRsp.kickPlayer:type_name -> BBMessage.KickPlayerRsp 30, // 1: BBMessage.PlayerRsp.planes:type_name -> BBMessage.PlaneRsp 29, // 2: BBMessage.ThrowTheDiceRsp.players:type_name -> BBMessage.PlayerRsp 29, // 3: BBMessage.PlaneStartRsp.players:type_name -> BBMessage.PlayerRsp 28, // 4: BBMessage.MoveRsp.finishEvent:type_name -> BBMessage.FinishEventRsp 26, // 5: BBMessage.MoveRsp.tKickEvent:type_name -> BBMessage.TKickEventRsp 29, // 6: BBMessage.MoveRsp.players:type_name -> BBMessage.PlayerRsp 7, // [7:7] is the sub-list for method output_type 7, // [7:7] is the sub-list for method input_type 7, // [7:7] is the sub-list for extension type_name 7, // [7:7] is the sub-list for extension extendee 0, // [0:7] is the sub-list for field type_name } func init() { file_Message_proto_init() } func file_Message_proto_init() { if File_Message_proto != nil { return } if !protoimpl.UnsafeEnabled { file_Message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HeartbeatPush); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateGameReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateGameRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomInfoRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JoinRoomReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomKickUserReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomKickUserRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomQuitUserReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomInviteReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomInviteRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomQuitUserRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JoinRoomInfoRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomInfoReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelMatchReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelMatchRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MatchRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MatchJoinUserRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomStartGameReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomStartGameRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserInfoReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KickUserReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserInfoRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TKickEventRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KickPlayerRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinishEventRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlaneRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomDjsRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomJoinUserRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameStartRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ThrowTheDiceReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ThrowTheDiceRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlaneStartReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlaneStartRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MoveReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MoveRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrusteeshipReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrusteeshipRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuitReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuitRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EndGameRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DissolveTheGameReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DissolveTheGameRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbErrorRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRoomListReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRoomListRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KickNotify); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomChangeOfHomeownerRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserMoneyReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserMoneyRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiscReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomQuitReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomRestartReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMsgReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_Message_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMsgRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_Message_proto_msgTypes[3].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[4].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[5].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[6].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[10].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[11].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[13].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[14].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[16].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[17].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[18].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[23].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[24].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[25].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[26].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[27].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[28].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[29].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[30].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[31].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[33].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[35].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[37].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[39].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[41].OneofWrappers = []interface{}{} file_Message_proto_msgTypes[51].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_Message_proto_rawDesc, NumEnums: 2, NumMessages: 57, NumExtensions: 0, NumServices: 0, }, GoTypes: file_Message_proto_goTypes, DependencyIndexes: file_Message_proto_depIdxs, EnumInfos: file_Message_proto_enumTypes, MessageInfos: file_Message_proto_msgTypes, }.Build() File_Message_proto = out.File file_Message_proto_rawDesc = nil file_Message_proto_goTypes = nil file_Message_proto_depIdxs = nil }