1
This commit is contained in:
parent
9de6bde5a5
commit
7700657e73
43
hlna.py
43
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 <rcon SaveWorld -m all>')
|
||||
@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=""):
|
||||
|
Loading…
Reference in New Issue
Block a user