From 89956aa42aa923a2b2b0951700b21e2b0d2a272b Mon Sep 17 00:00:00 2001 From: Cakihorse <91017164+cakihorse@users.noreply.github.com> Date: Sat, 13 Jan 2024 16:45:59 +0100 Subject: [PATCH] New: swinglauncher --- pages/open-auth.mdx | 2 + pages/swing-launcher/Get-Started.mdx | 18 ++++++++ pages/swing-launcher/Launcher.java.mdx | 31 ++++++++++++++ pages/swing-launcher/Main.java.mdx | 58 ++++++++++++++++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 pages/swing-launcher/Get-Started.mdx create mode 100644 pages/swing-launcher/Launcher.java.mdx create mode 100644 pages/swing-launcher/Main.java.mdx diff --git a/pages/open-auth.mdx b/pages/open-auth.mdx index ec1d5d8..6186a6d 100644 --- a/pages/open-auth.mdx +++ b/pages/open-auth.mdx @@ -116,6 +116,8 @@ Voici comment l'utiliser : ... MicrosoftAuthResult result = authenticator.loginWithRefreshToken("refresh token"); ``` +### Auth par "DeviceId" +*Cette auth est en cours d'écriture, elle permettrait de ne pas utiliser la webView et d'ouvrir une page internet pour taper un code, comme il est fait dans le launcher de multiMc* ## Résultat diff --git a/pages/swing-launcher/Get-Started.mdx b/pages/swing-launcher/Get-Started.mdx new file mode 100644 index 0000000..a59cff4 --- /dev/null +++ b/pages/swing-launcher/Get-Started.mdx @@ -0,0 +1,18 @@ +# Documentation de SwingLauncher + +Ici, vous allez trouver des informations concernant le code du swing template. + +## Avant de commencer +S'il vous plait, ayez une bonne connaissance de votre sujet (java, swing) pour ne pas être peiner dans votre projet. + +## Installation + - Pour créer votre launcher en utilisant le repo github, clonez-le via git sur votre ordinateur. + - Ouvrez le projet avec l'ide que vous souhaitez (Intelij Idea est fortement recommandé). + + À présent vous êtes prêt à coder votre launcher ! + +import { Callout } from "nextra-theme-docs"; + + + Faites attention à ouvrir le bon dossier ! + diff --git a/pages/swing-launcher/Launcher.java.mdx b/pages/swing-launcher/Launcher.java.mdx new file mode 100644 index 0000000..d41897d --- /dev/null +++ b/pages/swing-launcher/Launcher.java.mdx @@ -0,0 +1,31 @@ +import { Callout } from "nextra-theme-docs"; + + + noFramework est maintenant utilisé pour le lancement du jeu ! + + +Cette class permet de lancer un client miecraft en utilisant FlowUpdater. Vous pouvez trouver plus d'informations à propos ici: [FlowUpdater](../../flow-updater) + +## Launch function +```java +public static void launch() { + try { + NoFramework noFramework = new NoFramework( + gameDir, + authInfos, + GameFolder.FLOW_UPDATER + ); + noFramework.getAdditionalVmArgs().add("-Xms1G"); + noFramework.getAdditionalVmArgs().add("-Xmx" + getSaver().get("ram") + "G"); + + Process p = noFramework.launch("1.8.8", "", NoFramework.ModLoader.VANILLA); + } catch (Exception e) { + logger.printStackTrace(e); + } + ``` + +### Vm arguments + Avec `"noFramework.getAdditionalVmArgs().add("eheh i'm a Vm argument");`,vous pouvez ajouter un argument à la jvm, mais vous n'avez pas enormément de possibilité d'utilisation dans notre cas. Générallement, vous allez l'utiliser comme un argument pour la ram. + +### Launch Process +Le lancement est un process, donc vous pouvez obtenir certaines informations, comme celle de savoir s'il est toujours fonctionnel. [Plus d'informations](https://docs.oracle.com/javase/8/docs/api/java/lang/Process.html) diff --git a/pages/swing-launcher/Main.java.mdx b/pages/swing-launcher/Main.java.mdx new file mode 100644 index 0000000..ab3638b --- /dev/null +++ b/pages/swing-launcher/Main.java.mdx @@ -0,0 +1,58 @@ +import { Callout } from "nextra-theme-docs"; + +# Main.java + +Cette class extends Jframe, donc nous pouvons directement utiliser la fonction Main() pour mettre en place la fenêtre. + +Nous mettons en place : + - Le titre de la fenêtre + - La taille + - L'exinction du process java lorsqu'on quitte la fenêtre (bouton rouge) + - Le contenu de la fenêtre (JPanel) + - L'icon du launcher + - Si la fenêtre est redimensionnable. + + + L'interface proposée n'est pas la votre, merci de créer la votre ! + + +## isConnected? +```java +MicrosoftAuthenticator microsoftAuthenticator = new MicrosoftAuthenticator(); + final String refresh_token = getSaver().get("refresh_token"); + MicrosoftAuthResult result; + + if (refresh_token != null) { + try { + result = microsoftAuthenticator.loginWithRefreshToken(refresh_token); + } catch (MicrosoftAuthenticationException ex) { + throw new RuntimeException(ex); + } + Launcher.authInfos = new AuthInfos(result.getProfile().getName(), result.getAccessToken(), result.getProfile().getId()); + System.out.printf("Logged in with '%s'%n", result.getProfile().getName()); + setContentPane(new PHome()); + repaint(); + revalidate(); + } + ``` + +Ce bout de code vérifie si un compte microsoft (refresh_token, **pas les informations d'auth**) est sauvegardé dans le fichier du saver. Si c'est le cas, Le launcher se lace correctement, sinon une WebView de connexion s'affichera. + +## Un peu d'amusement +### Déplacement de fenêtre +J'ai ajouté une fonction qui permet aux uitilisateurs de bouger la fenêtre avec leur souris depuis l'intérieur de la fenêtre et non la barre des tâche. + +#### Theme? +J'ai également ajouté un theme swing (intellij theme). + + + + **Vous n'êtes aboslument pas obligé de garder ces ajouts.** + +## Afficher la fenêtre +```java +Main main = new Main(); +``` +Cette ligne permet seulement d'afficher la fenêtre. + +