This commit is contained in:
Евгений Храмов 2023-05-29 22:21:40 +03:00
parent bf623b853a
commit e8feb51bbe

37
hlna.py

@ -796,13 +796,10 @@ def check_exist_servers(g):
def start_stop(action, g, m): def start_stop(action, g, m):
"""Функция изменения статусов сервера""" """Функция изменения статусов сервера"""
if g == "ark": if g == "ark":
check_exist_servers(g) check_exist_servers(g)
name_servers = choose_map(g, m) name_servers = choose_map(g, m)
for i in name_servers: for i in name_servers:
if action == "stop" or action == "restart": if action == "stop" or action == "restart":
print(action)
print_line(i, flag="CYAN")
rcon_local(i, "SaveWorld") rcon_local(i, "SaveWorld")
data = read_yaml(i, g="ark", flag=True) data = read_yaml(i, g="ark", flag=True)
x = os.system(f"systemctl --user {action} ark_{data['SessionName'].lower()}.service") x = os.system(f"systemctl --user {action} ark_{data['SessionName'].lower()}.service")
@ -874,29 +871,27 @@ def rcon(m, c):
def rcon_local(m, c): def rcon_local(m, c):
print_line("вход в rcon", flag="CYAN")
try: try:
rcon_ports = []
dict_mapname = {} dict_mapname = {}
dict_adminpwd = {} dict_adminpwd = {}
if list_config: for i in list_config:
rcon_ports = [] data = read_yaml(i, g="ark")
for i in list_config: dict_mapname[data['RCONPort']] = data['map']
data = read_yaml(i, g="ark") dict_adminpwd[data['RCONPort']] = data['ServerAdminPassword']
dict_mapname[data['RCONPort']] = data['map'] if m == "all":
dict_adminpwd[data['RCONPort']] = data['ServerAdminPassword'] for rcon_p in dict_mapname:
if m == "all": rcon_ports.append(rcon_p)
for rcon_p in dict_mapname: else:
for rcon_p, name_map in dict_mapname.items():
if name_map in m:
rcon_ports.append(rcon_p) 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: for port in rcon_ports:
passwd = dict_adminpwd[port] passwd = dict_adminpwd[port]
with Client('127.0.0.1', port, passwd=str(passwd)) as client: with Client('127.0.0.1', port, passwd=str(passwd)) as client:
response = client.run(c) response = client.run(c)
print_line(f"Rcon выполнен {response} {dict_mapname[port]}", flag="GREEN") print_line(f"Rcon выполнен {response} {dict_mapname[port]}", flag="GREEN")
else: else:
pass pass
except: except: