diff --git a/hlna.py b/hlna.py index d58e520..f6e0b3a 100755 --- a/hlna.py +++ b/hlna.py @@ -21,10 +21,6 @@ mods_id = "" listen_server = True -def complete_env_vars(ctx, param, incomplete): - return [k for k in os.environ if k.startswith(incomplete)] - - @click.group() def hlna(): pass @@ -85,7 +81,7 @@ def config(name_server=list_config): port_s = [] query_p = [] id_srv = {} - + data = {} cluster_dir_override = "" cluster_id = "" @@ -105,8 +101,11 @@ def config(name_server=list_config): if name_server != []: print("Уже установленные карты: ") for i in name_server: - con = read_yaml(i) - print(f"{i} : {con['map']}") + data = read_yaml(i) + print(f"{i} : {data['map']}") + port_s.append(data['Port']) + query_p.append(data['QueryPort']) + id_srv[data['SessionName']] = data['id_server'] count_maps = check_int("Укажите количество карт: \n") if count_maps == 0: # 0 возвращает check_int когда, ничего не было введено @@ -136,14 +135,6 @@ def config(name_server=list_config): if 0 < amount_map <= 12: break - for k in name_server: - data = read_yaml(k) - port_s.append(data['Port']) - query_p.append(data['QueryPort']) - id_srv[data['map']] = data['id_server'] - - print(id_srv) - if amount_map == 1: map_s = "TheIsland" elif amount_map == 2: @@ -168,25 +159,40 @@ def config(name_server=list_config): map_s = "LostIsland" elif amount_map == 12: map_s = "Fjordur" + else: + # Если вдруг каким-то боком проверка не отработает и не будет нужной цифры + map_s = 'TheIsland' - name_server.append(input("Укажите название Сервера: \n")) - if name_server[-1] == "": - name_server.pop(); name_server.append(map_s) # если enter, то ставим последним элементом карту - - data = read_yaml(name_server[-1]) - while True: - id_server = input("Укажите метку для запуска или конфигурирования этой карты, по умолчанию название карты") - if id_server == "": - print_line("Значение по умолчанию") + if name_server != []: + data = read_yaml(name_server[-1]) + h = (input("Укажите название Сервера: \n")) + if h == '': + if map_s in name_server: + name_server.pop() + name_server.append(map_s + name_server.count(map_s)) else: - if id_srv != []: # Если есть хоть какой-то id - if id_server in id_srv: # Если введёное уже есть в списке меток + name_server.pop(); name_server.append(map_s) # если enter, то ставим последним элементом карту + else: + name_server.append(h) + + + + while True: + id_server = input("Укажите метку для запуска или конфигурирования этой карты") + if id_server == "": + if id_srv == {}: + print_line("Значение по умолчанию") + else: + if id_srv != {}: # Если есть хоть какой-то id + if id_server in id_srv[name_server[-1]]: # тут ошибка ! + break + if id_server in id_srv.values(): # Если введёное уже есть в списке меток print_line("Метка уже занята") else: - id_srv[data['map']] = data['id_server'] + id_srv[name_server[-1]] = id_server break else: - id_srv[data['map']] = data['id_server'] + id_srv[name_server[-1]] = id_server break while True: @@ -218,7 +224,7 @@ def config(name_server=list_config): if max_players == 0: max_players = 70 - yaml_create(cluster_server, map_s, name_server[-1], port_server, query_port, password_server, max_players, cluster_id, cluster_dir_override, id_srv[map_s]) + yaml_create(cluster_server, map_s, name_server[-1], port_server, query_port, password_server, max_players, cluster_id, cluster_dir_override, id_srv[name_server[-1]]) def yaml_create(cluster_server, map_s, name_server, port_server, query_port, password_server, max_players, cluster_id, cluster_dir_override, id_srv):