def __init__(self, name, shortname, team, battle_format="gen8ou", log_level=0, server_configuration=None, save_replays=False): self.shortname = shortname self.name = name pc = _create_player_configuration_from_player(self) super().__init__(player_configuration=pc, team=team, battle_format=battle_format, log_level=log_level, server_configuration=server_configuration, save_replays=save_replays)
def __init__( self, player_configuration: Optional[PlayerConfiguration] = None, *, avatar: Optional[int] = None, battle_format: str = "gen8randombattle", log_level: Optional[int] = None, max_concurrent_battles: int = 1, save_replays: Union[bool, str] = False, server_configuration: Optional[ServerConfiguration] = None, start_timer_on_battle_start: bool = False, start_listening: bool = True, team: Optional[Union[str, Teambuilder]] = None, ) -> None: """ :param player_configuration: Player configuration. If empty, defaults to an automatically generated username with no password. This option must be set if the server configuration requires authentication. :type player_configuration: PlayerConfiguration, optional :param avatar: Player avatar id. Optional. :type avatar: int, optional :param battle_format: Name of the battle format this player plays. Defaults to gen8randombattle. :type battle_format: str :param log_level: The player's logger level. :type log_level: int. Defaults to logging's default level. :param max_concurrent_battles: Maximum number of battles this player will play concurrently. If 0, no limit will be applied. Defaults to 1. :type max_concurrent_battles: int :param save_replays: Whether to save battle replays. Can be a boolean, where True will lead to replays being saved in a potentially new /replay folder, or a string representing a folder where replays will be saved. :type save_replays: bool or str :param server_configuration: Server configuration. Defaults to Localhost Server Configuration. :type server_configuration: ServerConfiguration, optional :param start_listening: Whether to start listening to the server. Defaults to True. :type start_listening: bool :param start_timer_on_battle_start: Whether to automatically start the battle timer on battle start. Defaults to False. :type start_timer_on_battle_start: bool :param team: The team to use for formats requiring a team. Can be a showdown team string, a showdown packed team string, of a ShowdownTeam object. Defaults to None. :type team: str or Teambuilder, optional """ if player_configuration is None: player_configuration = _create_player_configuration_from_player(self) if server_configuration is None: server_configuration = LocalhostServerConfiguration super(Player, self).__init__( player_configuration=player_configuration, avatar=avatar, log_level=log_level, server_configuration=server_configuration, start_listening=start_listening, ) self._format: str = battle_format self._max_concurrent_battles: int = max_concurrent_battles self._save_replays = save_replays self._start_timer_on_battle_start: bool = start_timer_on_battle_start self._battles: Dict[str, AbstractBattle] = {} self._battle_semaphore: Semaphore = Semaphore(0) self._battle_start_condition: Condition = Condition() self._battle_count_queue: Queue = Queue(max_concurrent_battles) self._battle_end_condition: Condition = Condition() self._challenge_queue: Queue = Queue() if isinstance(team, Teambuilder): self._team = team elif isinstance(team, str): self._team = ConstantTeambuilder(team) else: self._team = None self.logger.debug("Player initialisation finished")