Since I haven't been using Python in recent years too frequently, I also have not
been working on the issues and necessary fixes to this library.
Therefore I decided to archive this project.
Feel free to fork and continue the project.
If you want to also take over the corresponding project on PyPI, please drop me an email.
An RCON client implementation.
rcon
requires Python 3.10 or higher.
Documentation is available on readthedocs.
Install rcon from the AUR or via:
pip install rcon
The RCON
protocols are used to remotely control game servers, i.e. execute
commands on a game server and receive the respective results.
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)
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)
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)
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.