public class GSONServerProxy extends java.lang.Object implements ServerProxy
| Modifier and Type | Field and Description |
|---|---|
private int |
gameID |
private java.lang.String |
HTTP_GET |
private java.lang.String |
HTTP_POST |
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 |
|---|
GSONServerProxy()
Default constructor.
|
GSONServerProxy(java.lang.String server_host,
int server_port)
Sets up connection with the server with specified parameters
|
| Modifier and Type | Method and Description |
|---|---|
GameModel |
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
|
GameModel |
buildCity(Coordinate location)
Notifies the server that the user has decided to build a city
|
GameModel |
buildRoad(Coordinate start,
Coordinate end,
boolean free)
Notifies the server that the user has decided to build a road
|
GameModel |
buildSettlement(Coordinate location,
boolean free)
Notifies the server that the user has decided to build a settlement
|
GameModel |
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
|
GameInfo |
createGame(boolean randomTiles,
boolean randomNumbers,
boolean randomPorts,
java.lang.String name)
Creates a game on the server
|
GameModel |
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) |
GameModel |
finishTurn()
Notifies the server that the user has finished his turn
|
GameModel |
getGameModel(int version)
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<GameInfo> |
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.
|
GameModel |
maritimeTrade(int ratio,
ResourceType inputResource,
ResourceType outputResource)
Notifies the server that the user has decided to initiate a maritime trade
|
GameModel |
monopolyCard(ResourceType resource)
Notifies the server that the user has played a monopoly card
|
GameModel |
monumentCard()
Notifies the server that the user has played a monument card
|
GameModel |
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
|
GameModel |
roadBuildingCard(Coordinate start1,
Coordinate end1,
Coordinate start2,
Coordinate end2)
Notifies the server that the user has played a road building card
|
GameModel |
robPlayer(int victimIndex,
Coordinate location)
Notifies the server that the user has decided to rob another player
|
GameModel |
rollNumber(int roll)
Reports the result of a dice roll to the server
|
GameModel |
sendChat(java.lang.String content)
Sends a chat message from the specified user to the server
|
GameModel |
soldierCard(int victimIndex,
Coordinate location)
Notifies the server that the user has played a soldier card
|
GameModel |
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 int userIndex
private java.lang.String userName
public GSONServerProxy()
public GSONServerProxy(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 ServerProxypublic java.lang.String getUserName()
throws ServerProxyException
getUserName in interface ServerProxyServerProxyException - if not logged inpublic boolean loginUser(java.lang.String username,
java.lang.String password)
throws ServerProxyException
ServerProxyloginUser in interface ServerProxyusername - 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
ServerProxyregisterUser in interface ServerProxyusername - 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<GameInfo> listGames() throws ServerProxyException
ServerProxylistGames in interface ServerProxyServerProxyExceptionpublic GameInfo createGame(boolean randomTiles, boolean randomNumbers, boolean randomPorts, java.lang.String name) throws ServerProxyException
ServerProxycreateGame in interface ServerProxyrandomTiles - 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 ServerProxycolor - the color the user wishes to represent himServerProxyException - if something goes wrongpublic GameModel getGameModel(int version) throws ServerProxyException
ServerProxygetGameModel in interface ServerProxyversion - the current version of the model in the clientServerProxyException - if something goes wrongpublic void addAI(AIType aiType) throws ServerProxyException
ServerProxyaddAI in interface ServerProxyaiType - 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 ServerProxyServerProxyException - if there is no logged in userpublic GameModel sendChat(java.lang.String content) throws ServerProxyException
ServerProxysendChat in interface ServerProxycontent - The content of the chat messageServerProxyException - if there is no logged in userpublic GameModel rollNumber(int roll) throws ServerProxyException
ServerProxyrollNumber in interface ServerProxyroll - The result of the user's rollServerProxyException - if there is no logged in userpublic GameModel robPlayer(int victimIndex, Coordinate location) throws ServerProxyException
ServerProxyrobPlayer in interface ServerProxyvictimIndex - The index of the victim of the user's robbinglocation - The new coordinate location of the robberServerProxyException - if there is no logged in userpublic GameModel finishTurn() throws ServerProxyException
ServerProxyfinishTurn in interface ServerProxyServerProxyException - if there is no logged in userpublic GameModel buyDevCard() throws ServerProxyException
ServerProxybuyDevCard in interface ServerProxyServerProxyException - if there is no logged in userpublic GameModel yearOfPlentyCard(ResourceType resource1, ResourceType resource2) throws ServerProxyException
ServerProxyyearOfPlentyCard in interface ServerProxyresource1 - The first chosen resourceresource2 - The second chosen resourceServerProxyException - if there is no logged in userpublic GameModel roadBuildingCard(Coordinate start1, Coordinate end1, Coordinate start2, Coordinate end2) throws ServerProxyException
ServerProxyroadBuildingCard in interface ServerProxystart1 - The start coordinate of the first roadend1 - The end coordinate of the first roadstart2 - The start location of the second roadend2 - The end location of the second roadServerProxyException - if there is no logged in userpublic GameModel soldierCard(int victimIndex, Coordinate location) throws ServerProxyException
ServerProxysoldierCard in interface ServerProxyvictimIndex - The index of the player who is being robbedlocation - The new location of the robberServerProxyException - if there is no logged in userpublic GameModel monopolyCard(ResourceType resource) throws ServerProxyException
ServerProxymonopolyCard in interface ServerProxyresource - The resource that the player has chosen to have a monopoly onServerProxyException - if there is no logged in userpublic GameModel monumentCard() throws ServerProxyException
ServerProxymonumentCard in interface ServerProxyServerProxyException - if there is no logged in userpublic GameModel buildRoad(Coordinate start, Coordinate end, boolean free) throws ServerProxyException
ServerProxybuildRoad in interface ServerProxystart - the Coordinate where the road startsend - the Coordinate where the road endsfree - Whether this road was free (only true during the set up phases)ServerProxyException - if there is no logged in userpublic GameModel buildSettlement(Coordinate location, boolean free) throws ServerProxyException
ServerProxybuildSettlement in interface ServerProxylocation - The vertex coordinate of the settlementfree - Whether this settlement was free (only true during the set up phases)ServerProxyException - if there is no logged in userpublic GameModel buildCity(Coordinate location) throws ServerProxyException
ServerProxybuildCity in interface ServerProxylocation - The vertex location of the cityServerProxyException - if there is no logged in userpublic GameModel offerTrade(java.util.List<java.lang.Integer> resourceList, int receiver) throws ServerProxyException
ServerProxyofferTrade in interface ServerProxyresourceList - 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 GameModel acceptTrade(boolean willAccept) throws ServerProxyException
ServerProxyacceptTrade in interface ServerProxywillAccept - true if the user will accept the trade, false if notServerProxyException - if there is no logged in userpublic GameModel maritimeTrade(int ratio, ResourceType inputResource, ResourceType outputResource) throws ServerProxyException
ServerProxymaritimeTrade in interface ServerProxyratio - The ratio of resources demanded by the harborinputResource - The resources traded awayoutputResource - The resource receivedServerProxyException - if there is no logged in userpublic GameModel discardCards(java.util.List<java.lang.Integer> resourceList) throws ServerProxyException
ServerProxydiscardCards in interface ServerProxyresourceList - 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
ServerProxyExceptionprivate java.lang.String doJSONGet(java.lang.String urlPath)
throws ServerProxyException
ServerProxyExceptionpublic UserCookie getUserCookie()
public void clearCookies()