You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Richard Neumann 2cda854281 Rewrite battleye client 6 months ago
docs Black 2 years ago
rcon Rewrite battleye client 6 months ago
tests Black 6 months ago
.gitignore Update gitignore 3 years ago
.readthedocs.yml Fix config path 1 year ago
Jenkinsfile Added Jenkinsfile 4 years ago
LICENSE.txt init 4 years ago
Makefile Clean before building 3 years ago
README.md Update required Python version 3 years ago
requirements.txt Added requirements file. 4 years ago
setup.py Add pytest to deps 6 months ago

README.md

Documentation Status

rcon

An RCON client implementation.

Requirements

rcon requires Python 3.10 or higher.

Documentation

Documentation is available on readthedocs.

Installation

Install rcon from the AUR or via:

pip install rcon

Quick start

The RCON protocols are used to remotely control game servers, i.e. execute commands on a game server and receive the respective results.

Source RCON

from rcon.source import Client

with Client('127.0.0.1', 5000, passwd='mysecretpassword') as client:
    response = client.run('some_command', 'with', 'some', 'arguments')

print(response)

Async support

If you prefer to use Source RCON in an asynchronous environment, you can use rcon().

from rcon.source import rcon

response = await rcon(
    'some_command', 'with', 'some', 'arguments',
    host='127.0.0.1', port=5000, passwd='mysecretpassword'
)
print(response)

BattlEye RCon

from rcon.battleye import Client

with Client('127.0.0.1', 5000, passwd='mysecretpassword') as client:
    response = client.run('some_command', 'with', 'some', 'arguments')

print(response)

Handling server messages

Since the BattlEye RCon server will also send server messages to the client alongside command responses, you can register an event handler to process those messages:

from rcon.battleye import Client
from rcon.battleye.proto import ServerMessage

def my_message_handler(server_message: ServerMessage) -> None:
    """Print server messages."""
    
    print('Server message:', server_message)

with Client(
        '127.0.0.1',
        5000,
        passwd='mysecretpassword',
        message_handler=my_message_handler
) as client:
    response = client.run('some_command', 'with', 'some', 'arguments')

print('Response:', response)

Have a look at rcon.battleye.proto.ServerMessage for details on the respective objects.