последнее состояние
This commit is contained in:
		
							
								
								
									
										131
									
								
								dodo.py
									
									
									
									
									
								
							
							
						
						
									
										131
									
								
								dodo.py
									
									
									
									
									
								
							| @@ -1,19 +1,22 @@ | ||||
| #!/usr/bin/env python3 | ||||
| import os | ||||
| import yaml | ||||
| import threading | ||||
| from pathlib import Path | ||||
|  | ||||
| home_dir = Path.home() | ||||
| dir_server = f"{home_dir}/ARK_Servers/" | ||||
| mods_id = [] | ||||
| mods_id = "" | ||||
| listen_server = True | ||||
|  | ||||
| if not os.path.exists(dir_server): | ||||
|     os.mkdir(dir_server) | ||||
|  | ||||
| if not os.path.exists(f"{home_dir}/.config/dodo/"): | ||||
|     os.mkdir(f"{home_dir}/.config/dodo/") | ||||
|  | ||||
| def yaml_edit(): | ||||
|     count_maps = 1 | ||||
|     map_server = [] | ||||
|     print("""Укажите требуется ли кластер? | ||||
|     1. Да | ||||
|     2. Нет""") | ||||
| @@ -27,7 +30,7 @@ def yaml_edit(): | ||||
|         if count_maps.isdigit: | ||||
|             break | ||||
|         print("Введите цифры") | ||||
|     for i in range(1, int(count_maps) + 1): | ||||
|     for i in range(int(count_maps)): | ||||
|         print("""Выберите карту из списка указав номер | ||||
|         1. The Island | ||||
|         2. The Center | ||||
| @@ -43,30 +46,29 @@ def yaml_edit(): | ||||
|         12. Fjordur""") | ||||
|         amount_map = input("") | ||||
|         if amount_map == "1": | ||||
|             map_server = "TheIsland" | ||||
|             map_server.append("TheIsland") | ||||
|         elif amount_map == "2": | ||||
|             map_server = "TheCenter" | ||||
|             map_server.append("TheCenter") | ||||
|         elif amount_map == "3": | ||||
|             map_server = "ScorchedEarth_P" | ||||
|             map_server.append("ScorchedEarth_P") | ||||
|         elif amount_map == "4": | ||||
|             map_server = "Ragnarok" | ||||
|             map_server.append("Ragnarok") | ||||
|         elif amount_map == "5": | ||||
|             map_server = "Aberration_P" | ||||
|             map_server.append("Aberration_P") | ||||
|         elif amount_map == "6": | ||||
|             map_server = "Extinction" | ||||
|             map_server.append("Extinction") | ||||
|         elif amount_map == "7": | ||||
|             map_server = "Valguero_P" | ||||
|             map_server.append("Valguero_P") | ||||
|         elif amount_map == "8": | ||||
|             map_server = "Genesis" | ||||
|             map_server.append("Genesis") | ||||
|         elif amount_map == "9": | ||||
|             map_server = "CrystalIsles" | ||||
|             map_server.append("CrystalIsles") | ||||
|         elif amount_map == "10": | ||||
|             map_server = "Gen2" | ||||
|             map_server.append("Gen2") | ||||
|         elif amount_map == "11": | ||||
|             map_server = "LostIsland" | ||||
|             map_server.append("LostIsland") | ||||
|         elif amount_map == "12": | ||||
|             map_server = "Fjordur" | ||||
|             print("Введите цифры") | ||||
|             map_server.append("Fjordur") | ||||
|         print("Укажите название Сервера") | ||||
|         name_server = input("") | ||||
|  | ||||
| @@ -83,65 +85,74 @@ def yaml_edit(): | ||||
|         max_players = input("") | ||||
|  | ||||
|         yaml_create(cluster_server, map_server, name_server, port_server, query_port, password_server, max_players) | ||||
|         return cluster_server, map_server, name_server, port_server, query_port, password_server, max_players | ||||
|     return cluster_server, map_server, name_server, port_server, query_port, password_server, max_players, count_maps | ||||
|  | ||||
|  | ||||
| def yaml_create(cluster_server, map_server, name_server, port_server, query_port, password_server, max_players): | ||||
|     if not os.path.exists(f"{home_dir}/.config/dodo/"): | ||||
|         os.mkdir(f"{home_dir}/.config/dodo/") | ||||
|     settings_dodo = [ | ||||
|         { | ||||
|             'Cluster' : f"{cluster_server}", | ||||
|             'Map' : f"{map_server}", | ||||
|             'SessionName' : f"{name_server}", | ||||
|             'Port' : f"{port_server}", | ||||
|             'QueryPort' : f"{query_port}", | ||||
|             'ServerPassword' : f"{password_server}", | ||||
|             'MaxPlayers' : f"{max_players}", | ||||
|             'ModsId' : f"{mods_id}", | ||||
|             'Listen' : f"{listen_server}", | ||||
|             'ServerPath' : f"{dir_server}" | ||||
|             'Cluster' : cluster_server, | ||||
|             'Map' : map_server, | ||||
|             'SessionName' : name_server, | ||||
|             'Port' : port_server, | ||||
|             'QueryPort' : query_port, | ||||
|             'ServerPassword' : password_server, | ||||
|             'MaxPlayers' : max_players, | ||||
|             'ModsId' : mods_id, | ||||
|             'Listen' : listen_server, | ||||
|             'ServerPath' : dir_server | ||||
|         } | ||||
|  | ||||
|     ] | ||||
|     with open(f"{home_dir}/.config/dodo/{map_server}.yaml", 'w') as yamlfile: | ||||
|     with open(f"{home_dir}/.config/dodo/{map_server[-1]}.yaml", 'w') as yamlfile: | ||||
|         data = yaml.dump(settings_dodo, yamlfile) | ||||
|         print(data) | ||||
|         print("Конфиг создан") | ||||
|  | ||||
|  | ||||
| def install(map_server): | ||||
|     for i in map_server: | ||||
|         cluster_server, name_server, port_server, query_port, password_server, max_players, dir_server, mods_id, listen_server = read_yaml(i) | ||||
|         if not os.path.isdir(dir_server + i): | ||||
|             os.mkdir(dir_server + i) | ||||
|             print("-"*20) | ||||
|             print("Качаем карту " + i) | ||||
|             print("-"*20) | ||||
|             os.system(f"steamcmd +force_install_dir {dir_server + i} +login anonymous +app_update 376030 +quit") | ||||
|         print("-"*20) | ||||
|         print(i) | ||||
|         print("-"*20) | ||||
|         def start(): | ||||
|             os.chdir(dir_server + i + "/" + "ShooterGame/Binaries/Linux/") | ||||
|             os.system(f"./ShooterGameServer {i}?SessionName={name_server}?Port={port_server}?QueryPort={query_port}?MaxPlayers={max_players}?GameModIds={mods_id}?listen={listen_server}") | ||||
|             print("-"*20) | ||||
|             print("server " +i + " Запустился") | ||||
|             print("-"*20) | ||||
|         threads = threading.Thread(target=start, args=(map_server,)) | ||||
|         threads.start() | ||||
|  | ||||
|  | ||||
| def read_yaml(map_server): | ||||
|     print("начало read"  "map_server") | ||||
|     print(map_server) | ||||
|     with open(f"{home_dir}/.config/dodo/{map_server}.yaml", "r") as yamlfile: | ||||
|         data = yaml.load(yamlfile, Loader=yaml.FullLoader) | ||||
|         map_server = 'data.Map' | ||||
|         dir_server = 'data.ServerPath' | ||||
|         name_server = 'data.SessionName' | ||||
|         port_server = 'data.Port' | ||||
|         query_port = 'data.QueryPort' | ||||
|         password_server = 'data.ServerPassword' | ||||
|         max_players = 'data.MaxPlayers' | ||||
|         mods_id = 'data.ModsId' | ||||
|         listen_server = 'data.Listen' | ||||
|         cluster_server = 'data.Cluster' | ||||
|         data = data[0] | ||||
|         print("-"*20) | ||||
|         print(data) | ||||
|         print("конец read"  "map_server") | ||||
|     return cluster_server, map_server, name_server, port_server, query_port, password_server, dir_server, max_players, mods_id, | ||||
|         print(type(data)) | ||||
|         print("-"*20) | ||||
|         #map_server = data['Map'] | ||||
|         dir_server = data['ServerPath'] | ||||
|         name_server = data['SessionName'] | ||||
|         port_server = data['Port'] | ||||
|         query_port = data['QueryPort'] | ||||
|         password_server = data['ServerPassword'] | ||||
|         max_players = data['MaxPlayers'] | ||||
|         mods_id = data['ModsId'] | ||||
|         listen_server = data['Listen'] | ||||
|         cluster_server = data['Cluster'] | ||||
|     return cluster_server, name_server, port_server, query_port, password_server, max_players, dir_server, mods_id, listen_server | ||||
|  | ||||
|  | ||||
| def install(): | ||||
|     read_yaml(map_server) | ||||
|     if not os.path.isdir(dir_server + map_server): | ||||
|         os.mkdir(dir_server + map_server) | ||||
|     else: | ||||
|         os.system(f"steamcmd +force_install_dir {dir_server + map_server} +login anonymous +app_update 376030 +quit") | ||||
| cluster_server, map_server, name_server, port_server, query_port, password_server, max_players, count_maps = yaml_edit() | ||||
|  | ||||
|  | ||||
| def start(): | ||||
|     read_yaml(map_server) | ||||
|     os.chdir(dir_server + map_server + "/" + "ShooterGame/Binaries/Linux/") | ||||
|     os.system(f"./ShooterGameServer {map_server}?SessionName={name_server}?Port={port_server}?QueryPort={query_port}?MaxPlayers={max_players}?GameModIds={mods_id}?listen={listen_server}") | ||||
|  | ||||
|  | ||||
| cluster_server, map_server, name_server, port_server, query_port, password_server, max_players = yaml_edit() | ||||
| install() | ||||
| start() | ||||
| install(map_server) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user