Python functions to fetch data from an AssaultCube server
You need to use the "management port", which is often game port + 1 to query and fetch data.
from assaultcube_server_reader import get_server_info_and_namelist, get_playerstats
print(get_server_info_and_namelist("1two3.tk", 3457))
{
'gamemode': 5,
'mastermode': 'open',
'max_client': 16,
'minutes_remaining': 1,
'nb_connected_clients': 6,
'playerlist': ['haze.spqr', 'O*EndGame', 'LuCk=MyS=', 'O*ACA', 'dM_', 'STK#Lucas'],
'server_description': 'Private server 1.3 beta 1',
'server_map': 'ac_desert3'
}
print(get_playerstats("1two3.tk", 3457, {"damage": True}))
# or get_playerstats("mysick.tk", 2, None)
# for other servers, 1two3 is modded to return damages per players
[
{'accuracy': 100,
'armour': 100,
'client_number': 0,
'damage': -1,
'deaths': 24,
'flags': 0,
'frags': 35,
'gun': 0,
'health': 39,
'name': 'haze.spqr',
'ping': 231,
'role': 6,
'state': 0,
'team': 'CLA',
'teamkills': 0},
{'accuracy': 100,
'armour': 100,
'client_number': 1,
'damage': -1,
'deaths': 30,
'flags': 0,
'frags': 27,
'gun': 0,
'health': 29,
'name': 'O*EndGame',
'ping': 206,
'role': 4,
'state': 0,
'team': 'RVSF',
'teamkills': 0},
{'accuracy': 100,
'armour': 100,
'client_number': 2,
'damage': -1,
'deaths': 24,
'flags': 0,
'frags': 18,
'gun': 0,
'health': 23,
'name': 'LuCk=MyS=',
'ping': 142,
'role': 4,
'state': 0,
'team': 'RVSF',
'teamkills': 0},
{'accuracy': 100,
'armour': 100,
'client_number': 3,
'damage': -1,
'deaths': 27,
'flags': 0,
'frags': 26,
'gun': 0,
'health': 25,
'name': 'O*ACA',
'ping': 82,
'role': 4,
'state': 0,
'team': 'RVSF',
'teamkills': 0},
{'accuracy': 100,
'armour': 100,
'client_number': 5,
'damage': -1,
'deaths': 23,
'flags': 1,
'frags': 27,
'gun': 0,
'health': 25,
'name': 'dM_',
'ping': 115,
'role': 4,
'state': 0,
'team': 'CLA',
'teamkills': 0},
{'accuracy': 100,
'armour': 100,
'client_number': 6,
'damage': -1,
'deaths': 24,
'flags': 1,
'frags': 19,
'gun': 0,
'health': 22,
'name': 'STK#Lucas',
'ping': 192,
'role': 4,
'state': 0,
'team': 'CLA',
'teamkills': 0}
]