// 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
}
