This commit is contained in:
sitisll 2023-03-17 17:36:13 +03:00
parent 9f270c8ed7
commit f291b7f732

36
hlna.py

@ -400,7 +400,14 @@ def start(m,b, name_server=list_config):
ntff = "-NoTransferFromFiltering" ntff = "-NoTransferFromFiltering"
def starting(i): def starting(i):
pid = os.getpid()
settings = [{data['SessionName']:pid}]
create_dir(f"{home_dir}/.config/hlna/ServerSettings/conf.txt")
with open(f"{home_dir}/.config/hlna/ServerSettings/conf.txt", 'a') as yamlfile:
yaml.dump(settings, yamlfile)
os.system(f"{server_dir}ShooterGameServer {i}?SessionName={data['SessionName']}?Port={data['Port']}?QueryPort={data['QueryPort']}?RCONEnabled={data['RCONEnabled']}?RCONPort={data['RCONPort']}?ServerAdminPassword={data['ServerAdminPassword']}?MaxPlayers={data['MaxPlayers']}?GameModIds={data['ModsId']}?listen={data['Listen']} -clusterid={data['clusterid']} -ClusterDirOverride={data['clusterdir']} {ntff}") os.system(f"{server_dir}ShooterGameServer {i}?SessionName={data['SessionName']}?Port={data['Port']}?QueryPort={data['QueryPort']}?RCONEnabled={data['RCONEnabled']}?RCONPort={data['RCONPort']}?ServerAdminPassword={data['ServerAdminPassword']}?MaxPlayers={data['MaxPlayers']}?GameModIds={data['ModsId']}?listen={data['Listen']} -clusterid={data['clusterid']} -ClusterDirOverride={data['clusterdir']} {ntff}")
if x == 0: if x == 0:
print_line("Запускаем карту" + i) print_line("Запускаем карту" + i)
threads = threading.Thread(target=starting, args=(starting_map,)) threads = threading.Thread(target=starting, args=(starting_map,))
@ -426,6 +433,35 @@ def delete(m, list_config=list_config):
else: else:
continue continue
""" """
@hlna.command()
@click.option('-m', default='all', help="Название карты для завершения или all для завершения всех карт")
def shootdown(m):
pids = pid()
print(pids)
shootdown_servers = []
if list_config != []:
if m == "all":
shootdown_servers = pids
else:
arr = m.split(',')
dict_mapname = {}
for i in list_config:
data = read_yaml(i)
dict_mapname[data['SessionName']] = data['map']
for ns, v in dict_mapname.items():
if v in m:
shootdown_servers.append(ns)
shootdown_servers = choose_map(shootdown_servers)
for i in shootdown_servers:
os.system(f"kill {i}")
else:
print("Ни одной карты не установлено")
def pid():
with open(f"{home_dir}/.config/hlna/ServerSettings/conf.txt", "r") as yamlfile:
data = yaml.load(yamlfile, Loader=yaml.FullLoader)
return data[0] # возвращаем словарь со всеми значениями
def read_yaml(name_server, flag=True): def read_yaml(name_server, flag=True):
# Читаем конфиги активных или неактивных карт в зависимости от флага # Читаем конфиги активных или неактивных карт в зависимости от флага