Добавлена проверка на выбор карт, принимаются только номера имеющихся карт

This commit is contained in:
sitisll 2023-02-14 11:38:04 +03:00
parent a5cba005bc
commit 5e21965a1a

68
dodo.py

@ -23,9 +23,9 @@ list_config.remove('.directory')
def print_line(text): def print_line(text):
"Добавление тире вокруг текста, потом сюда можно поместить и расскраску текста" "Добавление тире вокруг текста, потом сюда можно поместить и расскраску текста"
print("-"*20) print(Fore.YELLOW + "-"*25)
print(text) print(Fore.GREEN + text)
print("-"*20) print(Fore.YELLOW + "-"*25 + Fore.RESET_ALL)
def create_dir(directory): def create_dir(directory):
@ -38,7 +38,10 @@ def check_int(number=""):
"Проверка на ввод числа" "Проверка на ввод числа"
while True: while True:
try: try:
x = int(input(number)) x = input(number)
x = x.replace(' ', '')
x = x.replace(',', '')
x = int(x)
return x return x
except ValueError: except ValueError:
print("Введите число") print("Введите число")
@ -62,28 +65,37 @@ def config(map_server=list_config):
cluster_server = True cluster_server = True
else: else:
cluster_server = False cluster_server = False
if cluster_server == True: if cluster_server == True:
cluster_id = input("Укажите id для кластера, любое сочетание символов: \n") cluster_id = input("Укажите id для кластера, любое сочетание символов: \n")
create_dir(dir_server + cluster_id) create_dir(dir_server + cluster_id)
cluster_dir_override = (dir_server + cluster_id) cluster_dir_override = (dir_server + cluster_id)
if map_server != []: if map_server != []:
print("Уже установленные карты: ", map_server) print("Уже установленные карты: ")
for i in map_server:
print(i)
count_maps = check_int("Укажите количество карт: \n") count_maps = check_int("Укажите количество карт: \n")
for i in range(int(count_maps)): for i in range(count_maps):
amount_map = check_int("""Выберите карту из списка указав номер while True:
1. The Island os.system("clear")
2. The Center amount_map = check_int("""Выберите карту из списка указав номер
3. Scorched Earth 1. The Island
4. Ragnarok 2. The Center
5. Aberration 3. Scorched Earth
6. Extinction 4. Ragnarok
7. Valguero 5. Aberration
8. Genesis: Part 1 6. Extinction
9. Crystal Isles 7. Valguero
10. Genesis: Part 2 8. Genesis: Part 1
11. Lost Island 9. Crystal Isles
12. Fjordur 10. Genesis: Part 2
: """) 11. Lost Island
12. Fjordur
: """)
if 0<=amount_map<=12:
break
match amount_map: match amount_map:
case 1: case 1:
map_server.append("TheIsland") map_server.append("TheIsland")
@ -140,12 +152,24 @@ def yaml_create(cluster_server, map_server, name_server, port_server, query_port
settings_dodo[0]['clusterdir'] = cluster_dir_override settings_dodo[0]['clusterdir'] = cluster_dir_override
with open(config_dodo + f"{map_server[-1]}", 'w') as yamlfile: with open(config_dodo + f"{map_server[-1]}", 'w') as yamlfile:
data = yaml.dump(settings_dodo, yamlfile) data = yaml.dump(settings_dodo, yamlfile)
print("Конфиг создан") print(Fore.GREEN + "Конфиг создан" + Fore.RESET_ALL)
@dodo.command() @dodo.command()
def start(map_server=list_config): def start(map_server=list_config):
map_choise = [] map_choise = []
map_list = check_int(map_server) while True:
"Проверка на выбор имеющихся карт"
for i in range(len(map_server)):
print(f"{i}) {map_server[i]}")
map_list = check_int(map_server)
for k in range(map_list):
if 0>map_list[k]>len(map_list) and len(map_list)>len(map_server):
print("Укажите карты для установки в формате 1,3,5 или 145 или 1 2 3")
else:
break
for j in str(map_list): for j in str(map_list):
map_choise.append(map_server[int(j) - 1]) map_choise.append(map_server[int(j) - 1])