mirror of
https://github.com/onyx-and-iris/q3rcon-cli.git
synced 2026-03-23 18:29:18 +00:00
pass send_command(interpret=True) for commands that return long responses. note, it strips the first `"` from cvar responses which causes CVAR_REGEX to fail.
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from aioq3rcon import Client
|
|
from clypi import Command, Positional, Spinner, arg
|
|
from typing_extensions import override
|
|
|
|
from q3rcon_cli import console
|
|
|
|
|
|
class Map(Command):
|
|
"""Get the current map or change to a new one."""
|
|
|
|
new_map: Positional[str] = arg(
|
|
help='The new map to change to (optional). If not provided, the current map will be printed.',
|
|
default='',
|
|
)
|
|
host: str = arg(inherited=True)
|
|
port: int = arg(inherited=True)
|
|
password: str = arg(inherited=True)
|
|
|
|
@override
|
|
async def run(self):
|
|
if not self.new_map:
|
|
async with Spinner('Getting current map', suffix='...'):
|
|
async with Client(self.host, self.port, self.password) as client:
|
|
response = await client.send_command('mapname')
|
|
console.out.print_cvar(response)
|
|
return
|
|
|
|
async with Spinner('Changing map', suffix='...'):
|
|
async with Client(
|
|
self.host, self.port, self.password, fragment_read_timeout=1
|
|
) as client:
|
|
await client.send_command(f'map mp_{self.new_map.removeprefix("mp_")}')
|
|
|
|
console.out.print(
|
|
f'Map changed to {self.new_map.removeprefix("mp_")}', style='green'
|
|
)
|