diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 4692bca..cc392c1 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: actions/setup-python@v6.2.0 with: - python-version: "3.12.13" + python-version: "3.12" cache: 'pip' - name: Install dependencies run: | @@ -103,7 +103,7 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: actions/setup-python@v6.2.0 with: - python-version: "3.12.13" + python-version: "3.12" cache: 'pip' - name: Install dependencies diff --git a/res.qrc b/res.qrc index 55e7a3c..0fc67b2 100644 --- a/res.qrc +++ b/res.qrc @@ -33,12 +33,6 @@ assets/styles/dark.qss assets/styles/light.qss - - data/defaults_instances/mclce.lce_inst - data/defaults_instances/neoLegacy.lce_inst - data/defaults_instances/revelation.lce_inst - data/defaults_instances/aether.lce_inst - assets/languages/translations.json assets/languages/fr.json @@ -50,6 +44,5 @@ src/instance_news.html - src/skin-manager.html diff --git a/src/form.ui b/src/form.ui index d8c5837..bd30056 100644 --- a/src/form.ui +++ b/src/form.ui @@ -638,11 +638,35 @@ - qrc:/website/skins.html + https://kurojs.github.io/McView3D/embed.html?skin=Steve&width=400&height=400&animation=idle + + + + Dowwnload Skin + + + + + + + Username (Java only) + + + + + + + + + + Change Skin + + + @@ -723,19 +747,8 @@ - - - Load Default Instance - - - - - - - - @@ -796,9 +809,10 @@ Marketplace - + + @@ -1215,6 +1229,15 @@ Enable Experiments + + + + :/assets/jigsaw-ico.png:/assets/jigsaw-ico.png + + + Download Instances Data + + diff --git a/src/lce_qt_launcher/views/launcher.py b/src/lce_qt_launcher/views/launcher.py index 2100d44..305e52b 100644 --- a/src/lce_qt_launcher/views/launcher.py +++ b/src/lce_qt_launcher/views/launcher.py @@ -8,7 +8,7 @@ from PySide6.QtWidgets import ( QMessageBox, ) from PySide6.QtGui import QPalette, QPixmap, QBrush -from PySide6.QtCore import Qt, QFile, QIODevice +from PySide6.QtCore import Qt #, QFile, QIODevice from PySide6.QtWebEngineCore import ( QWebEnginePage, QWebEngineProfile, @@ -70,6 +70,8 @@ class LauncherView(QMainWindow): self.instances: list[Instance] = list[Instance]() self.username: str = appContext.username + skinUsername : str = appContext.username # pyright: ignore[reportUnusedVariable] # disabled temporably + STARTING_GAME_MSG: str = translator.translate("start_game_msg") def generateInstanceFromForm() -> None: @@ -140,9 +142,6 @@ class LauncherView(QMainWindow): def openWorkshopCommand() -> None: features.show_webbrowser(self, "https://lce-hub.github.io/piston/") - def openLegacymodsCommand() -> None: - features.show_webbrowser(self, "https://legacymods.org/") - def openAppRootCommand() -> None: systemManager.open_url_with_system(appData.projectRootDir) @@ -153,8 +152,8 @@ class LauncherView(QMainWindow): def openGitHubIssuesCommand() -> None: webbrowser.open(git_repo_url_str + "/issues") - def loadDefaultInstanceCommand() -> None: - self.loadInstanceData(dict(), instanceManager, appContext) + # def loadDefaultInstanceCommand() -> None: + # self.loadInstanceData(dict(), instanceManager, appContext) def loadInstanceFromItemDataCommand() -> None: item = self.ui.listWidget.currentItem() @@ -188,6 +187,12 @@ class LauncherView(QMainWindow): ) instanceManager.instance.steam_link = value[0] + def changeTheSkinCommand(): + skinUsername = self.ui.usernameSkinInputBox.text() + URL_STR = "https://kurojs.github.io/McView3D/embed.html?skin=Steve&width=400&height=400&animation=idle" + new_url_str : str = URL_STR.replace("Steve", skinUsername) + self.ui.skinManagerWebUI.setUrl(new_url_str) + background_pixmap = QPixmap(appContext.BACKGROUND_PIXMAP_IMG) if not background_pixmap.isNull(): palette: QPalette = self.palette() @@ -290,7 +295,6 @@ class LauncherView(QMainWindow): self.ui.actionInstall_Content.triggered.connect(installContentActionCommand) self.ui.actionInstances.triggered.connect(openAppInstancesDataCommand) self.ui.actionLCE_Hub_Workshop.triggered.connect(openWorkshopCommand) - self.ui.actionLegacyMods_Coming_Soon.triggered.connect(openLegacymodsCommand) self.ui.actionApp_Root.triggered.connect(openAppRootCommand) self.ui.actionConfigPath.triggered.connect(openAppConfigCommand) @@ -302,60 +306,10 @@ class LauncherView(QMainWindow): openGitHubIssuesCommand ) - self.ui.actionLoadDefaultInstance.triggered.connect(loadDefaultInstanceCommand) - self.ui.actionLoadmclceInstance.setText("MCLCE Source Code Backup") + self.ui.changeSkinButton.clicked.connect(changeTheSkinCommand) - mclceJson = QFile(":/instances/mclce.lce_inst") - if not mclceJson.open(QIODevice.OpenModeFlag.ReadOnly): - term_service.print_error("Cannot found or open MCLCE Instance") - self.ui.actionLoadmclceInstance.setEnabled(False) - return None - else: - raw_text_neo: str = bytes(mclceJson.readAll().data()).decode("utf-8") - data_neo = json.loads(raw_text_neo) - - self.ui.actionLoadmclceInstance.triggered.connect( - lambda: self.loadInstanceData(data_neo, instanceManager, appContext) - ) - - revelationJson = QFile(":/instances/revelations.lce_inst") - if not revelationJson.open(QIODevice.OpenModeFlag.ReadOnly): - term_service.print_error("Cannot found or open revelations Instance") - self.ui.actionLoadRevelationsInstance.setEnabled(False) - return None - else: - raw_text_rev = bytes(revelationJson.readAll().data()).decode("utf-8") - data_rev = json.loads(raw_text_rev) - - self.ui.actionLoadRevelationsInstance.triggered.connect( - lambda: self.loadInstanceData(data_rev, instanceManager, appContext) - ) - - aetherJson = QFile(":/instances/aether.lce_inst") - if not aetherJson.open(QIODevice.OpenModeFlag.ReadOnly): - term_service.print_error("Cannot found or open Aether Instance") - self.ui.actionLoadAetherInstance.setEnabled(False) - return None - else: - raw_text_aether = bytes(aetherJson.readAll().data()).decode("utf-8") - data_aether = json.loads(raw_text_aether) - - self.ui.actionLoadAetherInstance.triggered.connect( - lambda: self.loadInstanceData(data_aether, instanceManager, appContext) - ) - - mclceJson = QFile(":/instances/mclce.lce_inst") - if not mclceJson.open(QIODevice.OpenModeFlag.ReadOnly): - term_service.print_error("Cannot found or open MCLCE Instance") - self.ui.actionLoadmclceInstance.setEnabled(False) - return None - else: - raw_text_mcleJson = bytes(mclceJson.readAll().data()).decode("utf-8") - data_mclce = json.loads(raw_text_mcleJson) - - self.ui.actionLoadAetherInstance.triggered.connect( - lambda: self.loadInstanceData(data_mclce, instanceManager, appContext) - ) + self.ui.downloadSkinButton.setEnabled(False) + self.ui.downloadFromLabel.setText("Download Skin (Coming Soon)") self.setup_web_engine() diff --git a/src/skin-manager.html b/src/skin-manager.html deleted file mode 100644 index ff54bec..0000000 --- a/src/skin-manager.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - LCE Qt Launcher - Gestionnaire de Skins - - - -
-
- -
- - - -
- - - - Download The skins - -
- - - - - \ No newline at end of file diff --git a/www/fr/index.html b/www/fr/index.html index 5e4eb9a..910f003 100644 --- a/www/fr/index.html +++ b/www/fr/index.html @@ -27,7 +27,7 @@
-

