что-то сделал)

This commit is contained in:
Евгений Храмов 2023-05-08 17:40:17 +03:00
parent 76903c0360
commit 4648ff60fd

91
hlna.py

@ -18,7 +18,6 @@ dir_maps = f"{dir_config}maps/"
dir_deactivated = f"{dir_maps}deactivated/"
mods_id = ""
listen_server = True
@click.group()
@ -58,9 +57,9 @@ delist_config = find_file(dir_deactivated)
def print_line(text):
"""Добавление тире вокруг текста, покраска"""
print(colorama.Fore.YELLOW + "-"*30)
print(colorama.Fore.YELLOW + "-" * 30)
print(f"{colorama.Fore.GREEN} + {text}")
print(colorama.Fore.YELLOW + "-"*30 + colorama.Style.RESET_ALL)
print(colorama.Fore.YELLOW + "-" * 30 + colorama.Style.RESET_ALL)
def check_int(number=""):
@ -73,10 +72,10 @@ def check_int(number=""):
x = int(x)
return x
except ValueError:
print("Введите число")
print_line("Введите число")
@hlna.command(help='Для конфигурирования параметров запускаемого сервера или кластера серверов')
@hlna.command(help='Сбор настроек для сервера или кластера')
def config(list_config=list_config):
"""Сбор данных для конфига"""
data = {}
@ -105,7 +104,6 @@ def config(list_config=list_config):
for i in list_config:
data = read_yaml(i)
print(f"{i} : {data['map']}")
# id_srv[data['SessionName']] = data['id_server']
count_maps = check_int("Укажите количество карт: \n")
if count_maps == 0: # 0 возвращает check_int когда, ничего не было введено
@ -114,8 +112,6 @@ def config(list_config=list_config):
for i in range(count_maps):
while True:
"Проверка на выбор карты из списка"
# os.system("clear")
amount_map = check_int("""Выберите карту из списка указав номер
1. The Island
2. The Center
@ -185,7 +181,6 @@ def config(list_config=list_config):
if list_config:
data = read_yaml(list_config[-1])
while True:
name_server = input("Укажите название Сервера: \n")
if name_server == "":
@ -195,7 +190,6 @@ def config(list_config=list_config):
while new_name in list_config:
new_name = f"{map_s}{str(count)}"
count += 1
list_config.append(new_name)
print(list_config)
break
@ -204,20 +198,19 @@ def config(list_config=list_config):
break
else:
if name_server in list_config:
print("Имя занято")
print_line("Имя занято")
else:
list_config.append(name_server) # если enter, то ставим последним элементом карту
break
print("Укажите порт сервера:\n")
port_server = ports(port_s)
print("Укажите query порт сервера:\n")
query_port = ports(query_p)
if port_server == 0:
port_server = 7777
if query_port == 0:
query_port = 27015
print("Порт Сервера=", port_server)
print("Query Port=", query_port)
@ -233,27 +226,41 @@ def config(list_config=list_config):
if max_players == 0:
max_players = 70
yaml_create(cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override)
print("Передавать сервер в глобальный список серверов steam?")
listen_server_amount = check_int("""\n
1. Да
2. Нет
:""")
if listen_server_amount == 1:
listen_server = True
elif listen_server_amount == 2:
listen_server = False
else:
listen_server = True
yaml_create(cluster_server, map_s, list_config[-1], port_server, query_port, rcon_enabled, rcon_port,
adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override, listen_server)
def yaml_create(cluster_server, map_s, name_server, port_server, query_port, rcon_enabled, rcon_port, adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override):
def yaml_create(cluster_server, map_s, name_server, port_server, query_port, rcon_enabled, rcon_port,
adminpassword_server, password_server, max_players, cluster_id, cluster_dir_override, listen_server):
settings_hlna = [
{
'map' : map_s,
'Cluster' : cluster_server,
'SessionName' : name_server,
'Port' : port_server,
'QueryPort' : query_port,
'RCONEnabled' : rcon_enabled,
'RCONPort' : rcon_port,
'map': map_s,
'Cluster': cluster_server,
'SessionName': name_server,
'Port': port_server,
'QueryPort': query_port,
'RCONEnabled': rcon_enabled,
'RCONPort': rcon_port,
'ServerAdminPassword': adminpassword_server,
'ServerPassword' : password_server,
'MaxPlayers' : max_players,
'ModsId' : mods_id,
'Listen' : listen_server,
'ServerPath' : dir_server,
'clusterid' : cluster_id,
'clusterdir' : cluster_dir_override
'ServerPassword': password_server,
'MaxPlayers': max_players,
'ModsId': mods_id,
'Listen': listen_server,
'ServerPath': dir_server,
'clusterid': cluster_id,
'clusterdir': cluster_dir_override
}
]
with open(dir_maps + f"{name_server}", 'w') as yamlfile:
@ -297,8 +304,8 @@ def test_mod_install():
pathTest = f"{dir_server}ShooterGame/Saved/Config/LinuxServer/"
if os.path.exists(pathTest):
os.chdir(pathTest)
# "Добавить файл в Game.ini, если модов несколько добавляем еще строку ModIDS=<ModId> [ModInstaller] ModIDS=<ModID>"
# c этим не разобрался
# "Добавить файл в Game.ini, если модов несколько добавляем еще строку ModIDS=<ModId> [ModInstaller] ModIDS=<ModID>"
# c этим не разобрался
os.system("echo ActiveMods=2943454417 >> GameUserSettings.ini")
else:
print_line("Сервер не установлен")
@ -310,7 +317,7 @@ test_mod_install()
@hlna.command()
@click.option("-m", required=True, help="Название Сервера")
@click.option("-e/-d", default=True, help="-e активировать карты, -d деактивировать")
def enablemap(m,e):
def enablemap(m, e):
"""Тут переписать надо"""
m = m.split(",")
# m = check_name_map(m, False)
@ -332,7 +339,8 @@ def enablemap(m,e):
print("Предлагаем заменить")
if data['QueryPort'] in query_p:
print("Заменить query port?")
x = os.system(f"mv {dir_config}deactivated/{i} {dir_config + i} 2>> {dir_config}logs") #Добавить текущее время
x = os.system(
f"mv {dir_config}deactivated/{i} {dir_config + i} 2>> {dir_config}logs") # Добавить текущее время
if x == 0:
print(f"Карта активирована - {i}")
else:
@ -347,7 +355,8 @@ def enablemap(m,e):
if i in delist_config:
print(f"Карта {i} уже есть в деактивированных")
continue
x = os.system(f"mv {dir_config + i} {dir_config}deactivated/{i} 2>> {dir_config}logs") #Добавить текущее время
x = os.system(
f"mv {dir_config + i} {dir_config}deactivated/{i} 2>> {dir_config}logs") # Добавить текущее время
if x == 0:
print(f"Карта деактивирована - {i}")
else:
@ -383,9 +392,9 @@ def servers(map_server=list_config):
Максимальное кол-во игроков: {data['MaxPlayers']}""")
print("-" * 40)
if delist_config!=[]:
if delist_config != []:
x = input("Есть неактивные сервера, показать Y/n: ")
if x!="n":
if x != "n":
for i in delist_config:
data = read_yaml(i, False)
print(f"""
@ -451,18 +460,18 @@ def choose_map(arr):
new_arr = []
arr = sorted(arr)
print('Найдены сервера с этой картой')
for i,map in enumerate(arr):
print(f"{i+1}) {map}")
for i, map in enumerate(arr):
print(f"{i + 1}) {map}")
while True:
try:
x = input("Выберите сервер из списка, либо несколько через запятую: ").split(',')
x = [int (i) for i in x]
x = [int(i) for i in x]
break
except:
print("Неправильный ввод")
for i in x:
new_arr.append(arr[i-1])
new_arr.append(arr[i - 1])
print('Выбранные сервера:', new_arr)
return new_arr
@ -471,7 +480,7 @@ def choose_map(arr):
@hlna.command()
@click.argument('c', nargs=1)
@click.option('-m', required=True, help="Название карты для применения rcon команды")
def rcon(m,c):
def rcon(m, c):
print_line("Команда: ", c)
print_line("Карты: ", m)
dict_mapname = {}