mirror of
https://github.com/onyx-and-iris/q3rcon-cli.git
synced 2026-04-16 14:03:42 +00:00
first commit
This commit is contained in:
33
src/q3rcon_cli/commands/map.py
Normal file
33
src/q3rcon_cli/commands/map.py
Normal file
@@ -0,0 +1,33 @@
|
||||
from aioq3rcon import Client
|
||||
from clypi import Command, Positional, Spinner, arg
|
||||
from typing_extensions import override
|
||||
|
||||
from q3rcon_cli.console 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 Client(self.host, self.port, self.password) as client:
|
||||
if response := await client.send_command('mapname'):
|
||||
Console.print_cvar(response)
|
||||
return
|
||||
|
||||
async with Spinner('Changing map...'):
|
||||
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_")}')
|
||||
if response := await client.send_command('mapname'):
|
||||
Console.print_cvar(response)
|
||||
Reference in New Issue
Block a user