Skip to content

Commit

Permalink
New: swinglauncher
Browse files Browse the repository at this point in the history
  • Loading branch information
cakihorse authored and Bricklou committed Jan 13, 2024
1 parent 1a603e1 commit 89956aa
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 0 deletions.
2 changes: 2 additions & 0 deletions pages/open-auth.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
18 changes: 18 additions & 0 deletions pages/swing-launcher/Get-Started.mdx
Original file line number Diff line number Diff line change
@@ -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";

<Callout type="warning" emoji="⚠️">
Faites attention à ouvrir le bon dossier !
</Callout>
31 changes: 31 additions & 0 deletions pages/swing-launcher/Launcher.java.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { Callout } from "nextra-theme-docs";

<Callout type="information" emoji="">
noFramework est maintenant utilisé pour le lancement du jeu !
</Callout>

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)
58 changes: 58 additions & 0 deletions pages/swing-launcher/Main.java.mdx
Original file line number Diff line number Diff line change
@@ -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.

<Callout type="error" emoji="⚠️">
L'interface proposée n'est pas la votre, merci de créer la votre !
</Callout>

## 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).
<Callout type="information" emoji="🛠">
**Vous n'êtes aboslument pas obligé de garder ces ajouts.**
</Callout>
## Afficher la fenêtre
```java
Main main = new Main();
```
Cette ligne permet seulement d'afficher la fenêtre.

0 comments on commit 89956aa

Please sign in to comment.