[!AVERTISSEMENT]
+

[!WARNING] Ce lanceur est en cours de développement et ses fonctionnalités peuvent être modifiées ou supprimées à - tout moment.
GPLv3 - licence et le Code de respect

+ tout + moment. + Les demandes d'aide (PR) pour corriger ou ajouter des fonctionnalités sont les bienvenues. Veuillez + simplement + respecter la GPLv3 et le Code de conduite.

+

#

+
-

[!INFORMATION]
- La mise à jour et l'installation automatiques des fichiers du jeu sont instables et non viables. Il est - recommandé d'avoir les fichiers du jeu déjà installés.
+

[!NOTE] + Les mises à jour et installations automatiques des fichiers du jeu sont instables et peu fiables. Il est + recommandé d'avoir déjà installé le jeu. En effet, le mécanisme d'installation et de mise à jour nécessite un dépôt externe qui peut être fermé - sans préavis. Je fais de mon mieux et les versions nocturnes sont souvent à jour, mais la version stable - est - parfois en retard et nécessite une intervention manuelle. -

À propos

- Ceci est un lanceur LCE personnalisé pour Minecraft, écrit avec PySide6 (Qt6 pour Python), compatible - avec Freedom et GNU/Linux. + sans + préavis. Je fais de mon mieux, et les versions de développement (nightly) sont généralement à jour, + mais la version stable est parfois retardée et nécessite une intervention manuelle.

