public class RealEarlyServerProxy extends java.lang.Object implements EarlyServerProxy
Modifier and Type | Field and Description |
---|---|
private Deserializer |
deserializer |
private int |
gameID |
private java.lang.String |
HTTP_GET |
private java.lang.String |
HTTP_POST |
private Serializer |
serializer |
private java.lang.String |
SERVER_HOST |
private int |
SERVER_PORT |
private java.lang.String |
URL_PREFIX |
private UserCookie |
userCookie |
private int |
userIndex |
private java.lang.String |
userName |
Constructor and Description |
---|
RealEarlyServerProxy()
Default constructor.
|
RealEarlyServerProxy(java.lang.String server_host,
int server_port)
Sets up connection with the server with specified parameters
|
Modifier and Type | Method and Description |
---|---|
NetGameModel |
acceptTrade(boolean willAccept)
Notifies the server whether this player has decided to accept or reject a trade
|
void |
addAI(AIType aiType)
Adds an AI to the game
|
NetGameModel |
buildCity(VertexLocation vertexLocation)
Notifies the server that the user has decided to build a city
|
NetGameModel |
buildRoad(EdgeLocation edgeLocation,
boolean free)
Notifies the server that the user has decided to build a road
|
NetGameModel |
buildSettlement(VertexLocation vertexLocation,
boolean free)
Notifies the server that the user has decided to build a settlement
|
NetGameModel |
buyDevCard()
Notifies the server that the user has bought a development card
|
void |
clearCookies()
FOR DEBUGGING ONLY
TODO make private for distro
Clears all cookies
|
NetGame |
createGame(boolean randomTiles,
boolean randomNumbers,
boolean randomPorts,
java.lang.String name)
Creates a game on the server
|
NetGameModel |
discardCards(java.util.List<java.lang.Integer> resourceList)
Notifies the server that the user has discarded cards
|
private java.lang.String |
doJSONGet(java.lang.String urlPath) |
private java.lang.String |
doJSONPost(java.lang.String urlPath,
java.lang.String postData,
boolean getUserCookie,
boolean getGameCookie) |
NetGameModel |
finishTurn()
Notifies the server that the user has finished his turn
|
NetGameModel |
getGameModel()
Retrieves the game model from the server
|
UserCookie |
getUserCookie()
Gets the user cookie
|
int |
getUserId()
Gets the player ID
|
int |
getUserIndex()
Getting for current user index
|
java.lang.String |
getUserName()
Gets the current user's name
|
void |
joinGame(int id,
CatanColor color) |
java.util.List<AIType> |
listAI() |
java.util.List<NetGame> |
listGames()
Fetches a list of ongoing games
|
boolean |
loginUser(java.lang.String username,
java.lang.String password)
Logs the specified user in and returns a User object if the user was
successfully logged in.
|
NetGameModel |
maritimeTrade(int ratio,
ResourceType inputResource,
ResourceType outputResource)
Notifies the server that the user has decided to initiate a maritime trade
|
NetGameModel |
monopolyCard(ResourceType resource)
Notifies the server that the user has played a monopoly card
|
NetGameModel |
monumentCard()
Notifies the server that the user has played a monument card
|
NetGameModel |
offerTrade(java.util.List<java.lang.Integer> resourceList,
int receiver)
Notifies the server that the user has decided to offer a trade to another player
|
boolean |
registerUser(java.lang.String username,
java.lang.String password)
Registers a user with the specified username and password
|
NetGameModel |
roadBuildingCard(EdgeLocation location1,
EdgeLocation location2)
Notifies the server that the user has played a road building card
|
NetGameModel |
robPlayer(int victimIndex,
HexLocation location)
Notifies the server that the user has decided to rob another player
|
NetGameModel |
rollNumber(int roll)
Reports the result of a dice roll to the server
|
NetGameModel |
sendChat(java.lang.String content)
Sends a chat message from the specified user to the server
|
NetGameModel |
soldierCard(int victimIndex,
HexLocation hexLocation)
Notifies the server that the user has played a soldier card
|
NetGameModel |
yearOfPlentyCard(ResourceType resource1,
ResourceType resource2)
Notifies the server that the user has played a year of plenty card
|
private UserCookie userCookie
private int gameID
private java.lang.String SERVER_HOST
private int SERVER_PORT
private java.lang.String URL_PREFIX
private final java.lang.String HTTP_GET
private final java.lang.String HTTP_POST
private Serializer serializer
private Deserializer deserializer
private int userIndex
private java.lang.String userName
public RealEarlyServerProxy()
public RealEarlyServerProxy(java.lang.String server_host, int server_port)
server_host
- this string represents the hostname of the serverserver_port
- this int is the port to send requests to on the serverpublic int getUserIndex()
public int getUserId()
getUserId
in interface EarlyServerProxy
public java.lang.String getUserName() throws ServerProxyException
getUserName
in interface EarlyServerProxy
ServerProxyException
- if not logged inpublic boolean loginUser(java.lang.String username, java.lang.String password) throws ServerProxyException
EarlyServerProxy
loginUser
in interface EarlyServerProxy
username
- The username of the user to log inpassword
- The password of the user to log inServerProxyException
- if the user could not be logged inpublic boolean registerUser(java.lang.String username, java.lang.String password) throws ServerProxyException
EarlyServerProxy
registerUser
in interface EarlyServerProxy
username
- The username of the user to be registeredpassword
- The password of the user to be registeredServerProxyException
- if this user could not be registeredpublic java.util.List<NetGame> listGames() throws ServerProxyException
EarlyServerProxy
listGames
in interface EarlyServerProxy
ServerProxyException
public NetGame createGame(boolean randomTiles, boolean randomNumbers, boolean randomPorts, java.lang.String name) throws ServerProxyException
EarlyServerProxy
createGame
in interface EarlyServerProxy
randomTiles
- Whether the server should place random tilesrandomNumbers
- Whether the server should place random number chitsrandomPorts
- Whether the server should place random portsname
- The name of the game to be createdServerProxyException
- if something goes wrongpublic void joinGame(int id, CatanColor color) throws ServerProxyException
joinGame
in interface EarlyServerProxy
color
- the color the user wishes to represent himServerProxyException
- if something goes wrongpublic NetGameModel getGameModel() throws ServerProxyException
EarlyServerProxy
getGameModel
in interface EarlyServerProxy
ServerProxyException
- if something goes wrongpublic void addAI(AIType aiType) throws ServerProxyException
EarlyServerProxy
addAI
in interface EarlyServerProxy
aiType
- the type of AI the user wishes to addServerProxyException
- if there is no logged in userpublic java.util.List<AIType> listAI() throws ServerProxyException
listAI
in interface EarlyServerProxy
ServerProxyException
- if there is no logged in userpublic NetGameModel sendChat(java.lang.String content) throws ServerProxyException
EarlyServerProxy
sendChat
in interface EarlyServerProxy
content
- The content of the chat messageServerProxyException
- if there is no logged in userpublic NetGameModel rollNumber(int roll) throws ServerProxyException
EarlyServerProxy
rollNumber
in interface EarlyServerProxy
roll
- The result of the user's rollServerProxyException
- if there is no logged in userpublic NetGameModel robPlayer(int victimIndex, HexLocation location) throws ServerProxyException
EarlyServerProxy
robPlayer
in interface EarlyServerProxy
victimIndex
- The index of the victim of the user's robbinglocation
- The new hex location of the robberServerProxyException
- if there is no logged in userpublic NetGameModel finishTurn() throws ServerProxyException
EarlyServerProxy
finishTurn
in interface EarlyServerProxy
ServerProxyException
- if there is no logged in userpublic NetGameModel buyDevCard() throws ServerProxyException
EarlyServerProxy
buyDevCard
in interface EarlyServerProxy
ServerProxyException
- if there is no logged in userpublic NetGameModel yearOfPlentyCard(ResourceType resource1, ResourceType resource2) throws ServerProxyException
EarlyServerProxy
yearOfPlentyCard
in interface EarlyServerProxy
resource1
- The first chosen resourceresource2
- The second chosen resourceServerProxyException
- if there is no logged in userpublic NetGameModel roadBuildingCard(EdgeLocation location1, EdgeLocation location2) throws ServerProxyException
EarlyServerProxy
roadBuildingCard
in interface EarlyServerProxy
location1
- The EdgeLocation location of the first roadlocation2
- The EdgeLocation location of the second cardServerProxyException
- if there is no logged in userpublic NetGameModel soldierCard(int victimIndex, HexLocation hexLocation) throws ServerProxyException
EarlyServerProxy
soldierCard
in interface EarlyServerProxy
victimIndex
- The index of the player who is being robbedhexLocation
- The new hex location of the robberServerProxyException
- if there is no logged in userpublic NetGameModel monopolyCard(ResourceType resource) throws ServerProxyException
EarlyServerProxy
monopolyCard
in interface EarlyServerProxy
resource
- The resource that the player has chosen to have a monopoly onServerProxyException
- if there is no logged in userpublic NetGameModel monumentCard() throws ServerProxyException
EarlyServerProxy
monumentCard
in interface EarlyServerProxy
ServerProxyException
- if there is no logged in userpublic NetGameModel buildRoad(EdgeLocation edgeLocation, boolean free) throws ServerProxyException
EarlyServerProxy
buildRoad
in interface EarlyServerProxy
edgeLocation
- The edge location of the roadfree
- Whether this road was free (only true during the set up phases)ServerProxyException
- if there is no logged in userpublic NetGameModel buildSettlement(VertexLocation vertexLocation, boolean free) throws ServerProxyException
EarlyServerProxy
buildSettlement
in interface EarlyServerProxy
vertexLocation
- The vertex location of the settlementfree
- Whether this settlement was free (only true during the set up phases)ServerProxyException
- if there is no logged in userpublic NetGameModel buildCity(VertexLocation vertexLocation) throws ServerProxyException
EarlyServerProxy
buildCity
in interface EarlyServerProxy
vertexLocation
- The vertex location of the cityServerProxyException
- if there is no logged in userpublic NetGameModel offerTrade(java.util.List<java.lang.Integer> resourceList, int receiver) throws ServerProxyException
EarlyServerProxy
offerTrade
in interface EarlyServerProxy
resourceList
- A list of the resources that the user wishes to trade, in this order: brick, ore, sheep,
wheat, and wood. Negative values denotes that this user will give these resources, and positive values denote
the resources that will be receivedreceiver
- The index of the player who will receive this trade offerServerProxyException
- if there is no logged in userpublic NetGameModel acceptTrade(boolean willAccept) throws ServerProxyException
EarlyServerProxy
acceptTrade
in interface EarlyServerProxy
willAccept
- true if the user will accept the trade, false if notServerProxyException
- if there is no logged in userpublic NetGameModel maritimeTrade(int ratio, ResourceType inputResource, ResourceType outputResource) throws ServerProxyException
EarlyServerProxy
maritimeTrade
in interface EarlyServerProxy
ratio
- The ratio of resources demanded by the harborinputResource
- The resources traded awayoutputResource
- The resource receivedServerProxyException
- if there is no logged in userpublic NetGameModel discardCards(java.util.List<java.lang.Integer> resourceList) throws ServerProxyException
EarlyServerProxy
discardCards
in interface EarlyServerProxy
resourceList
- A list of integers that denotes how many of each resource the user will discard. The
order is brick, ore, sheep, wheat, and woodServerProxyException
- if there is no logged in userprivate java.lang.String doJSONPost(java.lang.String urlPath, java.lang.String postData, boolean getUserCookie, boolean getGameCookie) throws ServerProxyException
ServerProxyException
private java.lang.String doJSONGet(java.lang.String urlPath) throws ServerProxyException
ServerProxyException
public UserCookie getUserCookie()
public void clearCookies()