berconpy.ArmaClient¶
- class berconpy.ArmaClient(*, cache=None, dispatch=None, protocol=None)¶
Bases:
RCONClientAn RCONClient subclass that adds more methods for handling Arma 3 RCON.
Methods
add_listener(event, func)A shorthand for the
EventDispatcher.add_listener()method.ban(addr[, duration, reason])Bans a given player ID, GUID, or IP address (without port).
close()Closes the connection.
connect(ip, port, password)Returns an asynchronous context manager for logging into the given IP and port with password.
Requests a list of RCON admins connected to the server, ordered by admin ID and IP address with port.
Requests a list of bans on the server.
Requests a list of mission files on the server.
Requests a list of players from the server.
get_player(player_id)A shorthand for
ArmaCache.get_player().Indicates if the client has a currently active connection with the server.
Indicates if the client is currently authenticated with the server.
Indicates if the client is running.
kick(player_id[, reason])Kicks a player with the given ID from the server with an optional reason.
listen([event])A shorthand for the
EventDispatcher.listen()decorator.Locks the server and prevents new players from joining.
remove_listener(event, func)A shorthand for the
EventDispatcher.remove_listener()method.Restarts the mission and reassigns player roles.
Restarts the currently running mission.
Tells the server to restart.
select_mission(mission[, difficulty])Selects a new mission for the server to load.
send(message)Sends a message to all players in the server.
send_command(command)Sends a command to the server and waits for a response.
Tells the server to shut down.
unban(ban_id)Removes the ban with the given ID from the server.
Unlocks the server and allows new players to join.
wait_for(event, *[, check, timeout])A shorthand for
EventDispatcher.wait_for().whisper(player_id, message)Sends a message to the player with the given ID.
Attributes
A shorthand for
ArmaCache.admin_id.The cache used by the client.
A shorthand for
ArmaCache.players.- add_listener(event, func)¶
A shorthand for the
EventDispatcher.add_listener()method.See the
EventDispatcherfor a list of supported events.
- async ban(addr, duration=None, reason='')¶
Bans a given player ID, GUID, or IP address (without port).
Note that the player ID cannot be used to ban players that are no longer in the server; a GUID or IP address must be provided.
Player.ban_ip()andPlayer.ban_guid()should be shorthands for calling this method.- Parameters:
- Return type:
- Returns:
The response from the server, if any.
- Raises:
RCONCommandError – The server has either disabled this command or failed to respond to our command.
RuntimeError – The client is either not connected or the server could/would not respond to the command.
- close()¶
Closes the connection.
This method is idempotent and can be called multiple times consecutively.
Changed in version 1.1: This method no longer causes the current task to be cancelled.
- connect(ip, port, password)¶
Returns an asynchronous context manager for logging into the given IP and port with password.
Example usage:
client = berconpy.RCONClient() async with client.connect(ip, port, password): print("Connected!") print("Disconnected!")
If an unexpected error occurs after successfully logging in, the current task that the context manager is used in will be cancelled to prevent the script being stuck in an infinite loop.
- Raises:
LoginFailure – The client failed to log into the server.
RuntimeError – This method was called while the client is already connected.
- async fetch_admins()¶
Requests a list of RCON admins connected to the server, ordered by admin ID and IP address with port.
- async fetch_players()¶
Requests a list of players from the server.
This method also updates the player cache.
- get_player(player_id)¶
A shorthand for
ArmaCache.get_player().
- is_connected()¶
Indicates if the client has a currently active connection with the server.
- Return type:
- is_logged_in()¶
Indicates if the client is currently authenticated with the server.
- Return type:
- Returns:
True if authenticated or None if no response has been received from the server.
- Raises:
LoginFailure – The client failed to log into the server.
- is_running()¶
Indicates if the client is running. This may not necessarily mean that the client is connected.
- Return type:
- async kick(player_id, reason='')¶
Kicks a player with the given ID from the server with an optional reason.
Player.kick()is a shorthand for calling this method.- Parameters:
- Return type:
- Returns:
The response from the server, if any.
- Raises:
RCONCommandError – The server has either disabled this command or failed to respond to our command.
RuntimeError – The client is either not connected or the server could/would not respond to the command.
- listen(event=None)¶
A shorthand for the
EventDispatcher.listen()decorator.Example usage:
>>> client = RCONClient() >>> @client.listen() ... async def on_login(): ... print("We have logged in!")
- remove_listener(event, func)¶
A shorthand for the
EventDispatcher.remove_listener()method.This method should be a no-op if the given event and function does not match any registered listener.
- async restart_server()¶
Tells the server to restart. :rtype:
strNote
The client does not automatically close after this command is sent. If you need to prevent the client from indefinitely attempting to reconnect, you should call the
close()method.
- async select_mission(mission, difficulty='')¶
Selects a new mission for the server to load.
- async send(message)¶
Sends a message to all players in the server.
- Parameters:
message (
str) – The message to send.- Return type:
- Returns:
The response from the server, if any.
- Raises:
RCONCommandError – The server has either disabled this command or failed to respond to our command.
RuntimeError – The client is either not connected or the server could/would not respond to the command.
- async send_command(command)¶
Sends a command to the server and waits for a response.
- Parameters:
command (
str) – The command to send.- Return type:
- Returns:
The server’s response as a string.
- Raises:
RCONCommandError – The server has either disabled this command or failed to respond to our command.
RuntimeError – The client is either not connected or the server could/would not respond to the command.
- async shutdown_server()¶
Tells the server to shut down. :rtype:
strNote
The client does not automatically close after this command is sent. If you need to prevent the client from indefinitely attempting to reconnect, you should call the
close()method.
- async unban(ban_id)¶
Removes the ban with the given ID from the server.
- Parameters:
ban_id (
int) – The ID of the ban to remove.- Return type:
- Returns:
The response from the server, if any.
- Raises:
RCONCommandError – The server has either disabled this command or failed to respond to our command.
RuntimeError – The client is either not connected or the server could/would not respond to the command.
- async wait_for(event, *, check=None, timeout=None)¶
A shorthand for
EventDispatcher.wait_for().
- async whisper(player_id, message)¶
Sends a message to the player with the given ID.
Player.send()is a shorthand for calling this method.- Parameters:
- Return type:
- Returns:
The response from the server, if any.
- Raises:
RCONCommandError – The server has either disabled this command or failed to respond to our command.
RuntimeError – The client is either not connected or the server could/would not respond to the command.
- property admin_id: int | None¶
A shorthand for
ArmaCache.admin_id.
- property players: list[Player]¶
A shorthand for
ArmaCache.players.