merge dev
This commit is contained in:
		| @@ -1,3 +1,4 @@ | |||||||
|  |  | ||||||
| # Описание | # Описание | ||||||
| Этот инструмент позволяет управлять выделенным сервером (dedicated server) ARK Survival Evolved на Linux. | Этот инструмент позволяет управлять выделенным сервером (dedicated server) ARK Survival Evolved на Linux. | ||||||
| Он предоставляет множество функций, чтобы получить полный список, ознакомьтесь с разделом использования. (находится в разработке и может содержать ошибки) | Он предоставляет множество функций, чтобы получить полный список, ознакомьтесь с разделом использования. (находится в разработке и может содержать ошибки) | ||||||
|   | |||||||
							
								
								
									
										53
									
								
								hlna.py
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								hlna.py
									
									
									
									
									
								
							| @@ -1,5 +1,6 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
| import os | import os | ||||||
|  | import time | ||||||
| import threading | import threading | ||||||
|  |  | ||||||
| from pathlib import Path | from pathlib import Path | ||||||
| @@ -58,7 +59,6 @@ def create_dir(directory): | |||||||
|         os.chdir(f"{home_dir}/.config/hlna/") |         os.chdir(f"{home_dir}/.config/hlna/") | ||||||
|         os.mkdir("maps") |         os.mkdir("maps") | ||||||
|  |  | ||||||
|  |  | ||||||
| def check_int(number=""): | def check_int(number=""): | ||||||
|     """Проверка на ввод числа""" |     """Проверка на ввод числа""" | ||||||
|     while True: |     while True: | ||||||
| @@ -186,7 +186,6 @@ def config(list_config=list_config): | |||||||
|             data = read_yaml(list_config[-1]) |             data = read_yaml(list_config[-1]) | ||||||
|              |              | ||||||
|         while True: |         while True: | ||||||
|             print_line("Тут какая-то хуйня") |  | ||||||
|             name_server = input("Укажите название Сервера: \n") |             name_server = input("Укажите название Сервера: \n") | ||||||
|             if name_server == "": |             if name_server == "": | ||||||
|                 if map_s in list_config: |                 if map_s in list_config: | ||||||
| @@ -206,7 +205,7 @@ def config(list_config=list_config): | |||||||
|                 if name_server in list_config: |                 if name_server in list_config: | ||||||
|                     print("Имя занято") |                     print("Имя занято") | ||||||
|                 else: |                 else: | ||||||
|                     list_config.append(map_s)  # если enter, то ставим последним элементом карту |                     list_config.append(name_server)  # если enter, то ставим последним элементом карту | ||||||
|                     break |                     break | ||||||
|         print("Укажите порт сервера:\n") |         print("Укажите порт сервера:\n") | ||||||
|         port_server = ports(port_s) |         port_server = ports(port_s) | ||||||
| @@ -261,6 +260,20 @@ def yaml_create(cluster_server, map_s, name_server, port_server, query_port, rco | |||||||
|         print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL) |         print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 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 этим не разобрался | ||||||
|  |         os.system("echo ActiveMods=2943454417 >> GameUserSettings.ini") | ||||||
|  |     else: | ||||||
|  |         print_line("Сервер не установлен") | ||||||
|  |  | ||||||
|  |  | ||||||
|  | test_mod_install() | ||||||
|  |  | ||||||
|  |  | ||||||
| @hlna.command() | @hlna.command() | ||||||
| @click.option("-m", required=True, help="Название Сервера") | @click.option("-m", required=True, help="Название Сервера") | ||||||
| @click.option("-e/-d", default=True, help="-e активировать карты, -d деактивировать") | @click.option("-e/-d", default=True, help="-e активировать карты, -d деактивировать") | ||||||
| @@ -359,12 +372,15 @@ def servers(map_server=list_config): | |||||||
|      |      | ||||||
| @hlna.command(help='Для запуска, сконфигурированного сервера или кластера') | @hlna.command(help='Для запуска, сконфигурированного сервера или кластера') | ||||||
| @click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт") | @click.option('-m', default='all', help="Название карты для запуска или all для запуска все карт") | ||||||
| def start(m, name_server=list_config): | @click.option('-b', default='', help="") | ||||||
|  | def start(m, b, name_server=list_config): | ||||||
|     dict_mapname = {} |     dict_mapname = {} | ||||||
|  |     dict_allmapname = [] | ||||||
|     for i in name_server: |     for i in name_server: | ||||||
|         data = read_yaml(i) |         data = read_yaml(i) | ||||||
|         print_line(f"Название сервера: {i} | Карта: {data['map']} | Кластер: {data['clusterid']}") |         print_line(f"Название сервера: {i} | Карта: {data['map']} | Кластер: {data['clusterid']}") | ||||||
|         dict_mapname[data['SessionName']] = data['map'] |         dict_mapname[data['SessionName']] = data['map'] | ||||||
|  |         dict_allmapname.append(data['SessionName']) | ||||||
|     print_line(f"Словарь названия сервера и карты {dict_mapname}") |     print_line(f"Словарь названия сервера и карты {dict_mapname}") | ||||||
|     names_serverstart = [] |     names_serverstart = [] | ||||||
|     for ns, v in dict_mapname.items(): |     for ns, v in dict_mapname.items(): | ||||||
| @@ -373,10 +389,13 @@ def start(m, name_server=list_config): | |||||||
|             names_serverstart.append(ns) |             names_serverstart.append(ns) | ||||||
|             print_line(f"Карта которая запускается {ns}") |             print_line(f"Карта которая запускается {ns}") | ||||||
|     if name_server != []: |     if name_server != []: | ||||||
|  |         if b == '': | ||||||
|             if m == "all": |             if m == "all": | ||||||
|             print("Запускаем все активные карты") |                 names_serverstart = dict_allmapname | ||||||
|  |                 print(f"Запускаем все активные карты {names_serverstart}") | ||||||
|  |             else: | ||||||
|                 names_serverstart = choose_map(names_serverstart) |                 names_serverstart = choose_map(names_serverstart) | ||||||
|  |  | ||||||
|         server_dir = dir_server + "ShooterGame/Binaries/Linux/" |         server_dir = dir_server + "ShooterGame/Binaries/Linux/" | ||||||
|         print_line("Валидация файлов сервера") |         print_line("Валидация файлов сервера") | ||||||
|         x = os.system(f"steamcmd +force_install_dir {dir_server} +login anonymous +app_update 376030 +quit") |         x = os.system(f"steamcmd +force_install_dir {dir_server} +login anonymous +app_update 376030 +quit") | ||||||
| @@ -391,7 +410,11 @@ def start(m, name_server=list_config): | |||||||
|                 ntff = "-NoTransferFromFiltering" |                 ntff = "-NoTransferFromFiltering" | ||||||
|  |  | ||||||
|             def starting(i): |             def starting(i): | ||||||
|                 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,)) | ||||||
| @@ -403,23 +426,9 @@ def start(m, name_server=list_config): | |||||||
|         print("Ни одной карты не установлено") |         print("Ни одной карты не установлено") | ||||||
|          |          | ||||||
|  |  | ||||||
| @hlna.command(help='Для удаления серверов') |  | ||||||
| @click.option('-m', required=True, help="Название карты для удаления") |  | ||||||
| def delete(m, list_config=list_config): |  | ||||||
|     for i in list_config: |  | ||||||
|         data = read_yaml(i) |  | ||||||
|         if data['id_server'] == m: |  | ||||||
|             n = input(f"Вы действительно хотите удалить сервер? Это действие отменить невозможно - {i}, y\\N") |  | ||||||
|             if n == "y": |  | ||||||
|                 os.system(f"rm {home_dir}/.config/hlna/{i}") |  | ||||||
|                 os.system(f"rm -rf {dir_server}{i}") |  | ||||||
|             else: |  | ||||||
|                 continue |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def read_yaml(name_server, flag=True): | def read_yaml(name_server, flag=True): | ||||||
|     # Читаем конфиги активных или неактивных карт в зависимости от флага |     # Читаем конфиги активных или неактивных карт в зависимости от флага | ||||||
|     if flag == True: |     if flag: | ||||||
|         dirs = f"{home_dir}/.config/hlna/maps/{name_server}" |         dirs = f"{home_dir}/.config/hlna/maps/{name_server}" | ||||||
|     else: |     else: | ||||||
|         dirs = f"{home_dir}/.config/hlna/deactivated/{name_server}" |         dirs = f"{home_dir}/.config/hlna/deactivated/{name_server}" | ||||||
|   | |||||||
| @@ -28,10 +28,9 @@ def start(): | |||||||
|         create_config(key_api) |         create_config(key_api) | ||||||
|     else: |     else: | ||||||
|         x = input("Уже есть запомненный ключа api. Запустить его? Y/n \n") |         x = input("Уже есть запомненный ключа api. Запустить его? Y/n \n") | ||||||
|         if x == "": |         if x == "" or x.lower == 'y': | ||||||
|             x = "y" |  | ||||||
|         elif x == "y": |  | ||||||
|             read_config() |             read_config() | ||||||
|  |              | ||||||
|         elif x == "n": |         elif x == "n": | ||||||
|             os.remove(f"{hlna.home_dir}/.config/hlna/bot/hlna_bot") |             os.remove(f"{hlna.home_dir}/.config/hlna/bot/hlna_bot") | ||||||
|             start() |             start() | ||||||
| @@ -56,16 +55,14 @@ def read_config(): | |||||||
|  |  | ||||||
|  |  | ||||||
| def create_config(key_api): | def create_config(key_api): | ||||||
|     k_api = key_api |  | ||||||
|     config_hlna_bot = [ |     config_hlna_bot = [ | ||||||
|         { |         { | ||||||
|             'key_api': k_api, |             'key_api': key_api, | ||||||
|         } |         } | ||||||
|     ] |     ] | ||||||
|     with open(f"{hlna.home_dir}/.config/hlna/bot/hlna_bot", 'w') as yamlfile: |     with open(f"{hlna.home_dir}/.config/hlna/bot/hlna_bot", 'w') as yamlfile: | ||||||
|         yaml.dump(config_hlna_bot, yamlfile) |         yaml.dump(config_hlna_bot, yamlfile) | ||||||
|         print(colorama.Fore.GREEN + "Конфиг бота создан" + colorama.Style.RESET_ALL) |         print(colorama.Fore.GREEN + "Конфиг бота создан" + colorama.Style.RESET_ALL) | ||||||
|     return k_api |  | ||||||
|  |  | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								hlna_discord_bot.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								hlna_discord_bot.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | #!/usr/bin/env python3 | ||||||
|  | import discord | ||||||
|  | from discord.ext import commands | ||||||
|  |  | ||||||
|  | config = { | ||||||
|  |     'token': 'your-token', | ||||||
|  |     'prefix': 'prefix', | ||||||
|  | } | ||||||
|  |  | ||||||
|  | bot = commands.Bot(command_prefix=config['prefix']) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @bot.event | ||||||
|  | async def on_message(ctx): | ||||||
|  |     if ctx.author != bot.user: | ||||||
|  |         await ctx.reply(ctx.content) | ||||||
|  |  | ||||||
|  | bot.run(config['token']) | ||||||
		Reference in New Issue
	
	Block a user