Class GameClient

All Implemented Interfaces:
CLI, Runnable

public class GameClient extends SugarMessageProcessor implements Runnable, CLI
  • Field Details

    • sugarClient

      private final SugarClient sugarClient
    • logger

      private final GameLogger logger
    • jwt

      private String jwt
    • username

      public String username
    • currentlyPlaying

      public boolean currentlyPlaying
    • command

      private static final Pattern command
    • parameter

      private static final Pattern parameter
    • keyValue

      private static final Pattern keyValue
    • lastSnapshot

      public LightGameState lastSnapshot
  • Constructor Details

    • GameClient

      public GameClient()
  • Method Details

    • run

      public void run()
      Specified by:
      run in interface Runnable
    • send

      private void send(SugarMessage message) throws DisconnectionException
      Throws:
      DisconnectionException
    • signUp

      public void signUp(String username, String password)
    • login

      public void login(String username, String password)
    • joinMatchMaking

      public void joinMatchMaking(int numberOfPlayers, boolean expertMode)
    • playCard

      public void playCard(int cardValue)
    • moveStudentFromEntranceToDiningRoom

      public void moveStudentFromEntranceToDiningRoom(String student)
    • moveStudentFromEntranceToArchipelago

      public void moveStudentFromEntranceToArchipelago(String student, int archipelagoIslandCode)
    • moveMotherNature

      public void moveMotherNature(int numberOfSteps)
    • moveMotherNatureToDest

      public void moveMotherNatureToDest(int archipelagoId)
    • grabStudentsFromCloud

      public void grabStudentsFromCloud(int cloudIndex)
    • endTurn

      public void endTurn()
    • help

      public void help()
    • characters

      public void characters()
    • sendAndHandleDisconnection

      private void sendAndHandleDisconnection(SugarMessage message)
    • OKMsg

      public void OKMsg(OKMsg message)
    • KOMsg

      public void KOMsg(KOMsg message)
    • GameOverMsg

      public void GameOverMsg(GameOverMsg message)
    • updateClientMsg

      public void updateClientMsg(UpdateClientMsg message)
    • JWTMsg

      public void JWTMsg(JWTMsg message)
    • peerUPIMessage

      public void peerUPIMessage(SugarMessage message)
    • gamesUpdateMsg

      public void gamesUpdateMsg(GamesUpdateMsg message)
    • base

      public void base(SugarMessage message)
    • parseLine

      public void parseLine(String input)
      Specified by:
      parseLine in interface CLI
    • parseCommand

      private Optional<CLICommand> parseCommand(String command)
    • extractCommand

      private String extractCommand(String input)
    • extractAndParseParameters

      private Map<String,String> extractAndParseParameters(String input) throws SyntaxError
      Throws:
      SyntaxError
    • arePresent

      private boolean arePresent(Optional<?>... args)
    • executeCommand

      public void executeCommand(CLICommand command, Map<String,String> params) throws SyntaxError
      Throws:
      SyntaxError
    • chatMsg

      public void chatMsg(SugarMessage message)
    • sendChatMessage

      public void sendChatMessage(@NotNull @NotNull String to, @NotNull @NotNull String message)
    • rejoinMatch

      public void rejoinMatch()
    • rollback

      public void rollback()
    • playChar

      private void playChar(Map<String,Object> parametersMap) throws SyntaxError
      Plays the character of the expert mode
      Parameters:
      parametersMap - maps of parameters that contains all the parameters and their values
      Throws:
      SyntaxError - if there is a problem with the data entered the CLI
    • playChar

      public void playChar(int characterId)
    • playChar

      public void playChar(int characterId, Color color)
    • playChar

      public void playChar(int characterId, int archipelago)
    • playChar

      public void playChar(int characterId, Color color, int archipelago)
    • playChar

      public void playChar(int characterId, List<Color> studentsToGet, List<Color> studentsToGive)
    • getCharacterIndexFromId

      public int getCharacterIndexFromId(int id)
      Parameters:
      id - character id
      Returns:
      the position on the available characters list of the character with the given id, if not present -1 is returned