Multiple player info requests can be placed in one packet.

This commit is contained in:
lotodore
2012-09-24 12:22:13 +02:00
parent f0ee0af6ec
commit 02016381ef
9 changed files with 1078 additions and 991 deletions
+1 -1
View File
@@ -232,7 +232,7 @@ message GameListAdminChangedMessage {
} }
message PlayerInfoRequestMessage { message PlayerInfoRequestMessage {
required uint32 playerId = 1; repeated uint32 playerId = 1 [packed = true];
} }
message PlayerInfoReplyMessage { message PlayerInfoReplyMessage {
+1
View File
@@ -139,6 +139,7 @@ protected:
bool GetCachedPlayerInfo(unsigned id, PlayerInfo &info) const; bool GetCachedPlayerInfo(unsigned id, PlayerInfo &info) const;
void RequestPlayerInfo(unsigned id, bool requestAvatar = false); void RequestPlayerInfo(unsigned id, bool requestAvatar = false);
void RequestPlayerInfo(const std::list<unsigned> &idList, bool requestAvatar = false);
void SetPlayerInfo(unsigned id, const PlayerInfo &info); void SetPlayerInfo(unsigned id, const PlayerInfo &info);
void SetUnknownPlayer(unsigned id); void SetUnknownPlayer(unsigned id);
void SetNewGameAdmin(unsigned id); void SetNewGameAdmin(unsigned id);
+5 -2
View File
@@ -677,15 +677,18 @@ AbstractClientStateReceiving::HandlePacket(boost::shared_ptr<ClientThread> clien
unsigned numPlayers = netListNew.playerids_size(); unsigned numPlayers = netListNew.playerids_size();
// Request player info for players if needed. // Request player info for players if needed.
GameInfo tmpInfo; GameInfo tmpInfo;
list<unsigned> requestList;
for (unsigned i = 0; i < numPlayers; i++) { for (unsigned i = 0; i < numPlayers; i++) {
PlayerInfo info; PlayerInfo info;
unsigned playerId = netListNew.playerids(i); unsigned playerId = netListNew.playerids(i);
if (!client->GetCachedPlayerInfo(playerId, info)) { if (!client->GetCachedPlayerInfo(playerId, info)) {
// Request player info. requestList.push_back(playerId);
client->RequestPlayerInfo(playerId);
} }
tmpInfo.players.push_back(playerId); tmpInfo.players.push_back(playerId);
} }
// Send request for multiple players (will only act if list is non-empty).
client->RequestPlayerInfo(requestList);
tmpInfo.adminPlayerId = netListNew.adminplayerid(); tmpInfo.adminPlayerId = netListNew.adminplayerid();
tmpInfo.isPasswordProtected = netListNew.isprivate(); tmpInfo.isPasswordProtected = netListNew.isprivate();
tmpInfo.mode = static_cast<GameMode>(netListNew.gamemode()); tmpInfo.mode = static_cast<GameMode>(netListNew.gamemode());
+22 -11
View File
@@ -34,6 +34,7 @@
#include <qttoolsinterface.h> #include <qttoolsinterface.h>
#include <boost/lambda/lambda.hpp> #include <boost/lambda/lambda.hpp>
#include <boost/foreach.hpp>
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include <sstream> #include <sstream>
#include <fstream> #include <fstream>
@@ -644,19 +645,29 @@ ClientThread::GetCachedPlayerInfo(unsigned id, PlayerInfo &info) const
void void
ClientThread::RequestPlayerInfo(unsigned id, bool requestAvatar) ClientThread::RequestPlayerInfo(unsigned id, bool requestAvatar)
{ {
if (find(m_playerInfoRequestList.begin(), m_playerInfoRequestList.end(), id) == m_playerInfoRequestList.end()) { list<unsigned> idList;
boost::shared_ptr<NetPacket> packet(new NetPacket); idList.push_back(id);
packet->GetMsg()->set_messagetype(PokerTHMessage::Type_PlayerInfoRequestMessage); RequestPlayerInfo(idList, requestAvatar);
PlayerInfoRequestMessage *netPlayerInfo = packet->GetMsg()->mutable_playerinforequestmessage(); }
netPlayerInfo->set_playerid(id);
GetSender().Send(GetContext().GetSessionData(), packet);
m_playerInfoRequestList.push_back(id);
void
ClientThread::RequestPlayerInfo(const list<unsigned> &idList, bool requestAvatar)
{
boost::shared_ptr<NetPacket> packet(new NetPacket);
packet->GetMsg()->set_messagetype(PokerTHMessage::Type_PlayerInfoRequestMessage);
PlayerInfoRequestMessage *netPlayerInfo = packet->GetMsg()->mutable_playerinforequestmessage();
BOOST_FOREACH(unsigned playerId, idList) {
if (find(m_playerInfoRequestList.begin(), m_playerInfoRequestList.end(), playerId) == m_playerInfoRequestList.end()) {
netPlayerInfo->add_playerid(playerId);
m_playerInfoRequestList.push_back(playerId);
}
// Remember that we have to request an avatar.
if (requestAvatar) {
m_avatarShouldRequestList.push_back(playerId);
}
} }
// Remember that we have to request an avatar. if (netPlayerInfo->playerid_size() > 0) {
if (requestAvatar) { GetSender().Send(GetContext().GetSessionData(), packet);
m_avatarShouldRequestList.push_back(id);
} }
} }
+40 -38
View File
@@ -1144,47 +1144,49 @@ ServerLobbyThread::HandleNetPacketAvatarEnd(boost::shared_ptr<SessionData> sessi
void void
ServerLobbyThread::HandleNetPacketRetrievePlayerInfo(boost::shared_ptr<SessionData> session, const PlayerInfoRequestMessage &playerInfoRequest) ServerLobbyThread::HandleNetPacketRetrievePlayerInfo(boost::shared_ptr<SessionData> session, const PlayerInfoRequestMessage &playerInfoRequest)
{ {
// Find player in lobby or in a game. BOOST_FOREACH(unsigned playerId, playerInfoRequest.playerid()) {
boost::shared_ptr<SessionData> tmpSession = m_sessionManager.GetSessionByUniquePlayerId(playerInfoRequest.playerid()); // Find player in lobby or in a game.
if (!tmpSession) { boost::shared_ptr<SessionData> tmpSession = m_sessionManager.GetSessionByUniquePlayerId(playerId);
tmpSession = m_gameSessionManager.GetSessionByUniquePlayerId(playerInfoRequest.playerid()); if (!tmpSession) {
} tmpSession = m_gameSessionManager.GetSessionByUniquePlayerId(playerId);
boost::shared_ptr<PlayerData> tmpPlayer;
if (tmpSession) {
tmpPlayer = tmpSession->GetPlayerData();
}
if (!tmpPlayer) {
boost::mutex::scoped_lock lock(m_computerPlayersMutex);
PlayerDataMap::const_iterator pos = m_computerPlayers.find(playerInfoRequest.playerid());
if (pos != m_computerPlayers.end())
tmpPlayer = pos->second;
}
boost::shared_ptr<NetPacket> packet(new NetPacket);
packet->GetMsg()->set_messagetype(PokerTHMessage::Type_PlayerInfoReplyMessage);
PlayerInfoReplyMessage *netPlayerInfoReply = packet->GetMsg()->mutable_playerinforeplymessage();
netPlayerInfoReply->set_playerid(playerInfoRequest.playerid());
if (tmpPlayer) {
// Send player info to client.
PlayerInfoReplyMessage::PlayerInfoData *data = netPlayerInfoReply->mutable_playerinfodata();
data->set_playername(tmpPlayer->GetName());
data->set_ishuman(tmpPlayer->GetType() == PLAYER_TYPE_HUMAN);
data->set_playerrights(static_cast<NetPlayerInfoRights>(tmpPlayer->GetRights()));
if (!tmpPlayer->GetCountry().empty()) {
data->set_countrycode(tmpPlayer->GetCountry());
} }
if (!tmpPlayer->GetAvatarMD5().IsZero()) { boost::shared_ptr<PlayerData> tmpPlayer;
PlayerInfoReplyMessage::PlayerInfoData::AvatarData *avatarData = data->mutable_avatardata(); if (tmpSession) {
avatarData->set_avatartype(static_cast<NetAvatarType>(AvatarManager::GetAvatarFileType(tmpPlayer->GetAvatarFile()))); tmpPlayer = tmpSession->GetPlayerData();
avatarData->set_avatarhash(tmpPlayer->GetAvatarMD5().GetData(), MD5_DATA_SIZE);
} }
} else {
// Unknown player id - do not set any data. if (!tmpPlayer) {
boost::mutex::scoped_lock lock(m_computerPlayersMutex);
PlayerDataMap::const_iterator pos = m_computerPlayers.find(playerId);
if (pos != m_computerPlayers.end())
tmpPlayer = pos->second;
}
boost::shared_ptr<NetPacket> packet(new NetPacket);
packet->GetMsg()->set_messagetype(PokerTHMessage::Type_PlayerInfoReplyMessage);
PlayerInfoReplyMessage *netPlayerInfoReply = packet->GetMsg()->mutable_playerinforeplymessage();
netPlayerInfoReply->set_playerid(playerId);
if (tmpPlayer) {
// Send player info to client.
PlayerInfoReplyMessage::PlayerInfoData *data = netPlayerInfoReply->mutable_playerinfodata();
data->set_playername(tmpPlayer->GetName());
data->set_ishuman(tmpPlayer->GetType() == PLAYER_TYPE_HUMAN);
data->set_playerrights(static_cast<NetPlayerInfoRights>(tmpPlayer->GetRights()));
if (!tmpPlayer->GetCountry().empty()) {
data->set_countrycode(tmpPlayer->GetCountry());
}
if (!tmpPlayer->GetAvatarMD5().IsZero()) {
PlayerInfoReplyMessage::PlayerInfoData::AvatarData *avatarData = data->mutable_avatardata();
avatarData->set_avatartype(static_cast<NetAvatarType>(AvatarManager::GetAvatarFileType(tmpPlayer->GetAvatarFile())));
avatarData->set_avatarhash(tmpPlayer->GetAvatarMD5().GetData(), MD5_DATA_SIZE);
}
} else {
// Unknown player id - do not set any data.
}
GetSender().Send(session, packet);
} }
GetSender().Send(session, packet);
} }
void void
+425 -411
View File
@@ -2224,385 +2224,385 @@ void protobuf_AddDesc_pokerth_2eproto() {
"\002 \002(\r\"=\n\031GameListPlayerLeftMessage\022\016\n\006ga" "\002 \002(\r\"=\n\031GameListPlayerLeftMessage\022\016\n\006ga"
"meId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\"G\n\033GameList" "meId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\"G\n\033GameList"
"AdminChangedMessage\022\016\n\006gameId\030\001 \002(\r\022\030\n\020n" "AdminChangedMessage\022\016\n\006gameId\030\001 \002(\r\022\030\n\020n"
"ewAdminPlayerId\030\002 \002(\r\",\n\030PlayerInfoReque" "ewAdminPlayerId\030\002 \002(\r\"0\n\030PlayerInfoReque"
"stMessage\022\020\n\010playerId\030\001 \002(\r\"\360\002\n\026PlayerIn" "stMessage\022\024\n\010playerId\030\001 \003(\rB\002\020\001\"\360\002\n\026Play"
"foReplyMessage\022\020\n\010playerId\030\001 \002(\r\022>\n\016play" "erInfoReplyMessage\022\020\n\010playerId\030\001 \002(\r\022>\n\016"
"erInfoData\030\002 \001(\0132&.PlayerInfoReplyMessag" "playerInfoData\030\002 \001(\0132&.PlayerInfoReplyMe"
"e.PlayerInfoData\032\203\002\n\016PlayerInfoData\022\022\n\np" "ssage.PlayerInfoData\032\203\002\n\016PlayerInfoData\022"
"layerName\030\001 \002(\t\022\017\n\007isHuman\030\002 \002(\010\022*\n\014play" "\022\n\nplayerName\030\001 \002(\t\022\017\n\007isHuman\030\002 \002(\010\022*\n\014"
"erRights\030\003 \002(\0162\024.NetPlayerInfoRights\022\023\n\013" "playerRights\030\003 \002(\0162\024.NetPlayerInfoRights"
"countryCode\030\004 \001(\t\022E\n\navatarData\030\005 \001(\01321." "\022\023\n\013countryCode\030\004 \001(\t\022E\n\navatarData\030\005 \001("
"PlayerInfoReplyMessage.PlayerInfoData.Av" "\01321.PlayerInfoReplyMessage.PlayerInfoDat"
"atarData\032D\n\nAvatarData\022\"\n\navatarType\030\001 \002" "a.AvatarData\032D\n\nAvatarData\022\"\n\navatarType"
"(\0162\016.NetAvatarType\022\022\n\navatarHash\030\002 \002(\014\"\260" "\030\001 \002(\0162\016.NetAvatarType\022\022\n\navatarHash\030\002 \002"
"\001\n\032SubscriptionRequestMessage\022J\n\022subscri" "(\014\"\260\001\n\032SubscriptionRequestMessage\022J\n\022sub"
"ptionAction\030\001 \002(\0162..SubscriptionRequestM" "scriptionAction\030\001 \002(\0162..SubscriptionRequ"
"essage.SubscriptionAction\"F\n\022Subscriptio" "estMessage.SubscriptionAction\"F\n\022Subscri"
"nAction\022\027\n\023unsubscribeGameList\020\001\022\027\n\023resu" "ptionAction\022\027\n\023unsubscribeGameList\020\001\022\027\n\023"
"bscribeGameList\020\002\"N\n\027JoinExistingGameMes" "resubscribeGameList\020\002\"N\n\027JoinExistingGam"
"sage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010password\030\002 \001(\t\022\021" "eMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010password\030\002 \001"
"\n\tautoLeave\030\003 \001(\010\"Y\n\022JoinNewGameMessage\022" "(\t\022\021\n\tautoLeave\030\003 \001(\010\"Y\n\022JoinNewGameMess"
"\036\n\010gameInfo\030\001 \002(\0132\014.NetGameInfo\022\020\n\010passw" "age\022\036\n\010gameInfo\030\001 \002(\0132\014.NetGameInfo\022\020\n\010p"
"ord\030\002 \001(\t\022\021\n\tautoLeave\030\003 \001(\010\">\n\031RejoinEx" "assword\030\002 \001(\t\022\021\n\tautoLeave\030\003 \001(\010\">\n\031Rejo"
"istingGameMessage\022\016\n\006gameId\030\001 \002(\r\022\021\n\taut" "inExistingGameMessage\022\016\n\006gameId\030\001 \002(\r\022\021\n"
"oLeave\030\002 \001(\010\"]\n\022JoinGameAckMessage\022\016\n\006ga" "\tautoLeave\030\002 \001(\010\"]\n\022JoinGameAckMessage\022\016"
"meId\030\001 \002(\r\022\027\n\017areYouGameAdmin\030\002 \002(\010\022\036\n\010g" "\n\006gameId\030\001 \002(\r\022\027\n\017areYouGameAdmin\030\002 \002(\010\022"
"ameInfo\030\003 \002(\0132\014.NetGameInfo\"\337\002\n\025JoinGame" "\036\n\010gameInfo\030\003 \002(\0132\014.NetGameInfo\"\337\002\n\025Join"
"FailedMessage\022\016\n\006gameId\030\001 \002(\r\022K\n\025joinGam" "GameFailedMessage\022\016\n\006gameId\030\001 \002(\r\022K\n\025joi"
"eFailureReason\030\002 \002(\0162,.JoinGameFailedMes" "nGameFailureReason\030\002 \002(\0162,.JoinGameFaile"
"sage.JoinGameFailureReason\"\350\001\n\025JoinGameF" "dMessage.JoinGameFailureReason\"\350\001\n\025JoinG"
"ailureReason\022\017\n\013invalidGame\020\001\022\016\n\ngameIsF" "ameFailureReason\022\017\n\013invalidGame\020\001\022\016\n\ngam"
"ull\020\002\022\021\n\rgameIsRunning\020\003\022\023\n\017invalidPassw" "eIsFull\020\002\022\021\n\rgameIsRunning\020\003\022\023\n\017invalidP"
"ord\020\004\022\025\n\021notAllowedAsGuest\020\005\022\016\n\nnotInvit" "assword\020\004\022\025\n\021notAllowedAsGuest\020\005\022\016\n\nnotI"
"ed\020\006\022\021\n\rgameNameInUse\020\007\022\017\n\013badGameName\020\010" "nvited\020\006\022\021\n\rgameNameInUse\020\007\022\017\n\013badGameNa"
"\022\023\n\017invalidSettings\020\t\022\024\n\020ipAddressBlocke" "me\020\010\022\023\n\017invalidSettings\020\t\022\024\n\020ipAddressBl"
"d\020\n\022\020\n\014rejoinFailed\020\013\"P\n\027GamePlayerJoine" "ocked\020\n\022\020\n\014rejoinFailed\020\013\"P\n\027GamePlayerJ"
"dMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002" "oinedMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId"
"(\r\022\023\n\013isGameAdmin\030\003 \002(\010\"\316\001\n\025GamePlayerLe" "\030\002 \002(\r\022\023\n\013isGameAdmin\030\003 \002(\010\"\316\001\n\025GamePlay"
"ftMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 " "erLeftMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerI"
"\002(\r\022I\n\024gamePlayerLeftReason\030\003 \002(\0162+.Game" "d\030\002 \002(\r\022I\n\024gamePlayerLeftReason\030\003 \002(\0162+."
"PlayerLeftMessage.GamePlayerLeftReason\"H" "GamePlayerLeftMessage.GamePlayerLeftReas"
"\n\024GamePlayerLeftReason\022\021\n\rleftOnRequest\020" "on\"H\n\024GamePlayerLeftReason\022\021\n\rleftOnRequ"
"\000\022\016\n\nleftKicked\020\001\022\r\n\tleftError\020\002\"C\n\027Game" "est\020\000\022\016\n\nleftKicked\020\001\022\r\n\tleftError\020\002\"C\n\027"
"AdminChangedMessage\022\016\n\006gameId\030\001 \002(\r\022\030\n\020n" "GameAdminChangedMessage\022\016\n\006gameId\030\001 \002(\r\022"
"ewAdminPlayerId\030\002 \002(\r\"\206\002\n\026RemovedFromGam" "\030\n\020newAdminPlayerId\030\002 \002(\r\"\206\002\n\026RemovedFro"
"eMessage\022\016\n\006gameId\030\001 \002(\r\022L\n\025removedFromG" "mGameMessage\022\016\n\006gameId\030\001 \002(\r\022L\n\025removedF"
"ameReason\030\002 \002(\0162-.RemovedFromGameMessage" "romGameReason\030\002 \002(\0162-.RemovedFromGameMes"
".RemovedFromGameReason\"\215\001\n\025RemovedFromGa" "sage.RemovedFromGameReason\"\215\001\n\025RemovedFr"
"meReason\022\024\n\020removedOnRequest\020\000\022\022\n\016kicked" "omGameReason\022\024\n\020removedOnRequest\020\000\022\022\n\016ki"
"FromGame\020\001\022\016\n\ngameIsFull\020\002\022\021\n\rgameIsRunn" "ckedFromGame\020\001\022\016\n\ngameIsFull\020\002\022\021\n\rgameIs"
"ing\020\003\022\017\n\013gameTimeout\020\004\022\026\n\022removedStartFa" "Running\020\003\022\017\n\013gameTimeout\020\004\022\026\n\022removedSta"
"iled\020\005\"<\n\030KickPlayerRequestMessage\022\016\n\006ga" "rtFailed\020\005\"<\n\030KickPlayerRequestMessage\022\016"
"meId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\")\n\027LeaveGam" "\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\")\n\027Leav"
"eRequestMessage\022\016\n\006gameId\030\001 \002(\r\"=\n\031Invit" "eGameRequestMessage\022\016\n\006gameId\030\001 \002(\r\"=\n\031I"
"ePlayerToGameMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010" "nvitePlayerToGameMessage\022\016\n\006gameId\030\001 \002(\r"
"playerId\030\002 \002(\r\"R\n\023InviteNotifyMessage\022\016\n" "\022\020\n\010playerId\030\002 \002(\r\"R\n\023InviteNotifyMessag"
"\006gameId\030\001 \002(\r\022\023\n\013playerIdWho\030\002 \002(\r\022\026\n\016pl" "e\022\016\n\006gameId\030\001 \002(\r\022\023\n\013playerIdWho\030\002 \002(\r\022\026"
"ayerIdByWhom\030\003 \002(\r\"\270\001\n\033RejectGameInvitat" "\n\016playerIdByWhom\030\003 \002(\r\"\270\001\n\033RejectGameInv"
"ionMessage\022\016\n\006gameId\030\001 \002(\r\022H\n\016myRejectRe" "itationMessage\022\016\n\006gameId\030\001 \002(\r\022H\n\016myReje"
"ason\030\002 \002(\01620.RejectGameInvitationMessage" "ctReason\030\002 \002(\01620.RejectGameInvitationMes"
".RejectGameInvReason\"\?\n\023RejectGameInvRea" "sage.RejectGameInvReason\"\?\n\023RejectGameIn"
"son\022\022\n\016rejectReasonNo\020\000\022\024\n\020rejectReasonB" "vReason\022\022\n\016rejectReasonNo\020\000\022\024\n\020rejectRea"
"usy\020\001\"\210\001\n\026RejectInvNotifyMessage\022\016\n\006game" "sonBusy\020\001\"\210\001\n\026RejectInvNotifyMessage\022\016\n\006"
"Id\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\022L\n\022playerReje" "gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\022L\n\022player"
"ctReason\030\003 \002(\01620.RejectGameInvitationMes" "RejectReason\030\003 \002(\01620.RejectGameInvitatio"
"sage.RejectGameInvReason\"\262\001\n\021StartEventM" "nMessage.RejectGameInvReason\"\262\001\n\021StartEv"
"essage\022\016\n\006gameId\030\001 \002(\r\0229\n\016startEventType" "entMessage\022\016\n\006gameId\030\001 \002(\r\0229\n\016startEvent"
"\030\002 \002(\0162!.StartEventMessage.StartEventTyp" "Type\030\002 \002(\0162!.StartEventMessage.StartEven"
"e\022\037\n\027fillWithComputerPlayers\030\003 \001(\010\"1\n\016St" "tType\022\037\n\027fillWithComputerPlayers\030\003 \001(\010\"1"
"artEventType\022\016\n\nstartEvent\020\000\022\017\n\013rejoinEv" "\n\016StartEventType\022\016\n\nstartEvent\020\000\022\017\n\013rejo"
"ent\020\001\"&\n\024StartEventAckMessage\022\016\n\006gameId\030" "inEvent\020\001\"&\n\024StartEventAckMessage\022\016\n\006gam"
"\001 \002(\r\"_\n\027GameStartInitialMessage\022\016\n\006game" "eId\030\001 \002(\r\"_\n\027GameStartInitialMessage\022\016\n\006"
"Id\030\001 \002(\r\022\033\n\023startDealerPlayerId\030\002 \002(\r\022\027\n" "gameId\030\001 \002(\r\022\033\n\023startDealerPlayerId\030\002 \002("
"\013playerSeats\030\003 \003(\rB\002\020\001\"\325\001\n\026GameStartRejo" "\r\022\027\n\013playerSeats\030\003 \003(\rB\002\020\001\"\325\001\n\026GameStart"
"inMessage\022\016\n\006gameId\030\001 \002(\r\022\033\n\023startDealer" "RejoinMessage\022\016\n\006gameId\030\001 \002(\r\022\033\n\023startDe"
"PlayerId\030\002 \002(\r\022\017\n\007handNum\030\003 \002(\r\022B\n\020rejoi" "alerPlayerId\030\002 \002(\r\022\017\n\007handNum\030\003 \002(\r\022B\n\020r"
"nPlayerData\030\004 \003(\0132(.GameStartRejoinMessa" "ejoinPlayerData\030\004 \003(\0132(.GameStartRejoinM"
"ge.RejoinPlayerData\0329\n\020RejoinPlayerData\022" "essage.RejoinPlayerData\0329\n\020RejoinPlayerD"
"\020\n\010playerId\030\001 \002(\r\022\023\n\013playerMoney\030\002 \002(\r\"\333" "ata\022\020\n\010playerId\030\001 \002(\r\022\023\n\013playerMoney\030\002 \002"
"\001\n\020HandStartMessage\022\016\n\006gameId\030\001 \002(\r\0220\n\np" "(\r\"\333\001\n\020HandStartMessage\022\016\n\006gameId\030\001 \002(\r\022"
"lainCards\030\002 \001(\0132\034.HandStartMessage.Plain" "0\n\nplainCards\030\002 \001(\0132\034.HandStartMessage.P"
"Cards\022\026\n\016encryptedCards\030\003 \001(\014\022\022\n\nsmallBl" "lainCards\022\026\n\016encryptedCards\030\003 \001(\014\022\022\n\nsma"
"ind\030\004 \002(\r\022#\n\nseatStates\030\005 \003(\0162\017.NetPlaye" "llBlind\030\004 \002(\r\022#\n\nseatStates\030\005 \003(\0162\017.NetP"
"rState\0324\n\nPlainCards\022\022\n\nplainCard1\030\001 \002(\r" "layerState\0324\n\nPlainCards\022\022\n\nplainCard1\030\001"
"\022\022\n\nplainCard2\030\002 \002(\r\"X\n\022PlayersTurnMessa" " \002(\r\022\022\n\nplainCard2\030\002 \002(\r\"X\n\022PlayersTurnM"
"ge\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\022 \n\t" "essage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r"
"gameState\030\003 \002(\0162\r.NetGameState\"\226\001\n\026MyAct" "\022 \n\tgameState\030\003 \002(\0162\r.NetGameState\"\226\001\n\026M"
"ionRequestMessage\022\016\n\006gameId\030\001 \002(\r\022\017\n\007han" "yActionRequestMessage\022\016\n\006gameId\030\001 \002(\r\022\017\n"
"dNum\030\002 \002(\r\022 \n\tgameState\030\003 \002(\0162\r.NetGameS" "\007handNum\030\002 \002(\r\022 \n\tgameState\030\003 \002(\0162\r.NetG"
"tate\022\"\n\010myAction\030\004 \002(\0162\020.NetPlayerAction" "ameState\022\"\n\010myAction\030\004 \002(\0162\020.NetPlayerAc"
"\022\025\n\rmyRelativeBet\030\005 \002(\r\"\271\002\n\031YourActionRe" "tion\022\025\n\rmyRelativeBet\030\005 \002(\r\"\271\002\n\031YourActi"
"jectedMessage\022\016\n\006gameId\030\001 \002(\r\022 \n\tgameSta" "onRejectedMessage\022\016\n\006gameId\030\001 \002(\r\022 \n\tgam"
"te\030\002 \002(\0162\r.NetGameState\022$\n\nyourAction\030\003 " "eState\030\002 \002(\0162\r.NetGameState\022$\n\nyourActio"
"\002(\0162\020.NetPlayerAction\022\027\n\017yourRelativeBet" "n\030\003 \002(\0162\020.NetPlayerAction\022\027\n\017yourRelativ"
"\030\004 \002(\r\022C\n\017rejectionReason\030\005 \002(\0162*.YourAc" "eBet\030\004 \002(\r\022C\n\017rejectionReason\030\005 \002(\0162*.Yo"
"tionRejectedMessage.RejectionReason\"f\n\017R" "urActionRejectedMessage.RejectionReason\""
"ejectionReason\022\034\n\030rejectedInvalidGameSta" "f\n\017RejectionReason\022\034\n\030rejectedInvalidGam"
"te\020\001\022\027\n\023rejectedNotYourTurn\020\002\022\034\n\030rejecte" "eState\020\001\022\027\n\023rejectedNotYourTurn\020\002\022\034\n\030rej"
"dActionNotAllowed\020\003\"\335\001\n\030PlayersActionDon" "ectedActionNotAllowed\020\003\"\335\001\n\030PlayersActio"
"eMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002" "nDoneMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId"
"(\r\022 \n\tgameState\030\003 \002(\0162\r.NetGameState\022&\n\014" "\030\002 \002(\r\022 \n\tgameState\030\003 \002(\0162\r.NetGameState"
"playerAction\030\004 \002(\0162\020.NetPlayerAction\022\026\n\016" "\022&\n\014playerAction\030\004 \002(\0162\020.NetPlayerAction"
"totalPlayerBet\030\005 \002(\r\022\023\n\013playerMoney\030\006 \002(" "\022\026\n\016totalPlayerBet\030\005 \002(\r\022\023\n\013playerMoney\030"
"\r\022\022\n\nhighestSet\030\007 \002(\r\022\024\n\014minimumRaise\030\010 " "\006 \002(\r\022\022\n\nhighestSet\030\007 \002(\r\022\024\n\014minimumRais"
"\002(\r\"_\n\024DealFlopCardsMessage\022\016\n\006gameId\030\001 " "e\030\010 \002(\r\"_\n\024DealFlopCardsMessage\022\016\n\006gameI"
"\002(\r\022\021\n\tflopCard1\030\002 \002(\r\022\021\n\tflopCard2\030\003 \002(" "d\030\001 \002(\r\022\021\n\tflopCard1\030\002 \002(\r\022\021\n\tflopCard2\030"
"\r\022\021\n\tflopCard3\030\004 \002(\r\"7\n\023DealTurnCardMess" "\003 \002(\r\022\021\n\tflopCard3\030\004 \002(\r\"7\n\023DealTurnCard"
"age\022\016\n\006gameId\030\001 \002(\r\022\020\n\010turnCard\030\002 \002(\r\"9\n" "Message\022\016\n\006gameId\030\001 \002(\r\022\020\n\010turnCard\030\002 \002("
"\024DealRiverCardMessage\022\016\n\006gameId\030\001 \002(\r\022\021\n" "\r\"9\n\024DealRiverCardMessage\022\016\n\006gameId\030\001 \002("
"\triverCard\030\002 \002(\r\"\252\001\n\025AllInShowCardsMessa" "\r\022\021\n\triverCard\030\002 \002(\r\"\252\001\n\025AllInShowCardsM"
"ge\022\016\n\006gameId\030\001 \002(\r\0228\n\014playersAllIn\030\002 \003(\013" "essage\022\016\n\006gameId\030\001 \002(\r\0228\n\014playersAllIn\030\002"
"2\".AllInShowCardsMessage.PlayerAllIn\032G\n\013" " \003(\0132\".AllInShowCardsMessage.PlayerAllIn"
"PlayerAllIn\022\020\n\010playerId\030\001 \002(\r\022\022\n\nallInCa" "\032G\n\013PlayerAllIn\022\020\n\010playerId\030\001 \002(\r\022\022\n\nall"
"rd1\030\002 \002(\r\022\022\n\nallInCard2\030\003 \002(\r\"Q\n\031EndOfHa" "InCard1\030\002 \002(\r\022\022\n\nallInCard2\030\003 \002(\r\"Q\n\031End"
"ndShowCardsMessage\022\016\n\006gameId\030\001 \002(\r\022$\n\rpl" "OfHandShowCardsMessage\022\016\n\006gameId\030\001 \002(\r\022$"
"ayerResults\030\002 \003(\0132\r.PlayerResult\"d\n\031EndO" "\n\rplayerResults\030\002 \003(\0132\r.PlayerResult\"d\n\031"
"fHandHideCardsMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n" "EndOfHandHideCardsMessage\022\016\n\006gameId\030\001 \002("
"\010playerId\030\002 \002(\r\022\020\n\010moneyWon\030\003 \002(\r\022\023\n\013pla" "\r\022\020\n\010playerId\030\002 \002(\r\022\020\n\010moneyWon\030\003 \002(\r\022\023\n"
"yerMoney\030\004 \002(\r\"\033\n\031ShowMyCardsRequestMess" "\013playerMoney\030\004 \002(\r\"\033\n\031ShowMyCardsRequest"
"age\"@\n\031AfterHandShowCardsMessage\022#\n\014play" "Message\"@\n\031AfterHandShowCardsMessage\022#\n\014"
"erResult\030\001 \002(\0132\r.PlayerResult\":\n\020EndOfGa" "playerResult\030\001 \002(\0132\r.PlayerResult\":\n\020End"
"meMessage\022\016\n\006gameId\030\001 \002(\r\022\026\n\016winnerPlaye" "OfGameMessage\022\016\n\006gameId\030\001 \002(\r\022\026\n\016winnerP"
"rId\030\002 \002(\r\"B\n\026PlayerIdChangedMessage\022\023\n\013o" "layerId\030\002 \002(\r\"B\n\026PlayerIdChangedMessage\022"
"ldPlayerId\030\001 \002(\r\022\023\n\013newPlayerId\030\002 \002(\r\"8\n" "\023\n\013oldPlayerId\030\001 \002(\r\022\023\n\013newPlayerId\030\002 \002("
"\024AskKickPlayerMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n" "\r\"8\n\024AskKickPlayerMessage\022\016\n\006gameId\030\001 \002("
"\010playerId\030\002 \002(\r\"\247\002\n\024AskKickDeniedMessage" "\r\022\020\n\010playerId\030\002 \002(\r\"\247\002\n\024AskKickDeniedMes"
"\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\022@\n\020ki" "sage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\022@"
"ckDeniedReason\030\003 \002(\0162&.AskKickDeniedMess" "\n\020kickDeniedReason\030\003 \002(\0162&.AskKickDenied"
"age.KickDeniedReason\"\252\001\n\020KickDeniedReaso" "Message.KickDeniedReason\"\252\001\n\020KickDeniedR"
"n\022\036\n\032kickDeniedInvalidGameState\020\000\022\031\n\025kic" "eason\022\036\n\032kickDeniedInvalidGameState\020\000\022\031\n"
"kDeniedNotPossible\020\001\022\033\n\027kickDeniedTryAga" "\025kickDeniedNotPossible\020\001\022\033\n\027kickDeniedTr"
"inLater\020\002\022\037\n\033kickDeniedAlreadyInProgress" "yAgainLater\020\002\022\037\n\033kickDeniedAlreadyInProg"
"\020\003\022\035\n\031kickDeniedInvalidPlayerId\020\004\"\245\001\n\030St" "ress\020\003\022\035\n\031kickDeniedInvalidPlayerId\020\004\"\245\001"
"artKickPetitionMessage\022\016\n\006gameId\030\001 \002(\r\022\022" "\n\030StartKickPetitionMessage\022\016\n\006gameId\030\001 \002"
"\n\npetitionId\030\002 \002(\r\022\031\n\021proposingPlayerId\030" "(\r\022\022\n\npetitionId\030\002 \002(\r\022\031\n\021proposingPlaye"
"\003 \002(\r\022\024\n\014kickPlayerId\030\004 \002(\r\022\026\n\016kickTimeo" "rId\030\003 \002(\r\022\024\n\014kickPlayerId\030\004 \002(\r\022\026\n\016kickT"
"utSec\030\005 \002(\r\022\034\n\024numVotesNeededToKick\030\006 \002(" "imeoutSec\030\005 \002(\r\022\034\n\024numVotesNeededToKick\030"
"\r\"N\n\026VoteKickRequestMessage\022\016\n\006gameId\030\001 " "\006 \002(\r\"N\n\026VoteKickRequestMessage\022\016\n\006gameI"
"\002(\r\022\022\n\npetitionId\030\002 \002(\r\022\020\n\010voteKick\030\003 \002(" "d\030\001 \002(\r\022\022\n\npetitionId\030\002 \002(\r\022\020\n\010voteKick\030"
"\010\"\337\001\n\024VoteKickReplyMessage\022\016\n\006gameId\030\001 \002" "\003 \002(\010\"\337\001\n\024VoteKickReplyMessage\022\016\n\006gameId"
"(\r\022\022\n\npetitionId\030\002 \002(\r\022B\n\021voteKickReplyT" "\030\001 \002(\r\022\022\n\npetitionId\030\002 \002(\r\022B\n\021voteKickRe"
"ype\030\003 \002(\0162\'.VoteKickReplyMessage.VoteKic" "plyType\030\003 \002(\0162\'.VoteKickReplyMessage.Vot"
"kReplyType\"_\n\021VoteKickReplyType\022\017\n\013voteK" "eKickReplyType\"_\n\021VoteKickReplyType\022\017\n\013v"
"ickAck\020\000\022\031\n\025voteKickDeniedInvalid\020\001\022\036\n\032v" "oteKickAck\020\000\022\031\n\025voteKickDeniedInvalid\020\001\022"
"oteKickDeniedAlreadyVoted\020\002\"\240\001\n\031KickPeti" "\036\n\032voteKickDeniedAlreadyVoted\020\002\"\240\001\n\031Kick"
"tionUpdateMessage\022\016\n\006gameId\030\001 \002(\r\022\022\n\npet" "PetitionUpdateMessage\022\016\n\006gameId\030\001 \002(\r\022\022\n"
"itionId\030\002 \002(\r\022\036\n\026numVotesAgainstKicking\030" "\npetitionId\030\002 \002(\r\022\036\n\026numVotesAgainstKick"
"\003 \002(\r\022!\n\031numVotesInFavourOfKicking\030\004 \002(\r" "ing\030\003 \002(\r\022!\n\031numVotesInFavourOfKicking\030\004"
"\022\034\n\024numVotesNeededToKick\030\005 \002(\r\"\344\002\n\026EndKi" " \002(\r\022\034\n\024numVotesNeededToKick\030\005 \002(\r\"\344\002\n\026E"
"ckPetitionMessage\022\016\n\006gameId\030\001 \002(\r\022\022\n\npet" "ndKickPetitionMessage\022\016\n\006gameId\030\001 \002(\r\022\022\n"
"itionId\030\002 \002(\r\022\036\n\026numVotesAgainstKicking\030" "\npetitionId\030\002 \002(\r\022\036\n\026numVotesAgainstKick"
"\003 \002(\r\022!\n\031numVotesInFavourOfKicking\030\004 \002(\r" "ing\030\003 \002(\r\022!\n\031numVotesInFavourOfKicking\030\004"
"\022\032\n\022resultPlayerKicked\030\005 \002(\r\022D\n\021petition" " \002(\r\022\032\n\022resultPlayerKicked\030\005 \002(\r\022D\n\021peti"
"EndReason\030\006 \002(\0162).EndKickPetitionMessage" "tionEndReason\030\006 \002(\0162).EndKickPetitionMes"
".PetitionEndReason\"\200\001\n\021PetitionEndReason" "sage.PetitionEndReason\"\200\001\n\021PetitionEndRe"
"\022\032\n\026petitionEndEnoughVotes\020\000\022\034\n\030petition" "ason\022\032\n\026petitionEndEnoughVotes\020\000\022\034\n\030peti"
"EndTooFewPlayers\020\001\022\031\n\025petitionEndPlayerL" "tionEndTooFewPlayers\020\001\022\031\n\025petitionEndPla"
"eft\020\002\022\026\n\022petitionEndTimeout\020\003\"\357\001\n\021Statis" "yerLeft\020\002\022\026\n\022petitionEndTimeout\020\003\"\357\001\n\021St"
"ticsMessage\0229\n\016statisticsData\030\001 \003(\0132!.St" "atisticsMessage\0229\n\016statisticsData\030\001 \003(\0132"
"atisticsMessage.StatisticsData\032\236\001\n\016Stati" "!.StatisticsMessage.StatisticsData\032\236\001\n\016S"
"sticsData\022H\n\016statisticsType\030\001 \002(\01620.Stat" "tatisticsData\022H\n\016statisticsType\030\001 \002(\01620."
"isticsMessage.StatisticsData.StatisticsT" "StatisticsMessage.StatisticsData.Statist"
"ype\022\027\n\017statisticsValue\030\002 \002(\r\")\n\016Statisti" "icsType\022\027\n\017statisticsValue\030\002 \002(\r\")\n\016Stat"
"csType\022\027\n\023statNumberOfPlayers\020\001\"T\n\022ChatR" "isticsType\022\027\n\023statNumberOfPlayers\020\001\"T\n\022C"
"equestMessage\022\024\n\014targetGameId\030\001 \001(\r\022\026\n\016t" "hatRequestMessage\022\024\n\014targetGameId\030\001 \001(\r\022"
"argetPlayerId\030\002 \001(\r\022\020\n\010chatText\030\003 \002(\t\"\330\001" "\026\n\016targetPlayerId\030\002 \001(\r\022\020\n\010chatText\030\003 \002("
"\n\013ChatMessage\022\016\n\006gameId\030\001 \001(\r\022\020\n\010playerI" "\t\"\330\001\n\013ChatMessage\022\016\n\006gameId\030\001 \001(\r\022\020\n\010pla"
"d\030\002 \001(\r\022\'\n\010chatType\030\003 \002(\0162\025.ChatMessage." "yerId\030\002 \001(\r\022\'\n\010chatType\030\003 \002(\0162\025.ChatMess"
"ChatType\022\020\n\010chatText\030\004 \002(\t\"l\n\010ChatType\022\021" "age.ChatType\022\020\n\010chatText\030\004 \002(\t\"l\n\010ChatTy"
"\n\rchatTypeLobby\020\000\022\020\n\014chatTypeGame\020\001\022\017\n\013c" "pe\022\021\n\rchatTypeLobby\020\000\022\020\n\014chatTypeGame\020\001\022"
"hatTypeBot\020\002\022\025\n\021chatTypeBroadcast\020\003\022\023\n\017c" "\017\n\013chatTypeBot\020\002\022\025\n\021chatTypeBroadcast\020\003\022"
"hatTypePrivate\020\004\"%\n\021ChatRejectMessage\022\020\n" "\023\n\017chatTypePrivate\020\004\"%\n\021ChatRejectMessag"
"\010chatText\030\001 \002(\t\")\n\rDialogMessage\022\030\n\020noti" "e\022\020\n\010chatText\030\001 \002(\t\")\n\rDialogMessage\022\030\n\020"
"ficationText\030\001 \002(\t\"\321\001\n\025TimeoutWarningMes" "notificationText\030\001 \002(\t\"\321\001\n\025TimeoutWarnin"
"sage\022;\n\rtimeoutReason\030\001 \002(\0162$.TimeoutWar" "gMessage\022;\n\rtimeoutReason\030\001 \002(\0162$.Timeou"
"ningMessage.TimeoutReason\022\030\n\020remainingSe" "tWarningMessage.TimeoutReason\022\030\n\020remaini"
"conds\030\002 \002(\r\"a\n\rTimeoutReason\022\031\n\025timeoutN" "ngSeconds\030\002 \002(\r\"a\n\rTimeoutReason\022\031\n\025time"
"oDataReceived\020\000\022\027\n\023timeoutInactiveGame\020\001" "outNoDataReceived\020\000\022\027\n\023timeoutInactiveGa"
"\022\034\n\030timeoutKickAfterAutofold\020\002\"\025\n\023ResetT" "me\020\001\022\034\n\030timeoutKickAfterAutofold\020\002\"\025\n\023Re"
"imeoutMessage\"K\n\023ReportAvatarMessage\022\030\n\020" "setTimeoutMessage\"K\n\023ReportAvatarMessage"
"reportedPlayerId\030\001 \002(\r\022\032\n\022reportedAvatar" "\022\030\n\020reportedPlayerId\030\001 \002(\r\022\032\n\022reportedAv"
"Hash\030\002 \002(\014\"\336\001\n\026ReportAvatarAckMessage\022\030\n" "atarHash\030\002 \002(\014\"\336\001\n\026ReportAvatarAckMessag"
"\020reportedPlayerId\030\001 \002(\r\022F\n\022reportAvatarR" "e\022\030\n\020reportedPlayerId\030\001 \002(\r\022F\n\022reportAva"
"esult\030\002 \002(\0162*.ReportAvatarAckMessage.Rep" "tarResult\030\002 \002(\0162*.ReportAvatarAckMessage"
"ortAvatarResult\"b\n\022ReportAvatarResult\022\030\n" ".ReportAvatarResult\"b\n\022ReportAvatarResul"
"\024avatarReportAccepted\020\000\022\031\n\025avatarReportD" "t\022\030\n\024avatarReportAccepted\020\000\022\031\n\025avatarRep"
"uplicate\020\001\022\027\n\023avatarReportInvalid\020\002\"+\n\021R" "ortDuplicate\020\001\022\027\n\023avatarReportInvalid\020\002\""
"eportGameMessage\022\026\n\016reportedGameId\030\001 \002(\r" "+\n\021ReportGameMessage\022\026\n\016reportedGameId\030\001"
"\"\314\001\n\024ReportGameAckMessage\022\026\n\016reportedGam" " \002(\r\"\314\001\n\024ReportGameAckMessage\022\026\n\016reporte"
"eId\030\001 \002(\r\022@\n\020reportGameResult\030\002 \002(\0162&.Re" "dGameId\030\001 \002(\r\022@\n\020reportGameResult\030\002 \002(\0162"
"portGameAckMessage.ReportGameResult\"Z\n\020R" "&.ReportGameAckMessage.ReportGameResult\""
"eportGameResult\022\026\n\022gameReportAccepted\020\000\022" "Z\n\020ReportGameResult\022\026\n\022gameReportAccepte"
"\027\n\023gameReportDuplicate\020\001\022\025\n\021gameReportIn" "d\020\000\022\027\n\023gameReportDuplicate\020\001\022\025\n\021gameRepo"
"valid\020\002\"\220\003\n\014ErrorMessage\022.\n\013errorReason\030" "rtInvalid\020\002\"\220\003\n\014ErrorMessage\022.\n\013errorRea"
"\001 \002(\0162\031.ErrorMessage.ErrorReason\"\317\002\n\013Err" "son\030\001 \002(\0162\031.ErrorMessage.ErrorReason\"\317\002\n"
"orReason\022\014\n\010reserved\020\000\022\033\n\027initVersionNot" "\013ErrorReason\022\014\n\010reserved\020\000\022\033\n\027initVersio"
"Supported\020\001\022\022\n\016initServerFull\020\002\022\023\n\017initA" "nNotSupported\020\001\022\022\n\016initServerFull\020\002\022\023\n\017i"
"uthFailure\020\003\022\027\n\023initPlayerNameInUse\020\004\022\031\n" "nitAuthFailure\020\003\022\027\n\023initPlayerNameInUse\020"
"\025initInvalidPlayerName\020\005\022\031\n\025initServerMa" "\004\022\031\n\025initInvalidPlayerName\020\005\022\031\n\025initServ"
"intenance\020\006\022\017\n\013initBlocked\020\007\022\022\n\016avatarTo" "erMaintenance\020\006\022\017\n\013initBlocked\020\007\022\022\n\016avat"
"oLarge\020\010\022\021\n\rinvalidPacket\020\t\022\020\n\014invalidSt" "arTooLarge\020\010\022\021\n\rinvalidPacket\020\t\022\020\n\014inval"
"ate\020\n\022\024\n\020kickedFromServer\020\013\022\024\n\020bannedFro" "idState\020\n\022\024\n\020kickedFromServer\020\013\022\024\n\020banne"
"mServer\020\014\022\023\n\017blockedByServer\020\r\022\022\n\016sessio" "dFromServer\020\014\022\023\n\017blockedByServer\020\r\022\022\n\016se"
"nTimeout\020\016\"\3771\n\016PokerTHMessage\0227\n\013message" "ssionTimeout\020\016\"\3771\n\016PokerTHMessage\0227\n\013mes"
"Type\030\001 \002(\0162\".PokerTHMessage.PokerTHMessa" "sageType\030\001 \002(\0162\".PokerTHMessage.PokerTHM"
"geType\022)\n\017announceMessage\030\002 \001(\0132\020.Announ" "essageType\022)\n\017announceMessage\030\002 \001(\0132\020.An"
"ceMessage\022!\n\013initMessage\030\003 \001(\0132\014.InitMes" "nounceMessage\022!\n\013initMessage\030\003 \001(\0132\014.Ini"
"sage\022\?\n\032authServerChallengeMessage\030\004 \001(\013" "tMessage\022\?\n\032authServerChallengeMessage\030\004"
"2\033.AuthServerChallengeMessage\022=\n\031authCli" " \001(\0132\033.AuthServerChallengeMessage\022=\n\031aut"
"entResponseMessage\030\005 \001(\0132\032.AuthClientRes" "hClientResponseMessage\030\005 \001(\0132\032.AuthClien"
"ponseMessage\022E\n\035authServerVerificationMe" "tResponseMessage\022E\n\035authServerVerificati"
"ssage\030\006 \001(\0132\036.AuthServerVerificationMess" "onMessage\030\006 \001(\0132\036.AuthServerVerification"
"age\022\'\n\016initAckMessage\030\007 \001(\0132\017.InitAckMes" "Message\022\'\n\016initAckMessage\030\007 \001(\0132\017.InitAc"
"sage\0223\n\024avatarRequestMessage\030\010 \001(\0132\025.Ava" "kMessage\0223\n\024avatarRequestMessage\030\010 \001(\0132\025"
"tarRequestMessage\0221\n\023avatarHeaderMessage" ".AvatarRequestMessage\0221\n\023avatarHeaderMes"
"\030\t \001(\0132\024.AvatarHeaderMessage\022-\n\021avatarDa" "sage\030\t \001(\0132\024.AvatarHeaderMessage\022-\n\021avat"
"taMessage\030\n \001(\0132\022.AvatarDataMessage\022+\n\020a" "arDataMessage\030\n \001(\0132\022.AvatarDataMessage\022"
"vatarEndMessage\030\013 \001(\0132\021.AvatarEndMessage" "+\n\020avatarEndMessage\030\013 \001(\0132\021.AvatarEndMes"
"\0223\n\024unknownAvatarMessage\030\014 \001(\0132\025.Unknown" "sage\0223\n\024unknownAvatarMessage\030\014 \001(\0132\025.Unk"
"AvatarMessage\022-\n\021playerListMessage\030\r \001(\013" "nownAvatarMessage\022-\n\021playerListMessage\030\r"
"2\022.PlayerListMessage\022/\n\022gameListNewMessa" " \001(\0132\022.PlayerListMessage\022/\n\022gameListNewM"
"ge\030\016 \001(\0132\023.GameListNewMessage\0225\n\025gameLis" "essage\030\016 \001(\0132\023.GameListNewMessage\0225\n\025gam"
"tUpdateMessage\030\017 \001(\0132\026.GameListUpdateMes" "eListUpdateMessage\030\017 \001(\0132\026.GameListUpdat"
"sage\022A\n\033gameListPlayerJoinedMessage\030\020 \001(" "eMessage\022A\n\033gameListPlayerJoinedMessage\030"
"\0132\034.GameListPlayerJoinedMessage\022=\n\031gameL" "\020 \001(\0132\034.GameListPlayerJoinedMessage\022=\n\031g"
"istPlayerLeftMessage\030\021 \001(\0132\032.GameListPla" "ameListPlayerLeftMessage\030\021 \001(\0132\032.GameLis"
"yerLeftMessage\022A\n\033gameListAdminChangedMe" "tPlayerLeftMessage\022A\n\033gameListAdminChang"
"ssage\030\022 \001(\0132\034.GameListAdminChangedMessag" "edMessage\030\022 \001(\0132\034.GameListAdminChangedMe"
"e\022;\n\030playerInfoRequestMessage\030\023 \001(\0132\031.Pl" "ssage\022;\n\030playerInfoRequestMessage\030\023 \001(\0132"
"ayerInfoRequestMessage\0227\n\026playerInfoRepl" "\031.PlayerInfoRequestMessage\0227\n\026playerInfo"
"yMessage\030\024 \001(\0132\027.PlayerInfoReplyMessage\022" "ReplyMessage\030\024 \001(\0132\027.PlayerInfoReplyMess"
"\?\n\032subscriptionRequestMessage\030\025 \001(\0132\033.Su" "age\022\?\n\032subscriptionRequestMessage\030\025 \001(\0132"
"bscriptionRequestMessage\0229\n\027joinExisting" "\033.SubscriptionRequestMessage\0229\n\027joinExis"
"GameMessage\030\026 \001(\0132\030.JoinExistingGameMess" "tingGameMessage\030\026 \001(\0132\030.JoinExistingGame"
"age\022/\n\022joinNewGameMessage\030\027 \001(\0132\023.JoinNe" "Message\022/\n\022joinNewGameMessage\030\027 \001(\0132\023.Jo"
"wGameMessage\022=\n\031rejoinExistingGameMessag" "inNewGameMessage\022=\n\031rejoinExistingGameMe"
"e\030\030 \001(\0132\032.RejoinExistingGameMessage\022/\n\022j" "ssage\030\030 \001(\0132\032.RejoinExistingGameMessage\022"
"oinGameAckMessage\030\031 \001(\0132\023.JoinGameAckMes" "/\n\022joinGameAckMessage\030\031 \001(\0132\023.JoinGameAc"
"sage\0225\n\025joinGameFailedMessage\030\032 \001(\0132\026.Jo" "kMessage\0225\n\025joinGameFailedMessage\030\032 \001(\0132"
"inGameFailedMessage\0229\n\027gamePlayerJoinedM" "\026.JoinGameFailedMessage\0229\n\027gamePlayerJoi"
"essage\030\033 \001(\0132\030.GamePlayerJoinedMessage\0225" "nedMessage\030\033 \001(\0132\030.GamePlayerJoinedMessa"
"\n\025gamePlayerLeftMessage\030\034 \001(\0132\026.GamePlay" "ge\0225\n\025gamePlayerLeftMessage\030\034 \001(\0132\026.Game"
"erLeftMessage\0229\n\027gameAdminChangedMessage" "PlayerLeftMessage\0229\n\027gameAdminChangedMes"
"\030\035 \001(\0132\030.GameAdminChangedMessage\0227\n\026remo" "sage\030\035 \001(\0132\030.GameAdminChangedMessage\0227\n\026"
"vedFromGameMessage\030\036 \001(\0132\027.RemovedFromGa" "removedFromGameMessage\030\036 \001(\0132\027.RemovedFr"
"meMessage\022;\n\030kickPlayerRequestMessage\030\037 " "omGameMessage\022;\n\030kickPlayerRequestMessag"
"\001(\0132\031.KickPlayerRequestMessage\0229\n\027leaveG" "e\030\037 \001(\0132\031.KickPlayerRequestMessage\0229\n\027le"
"ameRequestMessage\030 \001(\0132\030.LeaveGameReque" "aveGameRequestMessage\030 \001(\0132\030.LeaveGameR"
"stMessage\022=\n\031invitePlayerToGameMessage\030!" "equestMessage\022=\n\031invitePlayerToGameMessa"
" \001(\0132\032.InvitePlayerToGameMessage\0221\n\023invi" "ge\030! \001(\0132\032.InvitePlayerToGameMessage\0221\n\023"
"teNotifyMessage\030\" \001(\0132\024.InviteNotifyMess" "inviteNotifyMessage\030\" \001(\0132\024.InviteNotify"
"age\022A\n\033rejectGameInvitationMessage\030# \001(\013" "Message\022A\n\033rejectGameInvitationMessage\030#"
"2\034.RejectGameInvitationMessage\0227\n\026reject" " \001(\0132\034.RejectGameInvitationMessage\0227\n\026re"
"InvNotifyMessage\030$ \001(\0132\027.RejectInvNotify" "jectInvNotifyMessage\030$ \001(\0132\027.RejectInvNo"
"Message\022-\n\021startEventMessage\030% \001(\0132\022.Sta" "tifyMessage\022-\n\021startEventMessage\030% \001(\0132\022"
"rtEventMessage\0223\n\024startEventAckMessage\030&" ".StartEventMessage\0223\n\024startEventAckMessa"
" \001(\0132\025.StartEventAckMessage\0229\n\027gameStart" "ge\030& \001(\0132\025.StartEventAckMessage\0229\n\027gameS"
"InitialMessage\030\' \001(\0132\030.GameStartInitialM" "tartInitialMessage\030\' \001(\0132\030.GameStartInit"
"essage\0227\n\026gameStartRejoinMessage\030( \001(\0132\027" "ialMessage\0227\n\026gameStartRejoinMessage\030( \001"
".GameStartRejoinMessage\022+\n\020handStartMess" "(\0132\027.GameStartRejoinMessage\022+\n\020handStart"
"age\030) \001(\0132\021.HandStartMessage\022/\n\022playersT" "Message\030) \001(\0132\021.HandStartMessage\022/\n\022play"
"urnMessage\030* \001(\0132\023.PlayersTurnMessage\0227\n" "ersTurnMessage\030* \001(\0132\023.PlayersTurnMessag"
"\026myActionRequestMessage\030+ \001(\0132\027.MyAction" "e\0227\n\026myActionRequestMessage\030+ \001(\0132\027.MyAc"
"RequestMessage\022=\n\031yourActionRejectedMess" "tionRequestMessage\022=\n\031yourActionRejected"
"age\030, \001(\0132\032.YourActionRejectedMessage\022;\n" "Message\030, \001(\0132\032.YourActionRejectedMessag"
"\030playersActionDoneMessage\030- \001(\0132\031.Player" "e\022;\n\030playersActionDoneMessage\030- \001(\0132\031.Pl"
"sActionDoneMessage\0223\n\024dealFlopCardsMessa" "ayersActionDoneMessage\0223\n\024dealFlopCardsM"
"ge\030. \001(\0132\025.DealFlopCardsMessage\0221\n\023dealT" "essage\030. \001(\0132\025.DealFlopCardsMessage\0221\n\023d"
"urnCardMessage\030/ \001(\0132\024.DealTurnCardMessa" "ealTurnCardMessage\030/ \001(\0132\024.DealTurnCardM"
"ge\0223\n\024dealRiverCardMessage\0300 \001(\0132\025.DealR" "essage\0223\n\024dealRiverCardMessage\0300 \001(\0132\025.D"
"iverCardMessage\0225\n\025allInShowCardsMessage" "ealRiverCardMessage\0225\n\025allInShowCardsMes"
"\0301 \001(\0132\026.AllInShowCardsMessage\022=\n\031endOfH" "sage\0301 \001(\0132\026.AllInShowCardsMessage\022=\n\031en"
"andShowCardsMessage\0302 \001(\0132\032.EndOfHandSho" "dOfHandShowCardsMessage\0302 \001(\0132\032.EndOfHan"
"wCardsMessage\022=\n\031endOfHandHideCardsMessa" "dShowCardsMessage\022=\n\031endOfHandHideCardsM"
"ge\0303 \001(\0132\032.EndOfHandHideCardsMessage\022=\n\031" "essage\0303 \001(\0132\032.EndOfHandHideCardsMessage"
"showMyCardsRequestMessage\0304 \001(\0132\032.ShowMy" "\022=\n\031showMyCardsRequestMessage\0304 \001(\0132\032.Sh"
"CardsRequestMessage\022=\n\031afterHandShowCard" "owMyCardsRequestMessage\022=\n\031afterHandShow"
"sMessage\0305 \001(\0132\032.AfterHandShowCardsMessa" "CardsMessage\0305 \001(\0132\032.AfterHandShowCardsM"
"ge\022+\n\020endOfGameMessage\0306 \001(\0132\021.EndOfGame" "essage\022+\n\020endOfGameMessage\0306 \001(\0132\021.EndOf"
"Message\0227\n\026playerIdChangedMessage\0307 \001(\0132" "GameMessage\0227\n\026playerIdChangedMessage\0307 "
"\027.PlayerIdChangedMessage\0223\n\024askKickPlaye" "\001(\0132\027.PlayerIdChangedMessage\0223\n\024askKickP"
"rMessage\0308 \001(\0132\025.AskKickPlayerMessage\0223\n" "layerMessage\0308 \001(\0132\025.AskKickPlayerMessag"
"\024askKickDeniedMessage\0309 \001(\0132\025.AskKickDen" "e\0223\n\024askKickDeniedMessage\0309 \001(\0132\025.AskKic"
"iedMessage\022;\n\030startKickPetitionMessage\030:" "kDeniedMessage\022;\n\030startKickPetitionMessa"
" \001(\0132\031.StartKickPetitionMessage\0227\n\026voteK" "ge\030: \001(\0132\031.StartKickPetitionMessage\0227\n\026v"
"ickRequestMessage\030; \001(\0132\027.VoteKickReques" "oteKickRequestMessage\030; \001(\0132\027.VoteKickRe"
"tMessage\0223\n\024voteKickReplyMessage\030< \001(\0132\025" "questMessage\0223\n\024voteKickReplyMessage\030< \001"
".VoteKickReplyMessage\022=\n\031kickPetitionUpd" "(\0132\025.VoteKickReplyMessage\022=\n\031kickPetitio"
"ateMessage\030= \001(\0132\032.KickPetitionUpdateMes" "nUpdateMessage\030= \001(\0132\032.KickPetitionUpdat"
"sage\0227\n\026endKickPetitionMessage\030> \001(\0132\027.E" "eMessage\0227\n\026endKickPetitionMessage\030> \001(\013"
"ndKickPetitionMessage\022-\n\021statisticsMessa" "2\027.EndKickPetitionMessage\022-\n\021statisticsM"
"ge\030\? \001(\0132\022.StatisticsMessage\022/\n\022chatRequ" "essage\030\? \001(\0132\022.StatisticsMessage\022/\n\022chat"
"estMessage\030@ \001(\0132\023.ChatRequestMessage\022!\n" "RequestMessage\030@ \001(\0132\023.ChatRequestMessag"
"\013chatMessage\030A \001(\0132\014.ChatMessage\022-\n\021chat" "e\022!\n\013chatMessage\030A \001(\0132\014.ChatMessage\022-\n\021"
"RejectMessage\030B \001(\0132\022.ChatRejectMessage\022" "chatRejectMessage\030B \001(\0132\022.ChatRejectMess"
"%\n\rdialogMessage\030C \001(\0132\016.DialogMessage\0225" "age\022%\n\rdialogMessage\030C \001(\0132\016.DialogMessa"
"\n\025timeoutWarningMessage\030D \001(\0132\026.TimeoutW" "ge\0225\n\025timeoutWarningMessage\030D \001(\0132\026.Time"
"arningMessage\0221\n\023resetTimeoutMessage\030E \001" "outWarningMessage\0221\n\023resetTimeoutMessage"
"(\0132\024.ResetTimeoutMessage\0221\n\023reportAvatar" "\030E \001(\0132\024.ResetTimeoutMessage\0221\n\023reportAv"
"Message\030F \001(\0132\024.ReportAvatarMessage\0227\n\026r" "atarMessage\030F \001(\0132\024.ReportAvatarMessage\022"
"eportAvatarAckMessage\030G \001(\0132\027.ReportAvat" "7\n\026reportAvatarAckMessage\030G \001(\0132\027.Report"
"arAckMessage\022-\n\021reportGameMessage\030H \001(\0132" "AvatarAckMessage\022-\n\021reportGameMessage\030H "
"\022.ReportGameMessage\0223\n\024reportGameAckMess" "\001(\0132\022.ReportGameMessage\0223\n\024reportGameAck"
"age\030I \001(\0132\025.ReportGameAckMessage\022#\n\014erro" "Message\030I \001(\0132\025.ReportGameAckMessage\022#\n\014"
"rMessage\030J \001(\0132\r.ErrorMessage\"\244\022\n\022PokerT" "errorMessage\030J \001(\0132\r.ErrorMessage\"\244\022\n\022Po"
"HMessageType\022\030\n\024Type_AnnounceMessage\020\001\022\024" "kerTHMessageType\022\030\n\024Type_AnnounceMessage"
"\n\020Type_InitMessage\020\002\022#\n\037Type_AuthServerC" "\020\001\022\024\n\020Type_InitMessage\020\002\022#\n\037Type_AuthSer"
"hallengeMessage\020\003\022\"\n\036Type_AuthClientResp" "verChallengeMessage\020\003\022\"\n\036Type_AuthClient"
"onseMessage\020\004\022&\n\"Type_AuthServerVerifica" "ResponseMessage\020\004\022&\n\"Type_AuthServerVeri"
"tionMessage\020\005\022\027\n\023Type_InitAckMessage\020\006\022\035" "ficationMessage\020\005\022\027\n\023Type_InitAckMessage"
"\n\031Type_AvatarRequestMessage\020\007\022\034\n\030Type_Av" "\020\006\022\035\n\031Type_AvatarRequestMessage\020\007\022\034\n\030Typ"
"atarHeaderMessage\020\010\022\032\n\026Type_AvatarDataMe" "e_AvatarHeaderMessage\020\010\022\032\n\026Type_AvatarDa"
"ssage\020\t\022\031\n\025Type_AvatarEndMessage\020\n\022\035\n\031Ty" "taMessage\020\t\022\031\n\025Type_AvatarEndMessage\020\n\022\035"
"pe_UnknownAvatarMessage\020\013\022\032\n\026Type_Player" "\n\031Type_UnknownAvatarMessage\020\013\022\032\n\026Type_Pl"
"ListMessage\020\014\022\033\n\027Type_GameListNewMessage" "ayerListMessage\020\014\022\033\n\027Type_GameListNewMes"
"\020\r\022\036\n\032Type_GameListUpdateMessage\020\016\022$\n Ty" "sage\020\r\022\036\n\032Type_GameListUpdateMessage\020\016\022$"
"pe_GameListPlayerJoinedMessage\020\017\022\"\n\036Type" "\n Type_GameListPlayerJoinedMessage\020\017\022\"\n\036"
"_GameListPlayerLeftMessage\020\020\022$\n Type_Gam" "Type_GameListPlayerLeftMessage\020\020\022$\n Type"
"eListAdminChangedMessage\020\021\022!\n\035Type_Playe" "_GameListAdminChangedMessage\020\021\022!\n\035Type_P"
"rInfoRequestMessage\020\022\022\037\n\033Type_PlayerInfo" "layerInfoRequestMessage\020\022\022\037\n\033Type_Player"
"ReplyMessage\020\023\022#\n\037Type_SubscriptionReque" "InfoReplyMessage\020\023\022#\n\037Type_SubscriptionR"
"stMessage\020\024\022 \n\034Type_JoinExistingGameMess" "equestMessage\020\024\022 \n\034Type_JoinExistingGame"
"age\020\025\022\033\n\027Type_JoinNewGameMessage\020\026\022\"\n\036Ty" "Message\020\025\022\033\n\027Type_JoinNewGameMessage\020\026\022\""
"pe_RejoinExistingGameMessage\020\027\022\033\n\027Type_J" "\n\036Type_RejoinExistingGameMessage\020\027\022\033\n\027Ty"
"oinGameAckMessage\020\030\022\036\n\032Type_JoinGameFail" "pe_JoinGameAckMessage\020\030\022\036\n\032Type_JoinGame"
"edMessage\020\031\022 \n\034Type_GamePlayerJoinedMess" "FailedMessage\020\031\022 \n\034Type_GamePlayerJoined"
"age\020\032\022\036\n\032Type_GamePlayerLeftMessage\020\033\022 \n" "Message\020\032\022\036\n\032Type_GamePlayerLeftMessage\020"
"\034Type_GameAdminChangedMessage\020\034\022\037\n\033Type_" "\033\022 \n\034Type_GameAdminChangedMessage\020\034\022\037\n\033T"
"RemovedFromGameMessage\020\035\022!\n\035Type_KickPla" "ype_RemovedFromGameMessage\020\035\022!\n\035Type_Kic"
"yerRequestMessage\020\036\022 \n\034Type_LeaveGameReq" "kPlayerRequestMessage\020\036\022 \n\034Type_LeaveGam"
"uestMessage\020\037\022\"\n\036Type_InvitePlayerToGame" "eRequestMessage\020\037\022\"\n\036Type_InvitePlayerTo"
"Message\020 \022\034\n\030Type_InviteNotifyMessage\020!\022" "GameMessage\020 \022\034\n\030Type_InviteNotifyMessag"
"$\n Type_RejectGameInvitationMessage\020\"\022\037\n" "e\020!\022$\n Type_RejectGameInvitationMessage\020"
"\033Type_RejectInvNotifyMessage\020#\022\032\n\026Type_S" "\"\022\037\n\033Type_RejectInvNotifyMessage\020#\022\032\n\026Ty"
"tartEventMessage\020$\022\035\n\031Type_StartEventAck" "pe_StartEventMessage\020$\022\035\n\031Type_StartEven"
"Message\020%\022 \n\034Type_GameStartInitialMessag" "tAckMessage\020%\022 \n\034Type_GameStartInitialMe"
"e\020&\022\037\n\033Type_GameStartRejoinMessage\020\'\022\031\n\025" "ssage\020&\022\037\n\033Type_GameStartRejoinMessage\020\'"
"Type_HandStartMessage\020(\022\033\n\027Type_PlayersT" "\022\031\n\025Type_HandStartMessage\020(\022\033\n\027Type_Play"
"urnMessage\020)\022\037\n\033Type_MyActionRequestMess" "ersTurnMessage\020)\022\037\n\033Type_MyActionRequest"
"age\020*\022\"\n\036Type_YourActionRejectedMessage\020" "Message\020*\022\"\n\036Type_YourActionRejectedMess"
"+\022!\n\035Type_PlayersActionDoneMessage\020,\022\035\n\031" "age\020+\022!\n\035Type_PlayersActionDoneMessage\020,"
"Type_DealFlopCardsMessage\020-\022\034\n\030Type_Deal" "\022\035\n\031Type_DealFlopCardsMessage\020-\022\034\n\030Type_"
"TurnCardMessage\020.\022\035\n\031Type_DealRiverCardM" "DealTurnCardMessage\020.\022\035\n\031Type_DealRiverC"
"essage\020/\022\036\n\032Type_AllInShowCardsMessage\0200" "ardMessage\020/\022\036\n\032Type_AllInShowCardsMessa"
"\022\"\n\036Type_EndOfHandShowCardsMessage\0201\022\"\n\036" "ge\0200\022\"\n\036Type_EndOfHandShowCardsMessage\0201"
"Type_EndOfHandHideCardsMessage\0202\022\"\n\036Type" "\022\"\n\036Type_EndOfHandHideCardsMessage\0202\022\"\n\036"
"_ShowMyCardsRequestMessage\0203\022\"\n\036Type_Aft" "Type_ShowMyCardsRequestMessage\0203\022\"\n\036Type"
"erHandShowCardsMessage\0204\022\031\n\025Type_EndOfGa" "_AfterHandShowCardsMessage\0204\022\031\n\025Type_End"
"meMessage\0205\022\037\n\033Type_PlayerIdChangedMessa" "OfGameMessage\0205\022\037\n\033Type_PlayerIdChangedM"
"ge\0206\022\035\n\031Type_AskKickPlayerMessage\0207\022\035\n\031T" "essage\0206\022\035\n\031Type_AskKickPlayerMessage\0207\022"
"ype_AskKickDeniedMessage\0208\022!\n\035Type_Start" "\035\n\031Type_AskKickDeniedMessage\0208\022!\n\035Type_S"
"KickPetitionMessage\0209\022\037\n\033Type_VoteKickRe" "tartKickPetitionMessage\0209\022\037\n\033Type_VoteKi"
"questMessage\020:\022\035\n\031Type_VoteKickReplyMess" "ckRequestMessage\020:\022\035\n\031Type_VoteKickReply"
"age\020;\022\"\n\036Type_KickPetitionUpdateMessage\020" "Message\020;\022\"\n\036Type_KickPetitionUpdateMess"
"<\022\037\n\033Type_EndKickPetitionMessage\020=\022\032\n\026Ty" "age\020<\022\037\n\033Type_EndKickPetitionMessage\020=\022\032"
"pe_StatisticsMessage\020>\022\033\n\027Type_ChatReque" "\n\026Type_StatisticsMessage\020>\022\033\n\027Type_ChatR"
"stMessage\020\?\022\024\n\020Type_ChatMessage\020@\022\032\n\026Typ" "equestMessage\020\?\022\024\n\020Type_ChatMessage\020@\022\032\n"
"e_ChatRejectMessage\020A\022\026\n\022Type_DialogMess" "\026Type_ChatRejectMessage\020A\022\026\n\022Type_Dialog"
"age\020B\022\036\n\032Type_TimeoutWarningMessage\020C\022\034\n" "Message\020B\022\036\n\032Type_TimeoutWarningMessage\020"
"\030Type_ResetTimeoutMessage\020D\022\034\n\030Type_Repo" "C\022\034\n\030Type_ResetTimeoutMessage\020D\022\034\n\030Type_"
"rtAvatarMessage\020E\022\037\n\033Type_ReportAvatarAc" "ReportAvatarMessage\020E\022\037\n\033Type_ReportAvat"
"kMessage\020F\022\032\n\026Type_ReportGameMessage\020G\022\035" "arAckMessage\020F\022\032\n\026Type_ReportGameMessage"
"\n\031Type_ReportGameAckMessage\020H\022\025\n\021Type_Er" "\020G\022\035\n\031Type_ReportGameAckMessage\020H\022\025\n\021Typ"
"rorMessage\020I*H\n\013NetGameMode\022\022\n\016netGameCr" "e_ErrorMessage\020I*H\n\013NetGameMode\022\022\n\016netGa"
"eated\020\001\022\022\n\016netGameStarted\020\002\022\021\n\rnetGameCl" "meCreated\020\001\022\022\n\016netGameStarted\020\002\022\021\n\rnetGa"
"osed\020\003*\226\001\n\014NetGameState\022\023\n\017netStatePrefl" "meClosed\020\003*\226\001\n\014NetGameState\022\023\n\017netStateP"
"op\020\000\022\020\n\014netStateFlop\020\001\022\020\n\014netStateTurn\020\002" "reflop\020\000\022\020\n\014netStateFlop\020\001\022\020\n\014netStateTu"
"\022\021\n\rnetStateRiver\020\003\022\035\n\031netStatePreflopSm" "rn\020\002\022\021\n\rnetStateRiver\020\003\022\035\n\031netStatePrefl"
"allBlind\020\004\022\033\n\027netStatePreflopBigBlind\020\005*" "opSmallBlind\020\004\022\033\n\027netStatePreflopBigBlin"
"\230\001\n\017NetPlayerAction\022\021\n\rnetActionNone\020\000\022\021" "d\020\005*\230\001\n\017NetPlayerAction\022\021\n\rnetActionNone"
"\n\rnetActionFold\020\001\022\022\n\016netActionCheck\020\002\022\021\n" "\020\000\022\021\n\rnetActionFold\020\001\022\022\n\016netActionCheck\020"
"\rnetActionCall\020\003\022\020\n\014netActionBet\020\004\022\022\n\016ne" "\002\022\021\n\rnetActionCall\020\003\022\020\n\014netActionBet\020\004\022\022"
"tActionRaise\020\005\022\022\n\016netActionAllIn\020\006*h\n\016Ne" "\n\016netActionRaise\020\005\022\022\n\016netActionAllIn\020\006*h"
"tPlayerState\022\030\n\024netPlayerStateNormal\020\000\022!" "\n\016NetPlayerState\022\030\n\024netPlayerStateNormal"
"\n\035netPlayerStateSessionInactive\020\001\022\031\n\025net" "\020\000\022!\n\035netPlayerStateSessionInactive\020\001\022\031\n"
"PlayerStateNoMoney\020\002*d\n\023NetPlayerInfoRig" "\025netPlayerStateNoMoney\020\002*d\n\023NetPlayerInf"
"hts\022\030\n\024netPlayerRightsGuest\020\001\022\031\n\025netPlay" "oRights\022\030\n\024netPlayerRightsGuest\020\001\022\031\n\025net"
"erRightsNormal\020\002\022\030\n\024netPlayerRightsAdmin" "PlayerRightsNormal\020\002\022\030\n\024netPlayerRightsA"
"\020\003*T\n\rNetAvatarType\022\025\n\021netAvatarImagePng" "dmin\020\003*T\n\rNetAvatarType\022\025\n\021netAvatarImag"
"\020\001\022\025\n\021netAvatarImageJpg\020\002\022\025\n\021netAvatarIm" "ePng\020\001\022\025\n\021netAvatarImageJpg\020\002\022\025\n\021netAvat"
"ageGif\020\003B\037\n\023de.pokerth.protocolB\010ProtoBu" "arImageGif\020\003B\037\n\023de.pokerth.protocolB\010Pro"
"f", 17841); "toBuf", 17845);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile( ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"pokerth.proto", &protobuf_RegisterTypes); "pokerth.proto", &protobuf_RegisterTypes);
NetGameInfo::default_instance_ = new NetGameInfo(); NetGameInfo::default_instance_ = new NetGameInfo();
@@ -9410,7 +9410,6 @@ PlayerInfoRequestMessage::PlayerInfoRequestMessage(const PlayerInfoRequestMessag
void PlayerInfoRequestMessage::SharedCtor() { void PlayerInfoRequestMessage::SharedCtor() {
_cached_size_ = 0; _cached_size_ = 0;
playerid_ = 0u;
::memset(_has_bits_, 0, sizeof(_has_bits_)); ::memset(_has_bits_, 0, sizeof(_has_bits_));
} }
@@ -9444,9 +9443,7 @@ PlayerInfoRequestMessage* PlayerInfoRequestMessage::New() const {
} }
void PlayerInfoRequestMessage::Clear() { void PlayerInfoRequestMessage::Clear() {
if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { playerid_.Clear();
playerid_ = 0u;
}
::memset(_has_bits_, 0, sizeof(_has_bits_)); ::memset(_has_bits_, 0, sizeof(_has_bits_));
mutable_unknown_fields()->Clear(); mutable_unknown_fields()->Clear();
} }
@@ -9457,14 +9454,19 @@ bool PlayerInfoRequestMessage::MergePartialFromCodedStream(
::google::protobuf::uint32 tag; ::google::protobuf::uint32 tag;
while ((tag = input->ReadTag()) != 0) { while ((tag = input->ReadTag()) != 0) {
switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
// required uint32 playerId = 1; // repeated uint32 playerId = 1 [packed = true];
case 1: { case 1: {
if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>( ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
input, &playerid_))); input, this->mutable_playerid())));
set_has_playerid(); } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
== ::google::protobuf::internal::WireFormatLite::
WIRETYPE_VARINT) {
DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
1, 10, input, this->mutable_playerid())));
} else { } else {
goto handle_uninterpreted; goto handle_uninterpreted;
} }
@@ -9490,9 +9492,14 @@ bool PlayerInfoRequestMessage::MergePartialFromCodedStream(
void PlayerInfoRequestMessage::SerializeWithCachedSizes( void PlayerInfoRequestMessage::SerializeWithCachedSizes(
::google::protobuf::io::CodedOutputStream* output) const { ::google::protobuf::io::CodedOutputStream* output) const {
// required uint32 playerId = 1; // repeated uint32 playerId = 1 [packed = true];
if (has_playerid()) { if (this->playerid_size() > 0) {
::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->playerid(), output); ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
output->WriteVarint32(_playerid_cached_byte_size_);
}
for (int i = 0; i < this->playerid_size(); i++) {
::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
this->playerid(i), output);
} }
if (!unknown_fields().empty()) { if (!unknown_fields().empty()) {
@@ -9503,9 +9510,18 @@ void PlayerInfoRequestMessage::SerializeWithCachedSizes(
::google::protobuf::uint8* PlayerInfoRequestMessage::SerializeWithCachedSizesToArray( ::google::protobuf::uint8* PlayerInfoRequestMessage::SerializeWithCachedSizesToArray(
::google::protobuf::uint8* target) const { ::google::protobuf::uint8* target) const {
// required uint32 playerId = 1; // repeated uint32 playerId = 1 [packed = true];
if (has_playerid()) { if (this->playerid_size() > 0) {
target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->playerid(), target); target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
1,
::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
target);
target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
_playerid_cached_byte_size_, target);
}
for (int i = 0; i < this->playerid_size(); i++) {
target = ::google::protobuf::internal::WireFormatLite::
WriteUInt32NoTagToArray(this->playerid(i), target);
} }
if (!unknown_fields().empty()) { if (!unknown_fields().empty()) {
@@ -9518,15 +9534,21 @@ void PlayerInfoRequestMessage::SerializeWithCachedSizes(
int PlayerInfoRequestMessage::ByteSize() const { int PlayerInfoRequestMessage::ByteSize() const {
int total_size = 0; int total_size = 0;
if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { // repeated uint32 playerId = 1 [packed = true];
// required uint32 playerId = 1; {
if (has_playerid()) { int data_size = 0;
total_size += 1 + for (int i = 0; i < this->playerid_size(); i++) {
::google::protobuf::internal::WireFormatLite::UInt32Size( data_size += ::google::protobuf::internal::WireFormatLite::
this->playerid()); UInt32Size(this->playerid(i));
} }
if (data_size > 0) {
total_size += 1 +
::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
}
_playerid_cached_byte_size_ = data_size;
total_size += data_size;
} }
if (!unknown_fields().empty()) { if (!unknown_fields().empty()) {
total_size += total_size +=
::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
@@ -9552,11 +9574,7 @@ void PlayerInfoRequestMessage::MergeFrom(const ::google::protobuf::Message& from
void PlayerInfoRequestMessage::MergeFrom(const PlayerInfoRequestMessage& from) { void PlayerInfoRequestMessage::MergeFrom(const PlayerInfoRequestMessage& from) {
GOOGLE_CHECK_NE(&from, this); GOOGLE_CHECK_NE(&from, this);
if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { playerid_.MergeFrom(from.playerid_);
if (from.has_playerid()) {
set_playerid(from.playerid());
}
}
mutable_unknown_fields()->MergeFrom(from.unknown_fields()); mutable_unknown_fields()->MergeFrom(from.unknown_fields());
} }
@@ -9573,14 +9591,13 @@ void PlayerInfoRequestMessage::CopyFrom(const PlayerInfoRequestMessage& from) {
} }
bool PlayerInfoRequestMessage::IsInitialized() const { bool PlayerInfoRequestMessage::IsInitialized() const {
if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
return true; return true;
} }
void PlayerInfoRequestMessage::Swap(PlayerInfoRequestMessage* other) { void PlayerInfoRequestMessage::Swap(PlayerInfoRequestMessage* other) {
if (other != this) { if (other != this) {
std::swap(playerid_, other->playerid_); playerid_.Swap(&other->playerid_);
std::swap(_has_bits_[0], other->_has_bits_[0]); std::swap(_has_bits_[0], other->_has_bits_[0]);
_unknown_fields_.Swap(&other->_unknown_fields_); _unknown_fields_.Swap(&other->_unknown_fields_);
std::swap(_cached_size_, other->_cached_size_); std::swap(_cached_size_, other->_cached_size_);
@@ -30738,9 +30755,6 @@ bool PokerTHMessage::IsInitialized() const {
if (has_gamelistadminchangedmessage()) { if (has_gamelistadminchangedmessage()) {
if (!this->gamelistadminchangedmessage().IsInitialized()) return false; if (!this->gamelistadminchangedmessage().IsInitialized()) return false;
} }
if (has_playerinforequestmessage()) {
if (!this->playerinforequestmessage().IsInitialized()) return false;
}
if (has_playerinforeplymessage()) { if (has_playerinforeplymessage()) {
if (!this->playerinforeplymessage().IsInitialized()) return false; if (!this->playerinforeplymessage().IsInitialized()) return false;
} }
+29 -22
View File
@@ -3188,21 +3188,25 @@ class PlayerInfoRequestMessage : public ::google::protobuf::Message {
// accessors ------------------------------------------------------- // accessors -------------------------------------------------------
// required uint32 playerId = 1; // repeated uint32 playerId = 1 [packed = true];
inline bool has_playerid() const; inline int playerid_size() const;
inline void clear_playerid(); inline void clear_playerid();
static const int kPlayerIdFieldNumber = 1; static const int kPlayerIdFieldNumber = 1;
inline ::google::protobuf::uint32 playerid() const; inline ::google::protobuf::uint32 playerid(int index) const;
inline void set_playerid(::google::protobuf::uint32 value); inline void set_playerid(int index, ::google::protobuf::uint32 value);
inline void add_playerid(::google::protobuf::uint32 value);
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
playerid() const;
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
mutable_playerid();
// @@protoc_insertion_point(class_scope:PlayerInfoRequestMessage) // @@protoc_insertion_point(class_scope:PlayerInfoRequestMessage)
private: private:
inline void set_has_playerid();
inline void clear_has_playerid();
::google::protobuf::UnknownFieldSet _unknown_fields_; ::google::protobuf::UnknownFieldSet _unknown_fields_;
::google::protobuf::uint32 playerid_; ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > playerid_;
mutable int _playerid_cached_byte_size_;
mutable int _cached_size_; mutable int _cached_size_;
::google::protobuf::uint32 _has_bits_[(1 + 31) / 32]; ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
@@ -12795,26 +12799,29 @@ inline void GameListAdminChangedMessage::set_newadminplayerid(::google::protobuf
// PlayerInfoRequestMessage // PlayerInfoRequestMessage
// required uint32 playerId = 1; // repeated uint32 playerId = 1 [packed = true];
inline bool PlayerInfoRequestMessage::has_playerid() const { inline int PlayerInfoRequestMessage::playerid_size() const {
return (_has_bits_[0] & 0x00000001u) != 0; return playerid_.size();
}
inline void PlayerInfoRequestMessage::set_has_playerid() {
_has_bits_[0] |= 0x00000001u;
}
inline void PlayerInfoRequestMessage::clear_has_playerid() {
_has_bits_[0] &= ~0x00000001u;
} }
inline void PlayerInfoRequestMessage::clear_playerid() { inline void PlayerInfoRequestMessage::clear_playerid() {
playerid_ = 0u; playerid_.Clear();
clear_has_playerid();
} }
inline ::google::protobuf::uint32 PlayerInfoRequestMessage::playerid() const { inline ::google::protobuf::uint32 PlayerInfoRequestMessage::playerid(int index) const {
return playerid_.Get(index);
}
inline void PlayerInfoRequestMessage::set_playerid(int index, ::google::protobuf::uint32 value) {
playerid_.Set(index, value);
}
inline void PlayerInfoRequestMessage::add_playerid(::google::protobuf::uint32 value) {
playerid_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
PlayerInfoRequestMessage::playerid() const {
return playerid_; return playerid_;
} }
inline void PlayerInfoRequestMessage::set_playerid(::google::protobuf::uint32 value) { inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
set_has_playerid(); PlayerInfoRequestMessage::mutable_playerid() {
playerid_ = value; return &playerid_;
} }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
File diff suppressed because it is too large Load Diff
+14 -3
View File
@@ -21,7 +21,9 @@ import java.net.Socket;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection;
import org.junit.Test; import org.junit.Test;
@@ -36,8 +38,14 @@ import de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType;
public class PlayerInfoTest extends TestBase { public class PlayerInfoTest extends TestBase {
protected void sendPlayerInfoRequest(Socket s, int playerId) throws Exception { protected void sendPlayerInfoRequest(Socket s, int playerId) throws Exception {
Collection<Integer> tmpList = new ArrayList<Integer>();
tmpList.add(playerId);
sendPlayerInfoRequest(s, tmpList);
}
protected void sendPlayerInfoRequest(Socket s, Collection<Integer> playerIds) throws Exception {
PlayerInfoRequestMessage request = PlayerInfoRequestMessage.newBuilder() PlayerInfoRequestMessage request = PlayerInfoRequestMessage.newBuilder()
.setPlayerId(playerId) .addAllPlayerId(playerIds)
.build(); .build();
PokerTHMessage msg = PokerTHMessage.newBuilder() PokerTHMessage msg = PokerTHMessage.newBuilder()
.setMessageType(PokerTHMessageType.Type_PlayerInfoRequestMessage) .setMessageType(PokerTHMessageType.Type_PlayerInfoRequestMessage)
@@ -96,9 +104,12 @@ public class PlayerInfoTest extends TestBase {
assertEquals(NetPlayerInfoRights.netPlayerRightsGuest, info.getPlayerRights()); assertEquals(NetPlayerInfoRights.netPlayerRightsGuest, info.getPlayerRights());
assertFalse(info.hasAvatarData()); assertFalse(info.hasAvatarData());
} }
// Request other players' info. // Request other players' info (one request containing 9 queries).
Collection<Integer> tmpList = new ArrayList<Integer>();
for (Integer id : playerId) { tmpList.add(id); }
sendPlayerInfoRequest(sock, tmpList);
for (int i = 0; i < 9; i++) { for (int i = 0; i < 9; i++) {
sendPlayerInfoRequest(sock, playerId[i]);
do { do {
msg = receiveMessage(); msg = receiveMessage();
} while (msg.hasPlayerListMessage()); } while (msg.hasPlayerListMessage());