+
-

Pourquoi un lanceur LCE Qt?

+

À propos

-
    -
  • Développé en Python avec Qt 6: léger et compatible avec le thème Plasma 6/Qt 6 de GNU/Linux.
  • -
  • Intégration avec les outils de la communauté.
  • -
  • Compatibilité GNU/Linux optimale.
  • -
  • Licence copyleft (GPLv3), donc sans logiciel tiers.
  • -
  • Launcher Libre.
  • -
+

Un lanceur Minecraft LCE personnalisé multiplateforme gratuit, écrit avec PySide6 (Qt6 pour Python).

-

Fonctionnalités

- +

Découvrez le site officiel de LCE Qt Launcher ! État du déploiement sur la page GitHub

-

Objectif à long terme / Feuille de route

+

Pourquoi LCE Qt Launcher ?

-
    -
  • Accessibilité
  • -
  • Prise en charge des thèmes
  • -
  • Compatibilité GNU/Linux
  • -
  • Prise en charge de Windows
  • -
  • Prise en charge expérimentale de FreeBSD et Nix/NixOS
  • -
  • Prise en charge de Flatpak
  • -
  • Prise en charge d'AppImage
  • -
  • Prise en charge des localisations
  • -
  • Un seul et même endroit pour tout ce qui concerne Minecraft LCE sur GNU/Linux
  • -
+
    +
  • Développé en Python avec Qt 6 : Prise en charge native des thèmes Linux et hautement personnalisable +
  • +
  • Intégration avec les outils communautaires
  • +
  • Compatibilité GNU/Linux optimale
  • +
  • Sans logiciel tiers
  • +
  • Libre sous licence Freedom Launcher (GPLv3)
  • +
-

Configuration logicielle requise

- -

Recommandations logicielles

- +

Fonctionnalités

-

Bibliothèques et outils Python utilisés

+
    +
  • Interface en ligne de commande (CLI)
  • +
  • Prise en charge de plusieurs instances
  • +
  • Places de marché :
  • +
  • LCE Hub Emeralds Launcher Workshop
  • +
  • Actualités intégrées pour les instances
  • +
  • Disponible en plusieurs formats :
  • +
  • Version Nuitka : Linux et Windows
  • +
  • AppImage (GNU/Linux uniquement)
  • +
  • Package d'installation Inno Setup (pour la version Nuitka) (Windows)
  • +
  • Portage FreeBSD
  • +
  • Package Arch
  • +
  • Flatpak (prochainement disponible)
  • +
  • Environnement virtuel uv (portable)
  • +
