diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index ccc50f70..421e1568 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -587,47 +587,52 @@ class ServerInstance: # We need to grab the exact forge version number. # We know we can find it here in the run.sh/bat script. - run_file_path = "" - if self.helper.is_os_windows(): - run_file_path = os.path.join(server_obj.path, "run.bat") - else: - run_file_path = os.path.join(server_obj.path, "run.sh") + try: + run_file_path = "" + if self.helper.is_os_windows(): + run_file_path = os.path.join(server_obj.path, "run.bat") + else: + run_file_path = os.path.join(server_obj.path, "run.sh") - if Helpers.check_file_perms(run_file_path) and os.path.isfile( - run_file_path - ): - run_file = open(run_file_path, "r", encoding="utf-8") - run_file_text = run_file.read() - else: - Console.error( - "ERROR ! Forge install can't read the scripts files." - " Aborting ..." + if Helpers.check_file_perms(run_file_path) and os.path.isfile( + run_file_path + ): + run_file = open(run_file_path, "r", encoding="utf-8") + run_file_text = run_file.read() + else: + Console.error( + "ERROR ! Forge install can't read the scripts files." + " Aborting ..." + ) + return + + # We get the server command parameters from forge script + server_command = re.findall( + r"java @([a-zA-Z0-9_\.]+)" + r" @([a-z.\/\-]+)([0-9.\-]+)\/\b([a-z_0-9]+\.txt)\b( .{2,4})?", + run_file_text, + )[0] + + version = server_command[2] + executable_path = f"{server_command[1]}{server_command[2]}/" + + # Let's set the proper server executable + server_obj.executable = os.path.join( + f"{executable_path}forge-{version}-server.jar" ) - return - - # We get the server command parameters from forge script - server_command = re.findall( - r"java @([a-zA-Z0-9_\.]+)" - r" @([a-z.\/\-]+)([0-9.\-]+)\/\b([a-z_0-9]+\.txt)\b( .{2,4})?", - run_file_text, - )[0] - - version = server_command[2] - executable_path = f"{server_command[1]}{server_command[2]}/" - - # Let's set the proper server executable - server_obj.executable = os.path.join( - f"{executable_path}forge-{version}-server.jar" - ) - # Now lets set up the new run command. - # This is based off the run.sh/bat that - # Forge uses in 1.16 and < - execution_command = ( - f"java @{server_command[0]}" - f" @{executable_path}{server_command[3]} nogui {server_command[4]}" - ) - server_obj.execution_command = execution_command - Console.debug("SUCCESS! Forge install completed") + # Now lets set up the new run command. + # This is based off the run.sh/bat that + # Forge uses in 1.17 and < + execution_command = ( + f"java @{server_command[0]}" + f" @{executable_path}{server_command[3]} nogui" + " {server_command[4]}" + ) + server_obj.execution_command = execution_command + Console.debug("SUCCESS! Forge install completed") + except: + logger.debug("Could not find run file.") + # TODO Use regex to get version and rebuild simple execution # We'll update the server with the new information now. HelperServers.update_server(server_obj)