From 7700657e7327ed605483cc1225be7c21bb12f397 Mon Sep 17 00:00:00 2001 From: xpamych Date: Mon, 29 May 2023 23:09:13 +0300 Subject: [PATCH] 1 --- hlna.py | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/hlna.py b/hlna.py index 53d503d..1859771 100755 --- a/hlna.py +++ b/hlna.py @@ -799,10 +799,11 @@ def start_stop(action, g, m): check_exist_servers(g) name_servers = choose_map(g, m) for i in name_servers: - if action == "stop" or action == "restart": - rcon_local(i, c="SaveWorld") data = read_yaml(i, g="ark", flag=True) + if action == "stop" or action == "restart": + rcon_local(i, "SaveWorld") x = os.system(f"systemctl --user {action} ark_{data['SessionName'].lower()}.service") + if x == 0: print_line(f"Готово {action} для {g} {i}", flag="GREEN") @@ -864,41 +865,39 @@ def choose_map(g, m, list_config=list_config): @hlna.command(help='Отправка команд на игровой сервер через rcon ') -@click.option('-g', required=True, help="Название игры для запуска. (ark)") @click.argument('c', nargs=1) @click.option('-m', required=True, help="Название карты для применения rcon команды") -def rcon(g, m, c): - rcon_local(g, m, c) +def rcon(m, c): + rcon_local(m, c) -def rcon_local(g, m="", c=""): - if g == "ark": - try: +def rcon_local(m, c): + try: + dict_mapname = {} + dict_adminpwd = {} + if list_config: rcon_ports = [] - dict_mapname = {} - dict_adminpwd = {} for i in list_config: data = read_yaml(i, g="ark") - dict_mapname[data['RCONPort']] = data['SessionName'] + dict_mapname[data['RCONPort']] = data['map'] dict_adminpwd[data['RCONPort']] = data['ServerAdminPassword'] - # if m == "all": - # print_line(m, flag="CYAN") - # for rcon_p in dict_mapname: - # rcon_ports.append(rcon_p) - # else: - for rcon_p, name_map in dict_mapname.items(): - if name_map in m: + if m == "all": + for rcon_p in dict_mapname: rcon_ports.append(rcon_p) + else: + for rcon_p, name_map in dict_mapname.items(): + if name_map in m: + rcon_ports.append(rcon_p) for port in rcon_ports: passwd = dict_adminpwd[port] with Client('127.0.0.1', port, passwd=str(passwd)) as client: response = client.run(c) print_line(f"Rcon выполнен {response} {dict_mapname[port]}", flag="GREEN") - else: - pass - except: - print_line(f"Ошибка отправки команды {c} в {m}", flag="RED") + else: + pass + except: + print_line(f"Ошибка отправки команды {c} в {m}", flag="RED") def zero(x=""):