Class ClientHandlerStub

java.lang.Object
net.sf.colossus.server.ClientHandlerStub
All Implemented Interfaces:
IClient
Direct Known Subclasses:
ClientHandler

public class ClientHandlerStub extends Object implements IClient
  • Field Details

    • LOGGER

      private static final Logger LOGGER
    • sep

      protected static final String sep
      See Also:
    • server

      protected Server server
    • counter

      protected static int counter
    • isGone

      protected boolean isGone
    • playerName

      protected String playerName
    • signonName

      protected String signonName
    • messageCounter

      protected int messageCounter
    • isCommitPoint

      protected boolean isCommitPoint
    • redoQueue

      protected final ArrayList<MessageForClient> redoQueue
    • previousInfoStringsString

      private String previousInfoStringsString
    • alreadyHandled

      private int alreadyHandled
  • Constructor Details

    • ClientHandlerStub

      public ClientHandlerStub(Server server)
  • Method Details

    • isStub

      protected boolean isStub()
    • canHandlePingRequest

      protected boolean canHandlePingRequest()
    • canHandleAdvancedSync

      public boolean canHandleAdvancedSync()
    • supportsReconnect

      protected boolean supportsReconnect()
    • setIsGone

      public void setIsGone(String reason)
    • sendToClient

      protected void sendToClient(String message)
    • flushQueuedContent

      protected void flushQueuedContent()
      Selector reported that client became writable again (after a prior write attempt had not written all bytes). Now start/try writing the message(s) which are still in the queue.
    • enqueueToRedoQueue

      protected void enqueueToRedoQueue(int messageNr, String message)
    • commitPoint

      protected void commitPoint()
    • disposeClient

      public void disposeClient()
      Server side disposes a client (and informs it about it first) To be used only for "disposeAllClients()", otherwise setIsGone reason is misleading.
      Specified by:
      disposeClient in interface IClient
    • tellEngagement

      public void tellEngagement(MasterHex hex, Legion attacker, Legion defender)
      Specified by:
      tellEngagement in interface IClient
    • tellEngagementResults

      public void tellEngagementResults(Legion winner, String method, int points, int turns)
      Specified by:
      tellEngagementResults in interface IClient
    • tellWhatsHappening

      public void tellWhatsHappening(String message)
      Specified by:
      tellWhatsHappening in interface IClient
    • tellMovementRoll

      public void tellMovementRoll(int roll)
      Specified by:
      tellMovementRoll in interface IClient
    • syncOption

      public void syncOption(String optname, String value)
      Specified by:
      syncOption in interface IClient
    • updatePlayerInfo

      public void updatePlayerInfo(List<String> infoStrings)
      Specified by:
      updatePlayerInfo in interface IClient
    • updateOnePlayersInfo

      public void updateOnePlayersInfo(boolean redundant, String reason, String ShouldBeSeveralSeparateVariablesHerePerhaps)
      A new way to pass changed player info to clients. Shortened info (e.g. color, dead state, ...) not sent every time; Includes a reason why sent (mostly used internally on server side for debugging/development purposes), and a flag whether this info should be redundant; idea behind it: on the long run, clients should be able to update game/player info "autonomously" (same logic implemented on client as on server) instead of server doing it and synching to all clients. So this redundant is meant to be used as safety net to detect where that new approach might miss something.
      Specified by:
      updateOnePlayersInfo in interface IClient
    • setColor

      public void setColor(PlayerColor color)
      Specified by:
      setColor in interface IClient
    • updateCreatureCount

      public void updateCreatureCount(CreatureType type, int count, int deadCount)
      Specified by:
      updateCreatureCount in interface IClient
    • removeLegion

      public void removeLegion(Legion legion)
      Specified by:
      removeLegion in interface IClient
    • setLegionStatus

      public void setLegionStatus(Legion legion, boolean moved, boolean teleported, EntrySide entrySide, CreatureType lastRecruit)
      Specified by:
      setLegionStatus in interface IClient
    • addCreature

      public void addCreature(Legion legion, CreatureType creature, String reason)
      Specified by:
      addCreature in interface IClient
    • removeCreature

      public void removeCreature(Legion legion, CreatureType creature, String reason)
      Specified by:
      removeCreature in interface IClient
    • revealCreatures

      public void revealCreatures(Legion legion, List<CreatureType> creatures, String reason)
      Specified by:
      revealCreatures in interface IClient
    • revealEngagedCreatures

      public void revealEngagedCreatures(Legion legion, List<CreatureType> creatures, boolean isAttacker, String reason)
      print the 'revealEngagagedCreature'-message, args: markerId, isAttacker, list of creature names
      Specified by:
      revealEngagedCreatures in interface IClient
      Parameters:
      creatures - List of creatures in this legion
      isAttacker - true for attacker, false for defender
      reason - why this was revealed
      markerId - legion marker name that is currently in battle
    • removeDeadBattleChits

      public void removeDeadBattleChits()
      Specified by:
      removeDeadBattleChits in interface IClient
    • placeNewChit

      public void placeNewChit(String imageName, boolean inverted, int tag, BattleHex hex)
      Specified by:
      placeNewChit in interface IClient
    • tellReplay

      public void tellReplay(boolean val, int maxTurn)
      Specified by:
      tellReplay in interface IClient
    • tellRedo

      public void tellRedo(boolean val)
      Specified by:
      tellRedo in interface IClient
    • initBoard

      public void initBoard()
      Specified by:
      initBoard in interface IClient
    • setPlayerName

      public void setPlayerName(String playerName)
      Specified by:
      setPlayerName in interface IClient
    • getSignonName

      public String getSignonName()
    • getClientName

      public String getClientName()
    • getPlayerName

      public String getPlayerName()
    • createSummonAngel

      public void createSummonAngel(Legion legion)
      Specified by:
      createSummonAngel in interface IClient
    • askAcquireAngel

      public void askAcquireAngel(Legion legion, List<CreatureType> recruits)
      Specified by:
      askAcquireAngel in interface IClient
    • askChooseStrikePenalty

      public void askChooseStrikePenalty(List<String> choices)
      Specified by:
      askChooseStrikePenalty in interface IClient
    • tellGameOver

      public void tellGameOver(String message, boolean disposeFollows)
      Specified by:
      tellGameOver in interface IClient
    • tellPlayerElim

      public void tellPlayerElim(Player player, Player slayer)
      Specified by:
      tellPlayerElim in interface IClient
    • askConcede

      public void askConcede(Legion ally, Legion enemy)
      Specified by:
      askConcede in interface IClient
    • askFlee

      public void askFlee(Legion ally, Legion enemy)
      Specified by:
      askFlee in interface IClient
    • askNegotiate

      public void askNegotiate(Legion attacker, Legion defender)
      Specified by:
      askNegotiate in interface IClient
    • tellProposal

      public void tellProposal(String proposalString)
      Specified by:
      tellProposal in interface IClient
    • tellSlowResults

      public void tellSlowResults(int targetTag, int slowValue)
      Specified by:
      tellSlowResults in interface IClient
    • tellStrikeResults

      public void tellStrikeResults(int strikerTag, int targetTag, int strikeNumber, List<String> rolls, int damage, boolean killed, boolean wasCarry, int carryDamageLeft, Set<String> carryTargetDescriptions)
      Specified by:
      tellStrikeResults in interface IClient
    • initBattle

      public void initBattle(MasterHex hex, int battleTurnNumber, Player battleActivePlayer, BattlePhase battlePhase, Legion attacker, Legion defender)
      Specified by:
      initBattle in interface IClient
    • cleanupBattle

      public void cleanupBattle()
      Specified by:
      cleanupBattle in interface IClient
    • nextEngagement

      public void nextEngagement()
      Specified by:
      nextEngagement in interface IClient
    • doReinforce

      public void doReinforce(Legion legion)
      Specified by:
      doReinforce in interface IClient
    • didRecruit

      public void didRecruit(Legion legion, CreatureType recruit, CreatureType recruiter, int numRecruiters)
      Specified by:
      didRecruit in interface IClient
    • undidRecruit

      public void undidRecruit(Legion legion, CreatureType recruit)
      Specified by:
      undidRecruit in interface IClient
    • setupTurnState

      public void setupTurnState(Player activePlayer, int turnNumber)
      Specified by:
      setupTurnState in interface IClient
    • setupSplit

      public void setupSplit(Player activePlayer, int turnNumber)
      Specified by:
      setupSplit in interface IClient
    • setupMove

      public void setupMove()
      Specified by:
      setupMove in interface IClient
    • setupFight

      public void setupFight()
      Specified by:
      setupFight in interface IClient
    • setupMuster

      public void setupMuster()
      Specified by:
      setupMuster in interface IClient
    • kickPhase

      public void kickPhase()
      Specified by:
      kickPhase in interface IClient
    • setupBattleSummon

      public void setupBattleSummon(Player battleActivePlayer, int battleTurnNumber)
      Specified by:
      setupBattleSummon in interface IClient
    • setupBattleRecruit

      public void setupBattleRecruit(Player battleActivePlayer, int battleTurnNumber)
      Specified by:
      setupBattleRecruit in interface IClient
    • setupBattleMove

      public void setupBattleMove(Player battleActivePlayer, int battleTurnNumber)
      Specified by:
      setupBattleMove in interface IClient
    • setupBattleFight

      public void setupBattleFight(BattlePhase battlePhase, Player battleActivePlayer)
      Specified by:
      setupBattleFight in interface IClient
    • tellLegionLocation

      public void tellLegionLocation(Legion legion, MasterHex hex)
      Specified by:
      tellLegionLocation in interface IClient
    • tellBattleMove

      public void tellBattleMove(int tag, BattleHex startingHex, BattleHex endingHex, boolean undo)
      Specified by:
      tellBattleMove in interface IClient
    • didMove

      public void didMove(Legion legion, MasterHex startingHex, MasterHex currentHex, EntrySide entrySide, boolean teleport, CreatureType teleportingLord, boolean splitLegionHasForcedMove)
      Specified by:
      didMove in interface IClient
    • undidMove

      public void undidMove(Legion legion, MasterHex formerHex, MasterHex currentHex, boolean splitLegionHasForcedMove)
      Specified by:
      undidMove in interface IClient
    • didSummon

      public void didSummon(Legion summoner, Legion donor, CreatureType summon)
      Specified by:
      didSummon in interface IClient
    • undidSplit

      public void undidSplit(Legion splitoff, Legion survivor, int turn)
      Specified by:
      undidSplit in interface IClient
    • didSplit

      public void didSplit(MasterHex hex, Legion parent, Legion child, int childHeight, List<CreatureType> splitoffs, int turn)
      Specified by:
      didSplit in interface IClient
    • askPickColor

      public void askPickColor(List<PlayerColor> colorsLeft)
      Specified by:
      askPickColor in interface IClient
    • askPickFirstMarker

      public void askPickFirstMarker()
      Specified by:
      askPickFirstMarker in interface IClient
    • log

      public void log(String message)
      Specified by:
      log in interface IClient
    • nak

      public void nak(String reason, String errmsg)
      Specified by:
      nak in interface IClient
    • setBoardActive

      public void setBoardActive(boolean val)
      Specified by:
      setBoardActive in interface IClient
    • tellInitialGameInfo

      public void tellInitialGameInfo(String variantName, Collection<String> playerNames)
    • confirmWhenCaughtUp

      public void confirmWhenCaughtUp()
      Specified by:
      confirmWhenCaughtUp in interface IClient
    • serverConfirmsConnection

      public void serverConfirmsConnection()
      Specified by:
      serverConfirmsConnection in interface IClient
    • pingRequest

      public void pingRequest()
      Specified by:
      pingRequest in interface IClient
    • messageFromServer

      public void messageFromServer(String message)
      Specified by:
      messageFromServer in interface IClient
    • appendToConnectionLog

      public void appendToConnectionLog(String message)
      Specified by:
      appendToConnectionLog in interface IClient
    • tellSyncCompleted

      public void tellSyncCompleted(int syncRequestNumber)
      Specified by:
      tellSyncCompleted in interface IClient