soc.message
Class SOCPlayDevCardRequest

java.lang.Object
  extended by soc.message.SOCMessage
      extended by soc.message.SOCPlayDevCardRequest
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, SOCMessageForGame

public class SOCPlayDevCardRequest
extends SOCMessage
implements SOCMessageForGame

This message from client means that a player wants to play a development card. If client player can play it, server will respond to all players with SOCDevCardAction(PLAY), SOCSetPlayedDevCard, and other messages. Otherwise, server will send human players a SOCGameServerText or send robots a SOCDevCardAction(CANNOT_PLAY).

Note that in v2.0.00, the getDevCard() value for SOCDevCardConstants.KNIGHT was changed. This class doesn't handle the translation from old clients (SOCDevCardConstants.KNIGHT_FOR_VERS_1_X), the caller must do so.

Author:
Robert S. Thomas
See Also:
Serialized Form

Field Summary
private  int devCard
          The type of dev card
private  java.lang.String game
          Name of game
private static long serialVersionUID
           
 
Fields inherited from class soc.message.SOCMessage
ACCEPTOFFER, ADMINPING, ADMINRESET, AUTHREQUEST, BANKTRADE, BCASTTEXTMSG, BOARDLAYOUT, BOARDLAYOUT2, BOARDSPECIALEDGE, BUILDREQUEST, BUYCARDREQUEST, CANCELBUILDREQUEST, CHANGEFACE, CHANNELS, CHOOSEPLAYER, CHOOSEPLAYERREQUEST, CLEAROFFER, CLEARTRADEMSG, CREATEACCOUNT, DEBUGFREEPLACE, DELETECHANNEL, DELETEGAME, DEVCARDACTION, DEVCARDCOUNT, DICERESULT, DICERESULTRESOURCES, DISCARD, DISCARDREQUEST, DISCOVERYPICK, ENDTURN, FIRSTPLAYER, GAME_NONE, GAMEMEMBERS, GAMEOPTIONGETDEFAULTS, GAMEOPTIONGETINFOS, GAMEOPTIONINFO, GAMES, GAMESERVERTEXT, GAMESTATE, GAMESTATS, GAMESWITHOPTIONS, GAMETEXTMSG, IMAROBOT, INVENTORYITEMACTION, JOIN, JOINAUTH, JOINGAME, JOINGAMEAUTH, LARGESTARMY, LASTSETTLEMENT, LEAVE, LEAVEALL, LEAVEGAME, LEGALEDGES, LOCALIZEDSTRINGS, LONGESTROAD, MAKEOFFER, MEMBERS, messageType, MONOPOLYPICK, MOVEPIECE, MOVEPIECEREQUEST, MOVEROBBER, NEWCHANNEL, NEWGAME, NEWGAMEWITHOPTIONS, NEWGAMEWITHOPTIONSREQUEST, NULLMESSAGE, PICKRESOURCES, PICKRESOURCESREQUEST, PIECEVALUE, PLAYDEVCARDREQUEST, PLAYERELEMENT, PLAYERELEMENTS, PLAYERSTATS, POTENTIALSETTLEMENTS, PUTPIECE, REJECTCONNECTION, REJECTOFFER, REMOVEPIECE, RESETBOARDAUTH, RESETBOARDREJECT, RESETBOARDREQUEST, RESETBOARDVOTE, RESETBOARDVOTEREQUEST, RESOURCECOUNT, REVEALFOGHEX, ROBOTDISMISS, ROBOTJOINGAMEREQUEST, ROLLDICE, ROLLDICEPROMPT, ROLLDICEREQUEST, SCENARIOINFO, sep, sep_char, sep2, sep2_char, SERVERPING, SETPLAYEDDEVCARD, SETSEATLOCK, SETSPECIALITEM, SETTURN, SETUPDONE, SIMPLEACTION, SIMPLEREQUEST, SITDOWN, STARTGAME, STATUSMESSAGE, SVPTEXTMSG, TEXTMSG, TIMINGPING, TURN, UPDATEROBOTPARAMS, VERSION
 
Constructor Summary
SOCPlayDevCardRequest(java.lang.String ga, int dc)
          Create a PlayDevCardRequest message.
 
Method Summary
 int getDevCard()
           
 java.lang.String getGame()
          Name of game this message is for.
static SOCPlayDevCardRequest parseDataStr(java.lang.String s)
          Parse the command String into a PlayDevCardRequest message
 java.lang.String toCmd()
          PLAYDEVCARDREQUEST sep game sep2 devCard
static java.lang.String toCmd(java.lang.String ga, int dc)
          PLAYDEVCARDREQUEST sep game sep2 devCard
 java.lang.String toString()
          Simple human-readable representation, used for debug purposes.
 
Methods inherited from class soc.message.SOCMessage
arrayIntoStringBuf, enumIntoStringBuf, getClassNameShort, getMaximumVersion, getMinimumVersion, getType, isSingleLineAndSafe, isSingleLineAndSafe, toMsg
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface soc.message.SOCMessageForGame
getType
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

game

private java.lang.String game
Name of game


devCard

private int devCard
The type of dev card

Constructor Detail

SOCPlayDevCardRequest

public SOCPlayDevCardRequest(java.lang.String ga,
                             int dc)
Create a PlayDevCardRequest message.

Parameters:
ga - the name of the game
dc - the type of dev card
Method Detail

getGame

public java.lang.String getGame()
Description copied from interface: SOCMessageForGame
Name of game this message is for. Must not be null if message is in per-game structures or code.

At the server, the message treater dispatches incoming SOCMessageForGames based on their getGame():

Specified by:
getGame in interface SOCMessageForGame
Returns:
the name of the game
See Also:
SOCMessage.GAME_NONE

getDevCard

public int getDevCard()
Returns:
the type of dev card
Note that in v2.0.00, the value for SOCDevCardConstants.KNIGHT was changed. This class doesn't handle the translation from old clients (SOCDevCardConstants.KNIGHT_FOR_VERS_1_X), the caller must do so.

toCmd

public java.lang.String toCmd()
PLAYDEVCARDREQUEST sep game sep2 devCard

Specified by:
toCmd in class SOCMessage
Returns:
the command string

toCmd

public static java.lang.String toCmd(java.lang.String ga,
                                     int dc)
PLAYDEVCARDREQUEST sep game sep2 devCard

Parameters:
ga - the name of the game
dc - the type of dev card
Returns:
the command string

parseDataStr

public static SOCPlayDevCardRequest parseDataStr(java.lang.String s)
Parse the command String into a PlayDevCardRequest message

Parameters:
s - the String to parse
Returns:
a PlayDevCardRequest message, or null of the data is garbled

toString

public java.lang.String toString()
Description copied from class: SOCMessage
Simple human-readable representation, used for debug purposes.

Specified by:
toString in class SOCMessage
Returns:
a human readable form of the message