diff --git a/assets/images/360Revived.png b/assets/images/360Revived.png new file mode 100644 index 0000000..40d8961 Binary files /dev/null and b/assets/images/360Revived.png differ diff --git a/assets/images/Revelation.jpg b/assets/images/Revelation.jpg new file mode 100644 index 0000000..dbfdb85 Binary files /dev/null and b/assets/images/Revelation.jpg differ diff --git a/assets/images/hellishends.jpg b/assets/images/hellishends.jpg new file mode 100644 index 0000000..c9d33c6 Binary files /dev/null and b/assets/images/hellishends.jpg differ diff --git a/assets/images/neoLegacy.png b/assets/images/neoLegacy.png new file mode 100644 index 0000000..74a45aa Binary files /dev/null and b/assets/images/neoLegacy.png differ diff --git a/assets/images/portable-lce.png b/assets/images/portable-lce.png new file mode 100644 index 0000000..5194f4e Binary files /dev/null and b/assets/images/portable-lce.png differ diff --git a/data/defaults_instances/360Revived.lce_inst b/data/defaults_instances/360Revived.lce_inst index 1a2607c..45b875a 100644 --- a/data/defaults_instances/360Revived.lce_inst +++ b/data/defaults_instances/360Revived.lce_inst @@ -5,7 +5,7 @@ "archive_file": "LCEWindows64.zip", "exe_name": "Minecraft.Client.exe", "repo_url": "https://github.com/BluTac10/360Revived", - "image" : ":/assets/minecraft.png", + "image" : ":/assets/360Revelation.png", "news_feed" : "https://github.com/BluTac10/360Revived/commits/main/", "instance_source": "InstanceSource.GITHUB_RELEASE", "instance_type": "InstanceType.CLIENT_VANILLA", diff --git a/data/defaults_instances/hellishends.lce_inst b/data/defaults_instances/hellishends.lce_inst index dd59069..987a950 100644 --- a/data/defaults_instances/hellishends.lce_inst +++ b/data/defaults_instances/hellishends.lce_inst @@ -5,7 +5,7 @@ "archive_file": "LCEWindows64.zip", "exe_name": "Minecraft.Client.exe", "repo_url": "hhttps://github.com/deadvoxelx/HellishEnds", - "image" : ":/assets/minecraft.png", + "image" : ":/assets/hellishends.png", "news_feed" : "https://github.com/deadvoxelx/HellishEnds/commits/main/", "instance_source": "InstanceSource.GITHUB_RELEASE", "instance_type": "InstanceType.CLIENT_VANILLA", diff --git a/data/defaults_instances/neoLegacy.lce_inst b/data/defaults_instances/neoLegacy.lce_inst index 8b09863..def6443 100644 --- a/data/defaults_instances/neoLegacy.lce_inst +++ b/data/defaults_instances/neoLegacy.lce_inst @@ -3,7 +3,7 @@ "name": "pieeebot neoLegacy", "instance_type": "InstanceType.CLIENT_VANILLA", "instance_source": "InstanceSource.GITHUB_RELEASE", - "image": ":/assets/lce-hub-ico.png", + "image": ":/assets/neoLegacy.png", "archive_file": "neoLegacyWindows64.zip", "exe_name": "neoLegacyWindows64/Minecraft.Client.exe", "news_feed": "https://github.com/neoStudiosLCE/neoLegacy/commits/main/", diff --git a/data/defaults_instances/revelation.lce_inst b/data/defaults_instances/revelation.lce_inst index 3dd3de7..3f0436c 100644 --- a/data/defaults_instances/revelation.lce_inst +++ b/data/defaults_instances/revelation.lce_inst @@ -5,7 +5,7 @@ "archive_file": "LCE-Revelations-Client-Win64.zip", "exe_name": "Minecraft.Client.exe", "repo_url": "https://github.com/itsRevela/LCE-Revelations", - "image" : ":/assets/minecraft.png", + "image" : ":/assets/Revelation.jpg", "news_feed" : "https://github.com/itsRevela/LCE-Revelations/commits/main/", "instance_source": "InstanceSource.GITHUB_RELEASE", "instance_type": "InstanceType.CLIENT_VANILLA", diff --git a/res.qrc b/res.qrc index 1b3be98..4b3fd72 100644 --- a/res.qrc +++ b/res.qrc @@ -22,6 +22,11 @@ assets/images/piston.png assets/images/aether.png assets/images/jigsaw-ico.png + assets/images/neoLegacy.png + assets/images/360Revived.png + assets/images/Revelation.jpg + assets/images/portable-lce.png + assets/images/hellishends.jpg assets/styles/minecraft.qss diff --git a/src/form.ui b/src/form.ui index 3b0abbd..1e43537 100644 --- a/src/form.ui +++ b/src/form.ui @@ -1113,26 +1113,46 @@ + + + :/assets/neoLegacy.png:/assets/neoLegacy.png + Default (NeoLegacy) + + + :/assets/mclce-ico.png:/assets/mclce-ico.png + - MCLCE (Automatic Installation Coming Later) + MCLCE MinecraftConsoles + + + :/assets/Revelation.jpg:/assets/Revelation.jpg + Revelations + + + :/assets/360Revived.png:/assets/360Revived.png + 360Revived + + + :/assets/hellishends.jpg:/assets/hellishends.jpg + HellishEnds @@ -1141,11 +1161,19 @@ false + + + :/assets/portable-lce.png:/assets/portable-lce.png + Portable MCLE + + + :/assets/aether.png:/assets/aether.png + Aether diff --git a/src/lce_qt_launcher/managers/instance_manager.py b/src/lce_qt_launcher/managers/instance_manager.py index 9983616..0d2fb60 100644 --- a/src/lce_qt_launcher/managers/instance_manager.py +++ b/src/lce_qt_launcher/managers/instance_manager.py @@ -2,18 +2,15 @@ from __future__ import annotations from typing import TYPE_CHECKING -from PySide6.QtWidgets import QMessageBox - if TYPE_CHECKING: from lce_qt_launcher.app_context import AppContext from lce_qt_launcher.build_info import BuildInfo - import lce_qt_launcher.views.term_service as term_service from PySide6.QtNetwork import QNetworkReply - from PySide6.QtCore import QObject +from PySide6.QtWidgets import QMessageBox from enum import Enum from subprocess import TimeoutExpired @@ -289,9 +286,7 @@ class Instance(QObject): class InstanceManager: """_summary_ The Manager for Instances objects""" - def __init__( - self, instance: Instance, build_info: BuildInfo, appContext: AppContext - ): + def __init__(self, instance: Instance, build_info: BuildInfo, appContext: AppContext): self.instance: Instance = instance from lce_qt_launcher.managers.downloader import Downloader @@ -306,36 +301,26 @@ class InstanceManager: """ return_code: int = 0 try: - client_path: str = os.path.join( - self.instance.installation_path, self.instance.exe_name - ) + client_path: str = os.path.join(self.instance.installation_path, self.instance.exe_name) try: - game_process_temp = subprocess.run( - [client_path, "-name", self.instance.username] - ) + game_process_temp = subprocess.run([client_path, "-name", self.instance.username]) return_code = game_process_temp.returncode except subprocess.SubprocessError as e: if os.name == "posix": - game_process_temp = subprocess.run( - ["wine", client_path, "-name", self.instance.username] - ) + game_process_temp = subprocess.run(["wine", client_path, "-name", self.instance.username]) return_code = game_process_temp.returncode else: QMessageBox.critical(None, "Instance Error", str(e.args)) except TimeoutExpired as err: - term_service.print_error( - f"process of lauching instance {self.instance.name} Failed. Reason : Timeout Expired.\n traceback : {err.with_traceback}" - ) + term_service.print_error(f"process of lauching instance {self.instance.name} Failed. Reason : Timeout Expired.\n traceback : {err.with_traceback}") return f"process of lauching instance {self.instance.name} Failed. Reason : Timeout Expired.\n traceback : {err.with_traceback}" except PermissionError as err: - term_service.print_error( - f"Cannot launch {self.instance.name}. Reason : Permission Denied.\n traceback : {err.with_traceback}" - ) + term_service.print_error(f"Cannot launch {self.instance.name}. Reason : Permission Denied.\n traceback : {err.with_traceback}") return f"Cannot launch {self.instance.name}. Reason : Permission Denied.\n traceback : {err.with_traceback}" else: return f"Client closed with code {return_code}" - def install_instance(self) -> QNetworkReply: + def install_instance(self) -> QNetworkReply | str: """_summary_ Install the selected Instance Raises: @@ -351,6 +336,9 @@ class InstanceManager: InstanceSource.FORGEJO_RELEASE, ]: return self._downloader.download_inst_async(self.instance) + if self.instance.instance_source == InstanceSource.REMOTE_GIT_SOURCE: + subprocess.run(["git", "clone", self.instance.repo_url, self.instance.installation_path]) + return "git_operation_finished" else: raise RuntimeWarning( "Not implemented YET"