if (joinedPlayers.putIfAbsent(player.getId(), holdemTableListener) != null)
throw new IllegalActionException(player.toString() + " is already joined at this table.");
publishJoinTableEvent(new JoinTableEvent(player.getId()));
subscribeHoldemTableListener(holdemTableListener);
return new HoldemTableContextImpl(player, this);
}