-
    -
  • PySide 6
  • -
  • platformdirs
  • -
  • rich
  • -
  • hatch
  • -
  • uv
  • -
-

Systèmes d'exploitation compatibles

+

Objectif à long terme / Feuille de route

-

Support Gold

+

Axes de développement à long terme

-
-

[!NOTE]
- Plateforme testée régulièrement et avec implémentation/correctif finalisé

-
+
    +
  • Compatibilité GNU/Linux
  • +
  • Prise en charge de Windows
  • +
  • Prise en charge d'AppImage
  • +
  • Centraliser toutes les fonctionnalités Minecraft LCE sur GNU/Linux
  • +
  • Simplicité (éviter autant que possible les éléments superflus comme JavaScript)
  • +
-
    -
  • Windows 10 et plus tard
  • -
  • GNU/Linux
  • -
-

Prise en charge expérimentale

+

Fonctionnalités en cours de développement

-
-

[!NOTE]
- Plateforme testée avec une implémentation en cours de développement

-
+
    +
  • Prise en charge des thèmes
  • +
  • Prise en charge expérimentale de FreeBSD et Nix/NixOS
  • +
  • Prise en charge de Flatpak
  • +
  • Prise en charge des localisations
  • +
-
    -
  • NixOS
  • -
  • Portage FreeBSD & dans venv (portable)
  • -
  • AppImage
  • -
+

Fonctionnalités futures/en projet

-

Plateforme à venir

+
    +
  • Séparation des données dans des dépôts distincts (lce-qt-launcher-data)
  • +
  • Gestion personnalisée des versions/instances + Amélioration de l'interface et du mécanisme de gestion des instances
  • +
  • Prise en charge de davantage d'outils communautaires
  • +
  • Prise en charge des DLC NeoLegacy
  • +
  • Amélioration de l'interface et du mécanisme d'actualités
  • +
  • Accessibilité
  • +
-
+

Recommandations logicielles

+ -

[!NOTE]
+

Bibliothèques et outils Python utilisés

- Plateforme non testée, mais avec une implémentation

+
    +
  • PySide 6
  • +
  • platformdirs
  • +
  • rich
  • +
  • hatch
  • +
  • uv
  • +
-
+

Systèmes d'exploitation compatibles

-
    -
  • Flatpak
  • -
+

Support Gold

-

Systèmes d'exploitation non pris en charge

+
+

[!NOTE]
+ Plateforme testée régulièrement et avec implémentation/correctif finalisé

+
-
-

[!NOTE]
- Ces plateformes n'ont pas été testées et peuvent fonctionner ou non.

-
+
    +
  • Windows 10 et plus tard
  • +
  • GNU/Linux
  • +
-
    -
  • Autres systèmes *BSD, car Minecraft LCE n'est pas pris en charge sur ces systèmes et Wine n'est pas - disponible.
  • -
  • Minecraft LCE sur Android est actuellement assez lent et bogué.
  • -
  • macOS : LCE Qt Launcher ne prend pas officiellement en charge macOS et n'est pas testé lors des PR - et des tests. Il n'existe pas de package pour macOS. Il n'existe aucune documentation à ce sujet. - Cependant, un - utilisateur expérimenté pourrait y parvenir.
  • -
+

Prise en charge expérimentale

-

Remerciements spéciaux à

+
+

[!NOTE]
+ Plateforme testée avec une implémentation en cours de développement

+
- +
    +
  • NixOS
  • +
  • Portage FreeBSD & dans venv (portable)
  • +
  • AppImage
  • -

    Code de conduite

    +
- +

Plateforme à venir

-

Licence

+
-

GPLv3

+

[!NOTE]
+ + Plateforme non testée, mais avec une implémentation

+ +
+ +
    +
  • Flatpak
  • +
+ +

Systèmes d'exploitation non pris en charge

+ +
+

[!NOTE]
+ Ces plateformes n'ont pas été testées et peuvent fonctionner ou non.

+
+ +
    +
  • Autres systèmes *BSD, car Minecraft LCE n'est pas pris en charge sur ces systèmes et Wine n'est pas + disponible.
  • +
  • Minecraft LCE sur Android est actuellement assez lent et bogué.
  • +
  • macOS : LCE Qt Launcher ne prend pas officiellement en charge macOS et n'est pas testé lors des PR + et des tests. Il n'existe pas de package pour macOS. Il n'existe aucune documentation à ce sujet. + Cependant, un + utilisateur expérimenté pourrait y parvenir.
  • +
+ +

Remerciements spéciaux à

+ + + +

Code de conduite

+ + + +

Licence

+ +

GPLv3

diff --git a/www/index.html b/www/index.html index d58b8cf..87e2264 100644 --- a/www/index.html +++ b/www/index.html @@ -36,83 +36,105 @@
-

[!WARNING]
- This launcher is work in progress and its feature could be changes or remove at any time.
- PR are more than welcome to fix or add features. Just be compliant with the GPLv3 - license and the Code of Respect

+

[!WARNING] + This launcher is under development and its features may be modified or removed at any time. + Requests for help (PR) are welcome to fix or add features. Please simply adhere to the GPLv3 and the Code of Conduct.

-

+

#

-

[!INFORMATION]
- The auto-update and installation of the game files is unstable and unviable, it is recommnend to have - the - game file already installation
- as the installation and update mechanism require external repo that can be shutdown without previous - notice. - I do my best and the nightly build are often
- uptodae but the stable version sometime lack behind and require manual intervention.

+

[!NOTE] + Automatic updates and installations of game files are unstable and unreliable. It is recommended that + you + already have the game installed. + This is because the installation and update mechanism requires an external repository that can be shut + down + without notice. I do my best, and the development versions (nightly) are generally up-to-date, + but the stable version is sometimes delayed and requires manual intervention.

About

-

This is a custom Minecraft LCE Launcher written with PySide6 (Qt6 for Python) with Freedom and with GNU/Linux - support in mind.

+

A free cross-platform custom Minecraft LCE launcher, written with PySide6 (Qt6 for Python).

+ +

Check out the official LCE Qt Launcher website! Deployment status on the GitHub page

Why LCE Qt Launcher ?

    -
  • Made in Python with Qt 6 : bloat free and integrate with GNU/Linux Plasma 6/Qt 6 Theme
  • +
  • Made in Python with Qt 6 : Native Linux theme support and highly customisable
  • Integration with Community Tools
  • GNU/Linux first class support
  • -
  • Licensed via copyleft licensing (GPLv3), so big tech free
  • -
  • Free as Freedom Launcher
  • +
  • Big Tech free
  • +
  • Free as Freedom Launcher (GPLv3)
+

Features

+

Long Term Goal / Roadmap

+

Long time Developpement focus

+
    -
  • Accessibility
  • -
  • Skin support
  • GNU/Linux compatibility
  • Windows support
  • -
  • Experimental FreeBSD and Nix/NixOS support
  • -
  • Flatpak support
  • AppImage Support
  • -
  • Localisations support
  • Focus on being one place for everything Minecraft LCE on GNU/Linux
  • +
  • KISS (like try to avoid bloat like JS when possible)
+ +

Work in progress features

+ +
    +
  • Skin support
  • +
  • Experimental FreeBSD and Nix/NixOS support
  • +
  • Flatpak support
  • +
  • Localisations support
  • +
+ + +

Future features/planning features

+ +
    +
  • Separe the data into each own repository (lce-qt-launcher-data)
  • +
  • My own versions/instance store
  • +
  • Better stores UI/Mecanism
  • +
  • Support for more community tools
  • +
  • NeoLegacy DLC support
  • +
  • Better News UI/Mecanism
  • +
  • Accessibility
  • +

Software Requirement