2009-06-28 21:59:45 +00:00
|
|
|
--**************************************************************************
|
2010-03-29 12:47:23 +00:00
|
|
|
-- Copyright (C) 2009-2010 by Lothar May *
|
2009-06-28 21:59:45 +00:00
|
|
|
-- *
|
|
|
|
|
-- This program is free software; you can redistribute it and/or modify *
|
|
|
|
|
-- it under the terms of the GNU General Public License as published by *
|
|
|
|
|
-- the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
|
-- (at your option) any later version. *
|
|
|
|
|
-- *
|
|
|
|
|
-- This program is distributed in the hope that it will be useful, *
|
|
|
|
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
|
|
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
|
|
|
-- GNU General Public License for more details. *
|
|
|
|
|
-- *
|
|
|
|
|
-- You should have received a copy of the GNU General Public License *
|
|
|
|
|
-- along with this program; if not, write to the *
|
|
|
|
|
-- Free Software Foundation, Inc., *
|
|
|
|
|
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|
|
|
|
--**************************************************************************
|
|
|
|
|
|
|
|
|
|
POKERTH-PROTOCOL DEFINITIONS
|
|
|
|
|
IMPLICIT TAGS
|
|
|
|
|
EXTENSIBILITY IMPLIED ::=
|
|
|
|
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
|
|
|
|
PokerTHMessage ::= CHOICE {
|
2009-11-07 21:02:20 +00:00
|
|
|
announceMessage AnnounceMessage,
|
2009-06-28 21:59:45 +00:00
|
|
|
initMessage InitMessage,
|
2009-10-10 20:24:48 +00:00
|
|
|
authMessage AuthMessage,
|
2009-06-28 21:59:45 +00:00
|
|
|
initAckMessage InitAckMessage,
|
|
|
|
|
avatarRequestMessage AvatarRequestMessage,
|
|
|
|
|
avatarReplyMessage AvatarReplyMessage,
|
2009-08-15 13:43:00 +00:00
|
|
|
playerListMessage PlayerListMessage,
|
2009-06-28 21:59:45 +00:00
|
|
|
gameListMessage GameListMessage,
|
|
|
|
|
playerInfoRequestMessage PlayerInfoRequestMessage,
|
|
|
|
|
playerInfoReplyMessage PlayerInfoReplyMessage,
|
2009-07-11 22:04:46 +00:00
|
|
|
subscriptionRequestMessage SubscriptionRequestMessage,
|
2009-06-28 21:59:45 +00:00
|
|
|
joinGameRequestMessage JoinGameRequestMessage,
|
2009-07-11 22:04:46 +00:00
|
|
|
joinGameReplyMessage JoinGameReplyMessage,
|
|
|
|
|
gamePlayerMessage GamePlayerMessage,
|
|
|
|
|
kickPlayerRequestMessage KickPlayerRequestMessage,
|
|
|
|
|
leaveGameRequestMessage LeaveGameRequestMessage,
|
2010-03-29 12:47:23 +00:00
|
|
|
invitePlayerToGameMessage InvitePlayerToGameMessage,
|
|
|
|
|
rejectGameInvitationMessage RejectGameInvitationMessage,
|
2009-07-11 22:04:46 +00:00
|
|
|
startEventMessage StartEventMessage,
|
|
|
|
|
startEventAckMessage StartEventAckMessage,
|
|
|
|
|
gameStartMessage GameStartMessage,
|
|
|
|
|
handStartMessage HandStartMessage,
|
|
|
|
|
playersTurnMessage PlayersTurnMessage,
|
|
|
|
|
myActionRequestMessage MyActionRequestMessage,
|
|
|
|
|
yourActionRejectedMessage YourActionRejectedMessage,
|
2009-07-12 23:07:20 +00:00
|
|
|
playersActionDoneMessage PlayersActionDoneMessage,
|
|
|
|
|
dealFlopCardsMessage DealFlopCardsMessage,
|
|
|
|
|
dealTurnCardMessage DealTurnCardMessage,
|
|
|
|
|
dealRiverCardMessage DealRiverCardMessage,
|
|
|
|
|
allInShowCardsMessage AllInShowCardsMessage,
|
|
|
|
|
endOfHandMessage EndOfHandMessage,
|
|
|
|
|
endOfGameMessage EndOfGameMessage,
|
2009-07-26 08:53:30 +00:00
|
|
|
askKickPlayerMessage AskKickPlayerMessage,
|
|
|
|
|
askKickDeniedMessage AskKickDeniedMessage,
|
|
|
|
|
startKickPetitionMessage StartKickPetitionMessage,
|
|
|
|
|
voteKickRequestMessage VoteKickRequestMessage,
|
|
|
|
|
voteKickReplyMessage VoteKickReplyMessage,
|
|
|
|
|
kickPetitionUpdateMessage KickPetitionUpdateMessage,
|
|
|
|
|
endKickPetitionMessage EndKickPetitionMessage,
|
2009-07-12 23:07:20 +00:00
|
|
|
statisticsMessage StatisticsMessage,
|
|
|
|
|
chatRequestMessage ChatRequestMessage,
|
|
|
|
|
chatMessage ChatMessage,
|
|
|
|
|
dialogMessage DialogMessage,
|
2009-07-19 22:40:12 +00:00
|
|
|
timeoutWarningMessage TimeoutWarningMessage,
|
|
|
|
|
resetTimeoutMessage ResetTimeoutMessage,
|
2009-07-12 23:07:20 +00:00
|
|
|
errorMessage ErrorMessage
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
AnnounceMessage ::= [APPLICATION 0] SEQUENCE {
|
|
|
|
|
protocolVersion Version,
|
|
|
|
|
latestGameVersion Version,
|
|
|
|
|
latestBetaRevision INTEGER(0..65535),
|
|
|
|
|
serverType ENUMERATED {
|
|
|
|
|
serverTypeLAN (0),
|
|
|
|
|
serverTypeInternetNoAuth (1),
|
|
|
|
|
serverTypeInternetAuth (2)
|
|
|
|
|
},
|
|
|
|
|
numPlayersOnServer INTEGER(0..65535)
|
|
|
|
|
}
|
|
|
|
|
|
2009-10-23 22:11:01 +00:00
|
|
|
-- buildId contains a constant build id (specific for Windows/Linux/Mac builds)
|
2009-11-07 21:02:20 +00:00
|
|
|
InitMessage ::= [APPLICATION 1] SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
requestedVersion Version,
|
2009-10-23 22:11:01 +00:00
|
|
|
buildId INTEGER,
|
2009-06-28 21:59:45 +00:00
|
|
|
login CHOICE {
|
2009-10-23 22:11:01 +00:00
|
|
|
guestLogin [0] GuestLogin,
|
2009-11-14 13:13:51 +00:00
|
|
|
authenticatedLogin [1] AuthenticatedLogin,
|
|
|
|
|
unauthenticatedLogin [2] UnauthenticatedLogin
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-11 22:04:46 +00:00
|
|
|
Version ::= SEQUENCE {
|
|
|
|
|
major INTEGER(0..65535),
|
|
|
|
|
minor INTEGER(0..65535)
|
|
|
|
|
}
|
|
|
|
|
|
2009-10-23 22:11:01 +00:00
|
|
|
GuestLogin ::= SEQUENCE {
|
|
|
|
|
nickName UTF8String (SIZE(1..64))
|
2009-10-10 20:24:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
-- Login data is according to SCRAM SHA-1
|
|
|
|
|
AuthenticatedLogin ::= SEQUENCE {
|
|
|
|
|
clientUserData OCTET STRING (SIZE(1..256)),
|
2009-07-18 12:05:55 +00:00
|
|
|
avatar AvatarHash OPTIONAL
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
2009-11-14 13:13:51 +00:00
|
|
|
UnauthenticatedLogin ::= SEQUENCE {
|
|
|
|
|
nickName UTF8String (SIZE(1..64)),
|
|
|
|
|
avatar AvatarHash OPTIONAL
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
AuthMessage ::= [APPLICATION 2] CHOICE {
|
2009-10-10 20:24:48 +00:00
|
|
|
authServerChallenge [0] AuthServerChallenge,
|
|
|
|
|
authClientResponse [1] AuthClientResponse,
|
|
|
|
|
authServerVerification [2] AuthServerVerification
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AuthServerChallenge ::= SEQUENCE {
|
|
|
|
|
serverChallenge OCTET STRING (SIZE(1..256))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AuthClientResponse ::= SEQUENCE {
|
|
|
|
|
clientResponse OCTET STRING (SIZE(1..256))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AuthServerVerification ::= SEQUENCE {
|
|
|
|
|
serverVerification OCTET STRING (SIZE(1..256))
|
2009-07-18 12:05:55 +00:00
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
InitAckMessage ::= [APPLICATION 3] SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
yourSessionId Guid,
|
|
|
|
|
yourPlayerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
AvatarRequestMessage ::= [APPLICATION 4] SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
requestId NonZeroId,
|
|
|
|
|
avatar AvatarHash
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
AvatarReplyMessage ::= [APPLICATION 5] SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
requestId NonZeroId,
|
2009-07-09 21:27:08 +00:00
|
|
|
avatarResult CHOICE {
|
2009-07-18 12:05:55 +00:00
|
|
|
avatarHeader [0] AvatarHeader,
|
|
|
|
|
avatarData [1] AvatarData,
|
|
|
|
|
avatarEnd [2] AvatarEnd,
|
|
|
|
|
unknownAvatar [3] UnknownAvatar
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-18 12:05:55 +00:00
|
|
|
AvatarHeader ::= SEQUENCE {
|
2009-07-19 22:40:12 +00:00
|
|
|
avatarType NetAvatarType,
|
2009-07-18 12:05:55 +00:00
|
|
|
avatarSize INTEGER(32..30720)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AvatarData ::= SEQUENCE {
|
|
|
|
|
avatarBlock OCTET STRING (SIZE(1..256))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AvatarEnd ::= SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UnknownAvatar ::= SEQUENCE {
|
|
|
|
|
}
|
|
|
|
|
|
2009-08-01 20:53:54 +00:00
|
|
|
AvatarHash ::= OCTET STRING (SIZE(16)) -- md5 hash value
|
2009-07-11 22:04:46 +00:00
|
|
|
|
2009-07-19 22:40:12 +00:00
|
|
|
NetAvatarType ::= ENUMERATED {
|
|
|
|
|
avatarImagePng (1),
|
|
|
|
|
avatarImageJpg (2),
|
|
|
|
|
avatarImageGif (3)
|
2009-07-11 22:04:46 +00:00
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
PlayerListMessage ::= [APPLICATION 6] SEQUENCE {
|
2009-08-15 13:43:00 +00:00
|
|
|
playerId NonZeroId,
|
|
|
|
|
playerListNotification ENUMERATED {
|
|
|
|
|
playerListNew (0),
|
|
|
|
|
playerListLeft (1)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
GameListMessage ::= [APPLICATION 7] SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-09 21:27:08 +00:00
|
|
|
gameListNotification CHOICE {
|
2009-06-28 21:59:45 +00:00
|
|
|
gameListNew [0] GameListNew,
|
|
|
|
|
gameListUpdate [1] GameListUpdate,
|
|
|
|
|
gameListPlayerJoined [2] GameListPlayerJoined,
|
|
|
|
|
gameListPlayerLeft [3] GameListPlayerLeft,
|
|
|
|
|
gameListAdminChanged [4] GameListAdminChanged
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameListNew ::= SEQUENCE {
|
2009-07-19 22:40:12 +00:00
|
|
|
gameMode NetGameMode,
|
2009-06-28 21:59:45 +00:00
|
|
|
isPrivate BOOLEAN,
|
2009-08-04 06:59:58 +00:00
|
|
|
playerIds SEQUENCE SIZE(0..10) OF NonZeroId,
|
2009-06-28 21:59:45 +00:00
|
|
|
adminPlayerId NonZeroId,
|
2009-07-19 22:40:12 +00:00
|
|
|
gameInfo NetGameInfo
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameListUpdate ::= SEQUENCE {
|
2009-07-19 22:40:12 +00:00
|
|
|
gameMode NetGameMode
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameListPlayerJoined ::= SEQUENCE {
|
|
|
|
|
playerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameListPlayerLeft ::= SEQUENCE {
|
|
|
|
|
playerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameListAdminChanged ::= SEQUENCE {
|
|
|
|
|
newAdminPlayerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-19 22:40:12 +00:00
|
|
|
NetGameMode ::= ENUMERATED {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameCreated (1),
|
|
|
|
|
gameStarted (2),
|
|
|
|
|
gameClosed (3)
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
PlayerInfoRequestMessage ::= [APPLICATION 8] SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
playerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
PlayerInfoReplyMessage ::= [APPLICATION 9] SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
playerId NonZeroId,
|
2009-07-09 21:27:08 +00:00
|
|
|
playerInfoResult CHOICE {
|
2009-06-28 21:59:45 +00:00
|
|
|
playerInfoData [0] PlayerInfoData,
|
|
|
|
|
unknownPlayerInfo [1] UnknownPlayerInfo
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-24 15:23:23 +00:00
|
|
|
PlayerInfoRights ::= ENUMERATED {
|
|
|
|
|
playerRightsGuest (1),
|
|
|
|
|
playerRightsNormal (2),
|
|
|
|
|
playerRightsAdmin (3)
|
|
|
|
|
}
|
|
|
|
|
|
2009-06-28 21:59:45 +00:00
|
|
|
PlayerInfoData ::= SEQUENCE {
|
2009-08-04 21:41:10 +00:00
|
|
|
playerName UTF8String (SIZE(1..32)),
|
2009-06-28 21:59:45 +00:00
|
|
|
isHuman BOOLEAN,
|
2010-03-24 15:23:23 +00:00
|
|
|
playerRights PlayerInfoRights,
|
2009-06-28 21:59:45 +00:00
|
|
|
avatarData SEQUENCE {
|
2009-07-19 22:40:12 +00:00
|
|
|
avatarType NetAvatarType,
|
2009-06-28 21:59:45 +00:00
|
|
|
avatar AvatarHash
|
|
|
|
|
} OPTIONAL
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UnknownPlayerInfo ::= SEQUENCE {
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-11 22:04:46 +00:00
|
|
|
|
|
|
|
|
-- The following request will not be confirmed by the server. It is used,
|
|
|
|
|
-- optionally, to reduce server traffic. The server might ignore it.
|
2009-11-07 21:02:20 +00:00
|
|
|
SubscriptionRequestMessage ::= [APPLICATION 10] SEQUENCE {
|
2009-07-09 21:27:08 +00:00
|
|
|
subscriptionAction ENUMERATED {
|
2009-06-28 21:59:45 +00:00
|
|
|
unsubscribeGameList (1),
|
|
|
|
|
resubscribeGameList (2)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
JoinGameRequestMessage ::= [APPLICATION 11] SEQUENCE {
|
2009-07-09 21:27:08 +00:00
|
|
|
joinGameAction CHOICE {
|
2009-06-28 21:59:45 +00:00
|
|
|
joinExistingGame [0] JoinExistingGame,
|
|
|
|
|
joinNewGame [1] JoinNewGame
|
|
|
|
|
},
|
2009-07-31 23:28:37 +00:00
|
|
|
password UTF8String (SIZE(1..64)) OPTIONAL
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JoinExistingGame ::= SEQUENCE {
|
|
|
|
|
gameId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JoinNewGame ::= SEQUENCE {
|
2009-07-19 22:40:12 +00:00
|
|
|
gameInfo NetGameInfo
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
JoinGameReplyMessage ::= [APPLICATION 12] SEQUENCE {
|
2009-06-28 21:59:45 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-09 21:27:08 +00:00
|
|
|
joinGameResult CHOICE {
|
2009-06-28 21:59:45 +00:00
|
|
|
joinGameAck [0] JoinGameAck,
|
|
|
|
|
joinGameFailed [1] JoinGameFailed
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JoinGameAck ::= SEQUENCE {
|
2010-03-26 20:47:26 +00:00
|
|
|
areYouGameAdmin BOOLEAN,
|
2009-07-19 22:40:12 +00:00
|
|
|
gameInfo NetGameInfo
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JoinGameFailed ::= SEQUENCE {
|
2009-07-09 21:27:08 +00:00
|
|
|
joinGameFailureReason ENUMERATED {
|
2010-03-28 13:43:42 +00:00
|
|
|
invalidGame (1),
|
|
|
|
|
gameIsFull (2),
|
|
|
|
|
gameIsRunning (3),
|
|
|
|
|
invalidPassword (4),
|
2010-03-29 12:47:23 +00:00
|
|
|
notAllowedAsGuest (5),
|
|
|
|
|
notInvited (6)
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-19 22:40:12 +00:00
|
|
|
NetGameInfo ::= SEQUENCE {
|
2009-07-31 23:28:37 +00:00
|
|
|
gameName UTF8String (SIZE(1..64)),
|
2010-03-26 21:52:21 +00:00
|
|
|
netGameType ENUMERATED {
|
|
|
|
|
normalGame (1),
|
|
|
|
|
registeredOnlyGame (2),
|
|
|
|
|
inviteOnlyGame (3),
|
|
|
|
|
rankingGame (4)
|
|
|
|
|
},
|
2009-07-11 22:04:46 +00:00
|
|
|
maxNumPlayers INTEGER(2..10),
|
2009-06-28 21:59:45 +00:00
|
|
|
raiseIntervalMode CHOICE {
|
|
|
|
|
raiseEveryHands [0] INTEGER(1..1000),
|
|
|
|
|
raiseEveryMinutes [1] INTEGER(1..1000)
|
|
|
|
|
},
|
|
|
|
|
endRaiseMode ENUMERATED {
|
|
|
|
|
doubleBlinds (1),
|
|
|
|
|
raiseByEndValue (2),
|
|
|
|
|
keepLastBlind (3)
|
|
|
|
|
},
|
|
|
|
|
proposedGuiSpeed INTEGER(1..11),
|
2009-10-24 21:49:11 +00:00
|
|
|
delayBetweenHands INTEGER(5..20), -- These are seconds
|
2009-07-09 21:27:08 +00:00
|
|
|
playerActionTimeout INTEGER(5..60), -- These are seconds
|
|
|
|
|
firstSmallBlind INTEGER(1..20000),
|
2009-08-04 21:41:10 +00:00
|
|
|
endRaiseSmallBlindValue INTEGER(0..20000),
|
2009-07-09 21:27:08 +00:00
|
|
|
startMoney INTEGER(1..1000000),
|
|
|
|
|
manualBlinds SEQUENCE SIZE(0..30) OF INTEGER(1..20001)
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
GamePlayerMessage ::= [APPLICATION 13] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
gamePlayerNotification CHOICE {
|
|
|
|
|
gamePlayerJoined [0] GamePlayerJoined,
|
|
|
|
|
gamePlayerLeft [1] GamePlayerLeft,
|
|
|
|
|
gameAdminChanged [2] GameAdminChanged,
|
|
|
|
|
removedFromGame [3] RemovedFromGame
|
|
|
|
|
}
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
2009-07-11 22:04:46 +00:00
|
|
|
GamePlayerJoined ::= SEQUENCE {
|
2009-07-31 21:10:21 +00:00
|
|
|
playerId NonZeroId,
|
2010-03-26 20:47:26 +00:00
|
|
|
isGameAdmin BOOLEAN
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
2009-07-11 22:04:46 +00:00
|
|
|
GamePlayerLeft ::= SEQUENCE {
|
2009-07-19 22:40:12 +00:00
|
|
|
playerId NonZeroId,
|
|
|
|
|
gamePlayerLeftReason ENUMERATED {
|
|
|
|
|
leftOnRequest (0),
|
|
|
|
|
leftKicked (1),
|
|
|
|
|
leftError (2)
|
|
|
|
|
}
|
2009-07-11 22:04:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameAdminChanged ::= SEQUENCE {
|
|
|
|
|
newAdminPlayerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RemovedFromGame ::= SEQUENCE {
|
|
|
|
|
removedFromGameReason ENUMERATED {
|
|
|
|
|
removedOnRequest (0), -- No error, client wished to leave.
|
|
|
|
|
kickedFromGame (1),
|
|
|
|
|
gameIsFull (2),
|
|
|
|
|
gameIsRunning (3),
|
2009-08-01 09:01:33 +00:00
|
|
|
gameTimeout (4),
|
|
|
|
|
removedStartFailed (5)
|
2009-07-11 22:04:46 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
KickPlayerRequestMessage ::= [APPLICATION 14] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
playerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2009-11-07 21:02:20 +00:00
|
|
|
LeaveGameRequestMessage ::= [APPLICATION 15] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
InvitePlayerToGameMessage ::= [APPLICATION 16] SEQUENCE {
|
|
|
|
|
gameId NonZeroId,
|
|
|
|
|
playerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RejectGameInvitationMessage ::= [APPLICATION 17] SEQUENCE {
|
|
|
|
|
gameId NonZeroId,
|
|
|
|
|
rejectGameInvitationReason ENUMERATED {
|
|
|
|
|
no (0),
|
|
|
|
|
busy (1)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StartEventMessage ::= [APPLICATION 18] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
fillWithComputerPlayers BOOLEAN
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
StartEventAckMessage ::= [APPLICATION 19] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
GameStartMessage ::= [APPLICATION 20] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
startDealerPlayerId NonZeroId,
|
|
|
|
|
playerSeats SEQUENCE SIZE(2..10) OF NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
HandStartMessage ::= [APPLICATION 21] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-31 22:38:58 +00:00
|
|
|
yourCard1 Card,
|
|
|
|
|
yourCard2 Card,
|
2009-07-11 22:04:46 +00:00
|
|
|
smallBlind INTEGER(1..20001)
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
PlayersTurnMessage ::= [APPLICATION 22] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
playerId NonZeroId,
|
2009-07-19 22:40:12 +00:00
|
|
|
gameState NetGameState
|
2009-07-11 22:04:46 +00:00
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
MyActionRequestMessage ::= [APPLICATION 23] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-19 22:40:12 +00:00
|
|
|
gameState NetGameState,
|
|
|
|
|
myAction NetPlayerAction,
|
2009-07-11 22:04:46 +00:00
|
|
|
myRelativeBet INTEGER(0..10000000)
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
YourActionRejectedMessage ::= [APPLICATION 24] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-19 22:40:12 +00:00
|
|
|
gameState NetGameState,
|
|
|
|
|
yourAction NetPlayerAction,
|
2009-07-11 22:04:46 +00:00
|
|
|
yourRelativeBet INTEGER(0..10000000),
|
|
|
|
|
rejectionReason ENUMERATED {
|
|
|
|
|
rejectedInvalidGameState (1),
|
|
|
|
|
rejectedNotYourTurn (2),
|
|
|
|
|
rejectedActionNotAllowed (3)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
PlayersActionDoneMessage ::= [APPLICATION 25] SEQUENCE {
|
2009-07-11 22:04:46 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
playerId NonZeroId,
|
2009-07-19 22:40:12 +00:00
|
|
|
gameState NetGameState,
|
|
|
|
|
playerAction NetPlayerAction,
|
2009-07-11 22:04:46 +00:00
|
|
|
totalPlayerBet INTEGER(0..10000000),
|
|
|
|
|
playerMoney INTEGER(0..10000000),
|
|
|
|
|
highestSet INTEGER(0..10000000),
|
|
|
|
|
minimumRaise INTEGER(0..10000000) -- TODO
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
DealFlopCardsMessage ::= [APPLICATION 26] SEQUENCE {
|
2009-07-12 23:07:20 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-31 22:38:58 +00:00
|
|
|
flopCard1 Card,
|
|
|
|
|
flopCard2 Card,
|
|
|
|
|
flopCard3 Card
|
2009-07-12 23:07:20 +00:00
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
DealTurnCardMessage ::= [APPLICATION 27] SEQUENCE {
|
2009-07-12 23:07:20 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
turnCard Card
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
DealRiverCardMessage ::= [APPLICATION 28] SEQUENCE {
|
2009-07-12 23:07:20 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
riverCard Card
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
AllInShowCardsMessage ::= [APPLICATION 29] SEQUENCE {
|
2009-07-12 23:07:20 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
playersAllIn SEQUENCE SIZE(1..10) OF PlayerAllIn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PlayerAllIn ::= SEQUENCE {
|
|
|
|
|
playerId NonZeroId,
|
2009-07-31 22:38:58 +00:00
|
|
|
allInCard1 Card,
|
|
|
|
|
allInCard2 Card
|
2009-07-12 23:07:20 +00:00
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
EndOfHandMessage ::= [APPLICATION 30] SEQUENCE {
|
2009-07-12 23:07:20 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
endOfHandType CHOICE {
|
|
|
|
|
endOfHandShowCards [0] EndOfHandShowCards,
|
|
|
|
|
endOfHandHideCards [1] EndOfHandHideCards
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
EndOfHandShowCards ::= SEQUENCE {
|
|
|
|
|
playerResults SEQUENCE SIZE(1..10) OF PlayerResult
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PlayerResult ::= SEQUENCE {
|
|
|
|
|
playerId NonZeroId,
|
2009-07-31 22:38:58 +00:00
|
|
|
resultCard1 Card,
|
|
|
|
|
resultCard2 Card,
|
2009-07-12 23:07:20 +00:00
|
|
|
bestHandPosition SEQUENCE SIZE(5) OF INTEGER, -- TODO size restrictions
|
|
|
|
|
cardsValue INTEGER,
|
|
|
|
|
moneyWon INTEGER(0..10000000),
|
|
|
|
|
playerMoney INTEGER(0..10000000)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
EndOfHandHideCards ::= SEQUENCE {
|
|
|
|
|
playerId NonZeroId,
|
|
|
|
|
moneyWon INTEGER(0..10000000),
|
|
|
|
|
playerMoney INTEGER(0..10000000)
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-29 12:47:23 +00:00
|
|
|
EndOfGameMessage ::= [APPLICATION 31] SEQUENCE {
|
2009-07-12 23:07:20 +00:00
|
|
|
gameId NonZeroId,
|
|
|
|
|
winnerPlayerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-26 08:53:30 +00:00
|
|
|
AskKickPlayerMessage ::= [APPLICATION 64] SEQUENCE {
|
2009-08-03 21:56:20 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-26 08:53:30 +00:00
|
|
|
playerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AskKickDeniedMessage ::= [APPLICATION 65] SEQUENCE {
|
2009-08-03 21:56:20 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-26 08:53:30 +00:00
|
|
|
playerId NonZeroId,
|
|
|
|
|
kickDeniedReason ENUMERATED {
|
|
|
|
|
kickDeniedInvalidGameState (0),
|
|
|
|
|
kickDeniedNotPossible (1),
|
|
|
|
|
kickDeniedTryAgainLater (2),
|
|
|
|
|
kickDeniedAlreadyInProgress (3),
|
|
|
|
|
kickDeniedInvalidPlayerId (4)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StartKickPetitionMessage ::= [APPLICATION 66] SEQUENCE {
|
2009-08-03 21:56:20 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-26 08:53:30 +00:00
|
|
|
petitionId NonZeroId,
|
|
|
|
|
proposingPlayerId NonZeroId,
|
|
|
|
|
kickPlayerId NonZeroId,
|
|
|
|
|
kickTimeoutSec INTEGER(1..120),
|
|
|
|
|
numVotesNeededToKick INTEGER(1..9)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
VoteKickRequestMessage ::= [APPLICATION 67] SEQUENCE {
|
2009-08-03 21:56:20 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-26 08:53:30 +00:00
|
|
|
petitionId NonZeroId,
|
|
|
|
|
voteKick BOOLEAN
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
VoteKickReplyMessage ::= [APPLICATION 68] SEQUENCE {
|
2009-08-03 21:56:20 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-26 08:53:30 +00:00
|
|
|
petitionId NonZeroId,
|
|
|
|
|
voteKickReplyType CHOICE {
|
|
|
|
|
voteKickAck [0] VoteKickAck,
|
|
|
|
|
voteKickDenied [1] VoteKickDenied
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
VoteKickAck ::= SEQUENCE {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
VoteKickDenied ::= SEQUENCE {
|
|
|
|
|
voteKickDeniedReason ENUMERATED {
|
|
|
|
|
voteKickDeniedInvalid (0),
|
|
|
|
|
voteKickDeniedAlreadyVoted (1)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
KickPetitionUpdateMessage ::= [APPLICATION 69] SEQUENCE {
|
2009-08-03 21:56:20 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-26 08:53:30 +00:00
|
|
|
petitionId NonZeroId,
|
|
|
|
|
numVotesAgainstKicking INTEGER(0..9),
|
|
|
|
|
numVotesInFavourOfKicking INTEGER(1..9),
|
|
|
|
|
numVotesNeededToKick INTEGER(1..9)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
EndKickPetitionMessage ::= [APPLICATION 70] SEQUENCE {
|
2009-08-03 21:56:20 +00:00
|
|
|
gameId NonZeroId,
|
2009-07-26 08:53:30 +00:00
|
|
|
petitionId NonZeroId,
|
|
|
|
|
numVotesAgainstKicking INTEGER(0..9),
|
|
|
|
|
numVotesInFavourOfKicking INTEGER(1..9),
|
|
|
|
|
resultPlayerKicked BOOLEAN,
|
|
|
|
|
petitionEndReason ENUMERATED {
|
|
|
|
|
petitionEndEnoughVotes (0),
|
|
|
|
|
petitionEndTooFewPlayers (1),
|
|
|
|
|
petitionEndPlayerLeft (2),
|
|
|
|
|
petitionEndTimeout (3)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-12 23:07:20 +00:00
|
|
|
StatisticsMessage ::= [APPLICATION 128] SEQUENCE {
|
|
|
|
|
statisticsData SEQUENCE SIZE(1..32) OF StatisticsData
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StatisticsData ::= SEQUENCE {
|
|
|
|
|
statisticsType ENUMERATED {
|
|
|
|
|
statNumberOfPlayers (1)
|
|
|
|
|
},
|
|
|
|
|
statisticsValue INTEGER
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ChatRequestMessage ::= [APPLICATION 129] SEQUENCE {
|
2009-08-15 08:38:56 +00:00
|
|
|
chatRequestType CHOICE {
|
|
|
|
|
chatRequestTypeLobby [0] ChatRequestTypeLobby,
|
|
|
|
|
chatRequestTypeGame [1] ChatRequestTypeGame
|
|
|
|
|
},
|
2009-07-31 23:28:37 +00:00
|
|
|
chatText UTF8String (SIZE(1..128))
|
2009-07-12 23:07:20 +00:00
|
|
|
}
|
|
|
|
|
|
2009-08-15 08:38:56 +00:00
|
|
|
ChatRequestTypeLobby ::= SEQUENCE {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ChatRequestTypeGame ::= SEQUENCE {
|
|
|
|
|
gameId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-12 23:07:20 +00:00
|
|
|
ChatMessage ::= [APPLICATION 130] SEQUENCE {
|
2009-08-15 08:38:56 +00:00
|
|
|
chatType CHOICE {
|
|
|
|
|
chatTypeLobby [0] ChatTypeLobby,
|
|
|
|
|
chatTypeGame [1] ChatTypeGame,
|
2009-08-17 09:45:06 +00:00
|
|
|
chatTypeBot [2] ChatTypeBot,
|
|
|
|
|
chatTypeBroadcast [3] ChatTypeBroadcast
|
2009-08-15 08:38:56 +00:00
|
|
|
},
|
2009-07-31 23:28:37 +00:00
|
|
|
chatText UTF8String (SIZE(1..128))
|
2009-07-12 23:07:20 +00:00
|
|
|
}
|
|
|
|
|
|
2009-08-15 08:38:56 +00:00
|
|
|
ChatTypeLobby ::= SEQUENCE {
|
|
|
|
|
playerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ChatTypeGame ::= SEQUENCE {
|
|
|
|
|
gameId NonZeroId,
|
|
|
|
|
playerId NonZeroId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ChatTypeBroadcast ::= SEQUENCE {
|
|
|
|
|
}
|
|
|
|
|
|
2009-08-17 09:45:06 +00:00
|
|
|
ChatTypeBot ::= SEQUENCE {
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-12 23:07:20 +00:00
|
|
|
DialogMessage ::= [APPLICATION 131] SEQUENCE {
|
2009-07-31 23:28:37 +00:00
|
|
|
notificationText UTF8String (SIZE(1..128))
|
2009-07-12 23:07:20 +00:00
|
|
|
}
|
|
|
|
|
|
2009-07-19 22:40:12 +00:00
|
|
|
TimeoutWarningMessage ::= [APPLICATION 132] SEQUENCE {
|
|
|
|
|
timeoutReason ENUMERATED {
|
|
|
|
|
timeoutNoDataReceived (0),
|
|
|
|
|
timeoutInactiveGame (1)
|
|
|
|
|
},
|
|
|
|
|
remainingSeconds INTEGER
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ResetTimeoutMessage ::= [APPLICATION 133] SEQUENCE {
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-12 23:07:20 +00:00
|
|
|
ErrorMessage ::= [APPLICATION 255] SEQUENCE {
|
|
|
|
|
errorReason ENUMERATED {
|
|
|
|
|
errorReserved (0),
|
|
|
|
|
errorInitVersionNotSupported (1),
|
|
|
|
|
errorInitServerFull (2),
|
|
|
|
|
errorInitAuthFailure (3),
|
|
|
|
|
errorInitPlayerNameInUse (4),
|
|
|
|
|
errorInitInvalidPlayerName (5),
|
|
|
|
|
errorInitServerMaintenance (6),
|
2009-12-23 09:53:01 +00:00
|
|
|
errorInitBlocked (7),
|
|
|
|
|
errorAvatarTooLarge (8),
|
2009-07-12 23:07:20 +00:00
|
|
|
errorInvalidPacket (256),
|
|
|
|
|
errorInvalidState (257),
|
|
|
|
|
errorKickedFromServer (258),
|
|
|
|
|
errorBannedFromServer (259),
|
|
|
|
|
errorSessionTimeout (260)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-19 22:40:12 +00:00
|
|
|
NetGameState ::= ENUMERATED {
|
2009-07-11 22:04:46 +00:00
|
|
|
statePreflop (0),
|
|
|
|
|
stateFlop (1),
|
|
|
|
|
stateTurn (2),
|
|
|
|
|
stateRiver (3),
|
|
|
|
|
statePreflopSmallBlind (4),
|
|
|
|
|
statePreflopBigBlind (5)
|
|
|
|
|
}
|
|
|
|
|
|
2009-07-19 22:40:12 +00:00
|
|
|
NetPlayerAction ::= ENUMERATED {
|
2009-07-11 22:04:46 +00:00
|
|
|
actionNone (0),
|
|
|
|
|
actionFold (1),
|
|
|
|
|
actionCheck (2),
|
|
|
|
|
actionCall (3),
|
|
|
|
|
actionBet (4),
|
|
|
|
|
actionRaise (5),
|
|
|
|
|
actionAllIn (6)
|
2009-06-28 21:59:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NonZeroId ::= INTEGER(1..4294967295)
|
|
|
|
|
|
2009-07-12 23:07:20 +00:00
|
|
|
Id ::= INTEGER(0..4294967295)
|
|
|
|
|
|
2009-08-04 07:17:46 +00:00
|
|
|
Guid ::= INTEGER(0..4294967295) -- TODO
|
2009-06-28 21:59:45 +00:00
|
|
|
|
2009-07-11 22:04:46 +00:00
|
|
|
Card ::= INTEGER(0..51)
|
2009-06-28 21:59:45 +00:00
|
|
|
|
|
|
|
|
END
|