# AirfieldZ Launcher v1.1.5 - Source décompilée

**Auteur original :** Vrombi (contact@vrombi.fr) — https://airfieldz.fr  
**Launcher Minecraft** — Application Electron

## Structure du projet

```
airfieldz-decompiled/
├── dist/                          # Frontend (app Vue.js compilée)
│   ├── index.html                 # Page HTML principale
│   └── assets/
│       ├── index-BYFSGL0u.js      # App Vue.js (frontend)
│       ├── index-DlUdvbC1.css     # Styles CSS
│       ├── logo-rf-9CBwV.png      # Logo AirfieldZ
│       ├── bg-X8ohJyL9.png        # Fond d'écran
│       ├── gold-DOv-uqYx.png      # Gemmes (or)
│       ├── silver-CvQelbQ9.png    # Gemmes (argent)
│       ├── bronze-2onYj7xE.png    # Gemmes (bronze)
│       └── box-DC1EQIxn.png       # Coffre mystère
├── dist-electron/                 # Backend Electron (processus principal)
│   ├── main.js                    # Coeur du launcher (beauté)
│   ├── preload.js                 # Bridge IPC frontend/backend
│   ├── chunk-DyKKrNZQ.js          # Runtime helpers
│   ├── chunk-BDDJmn7V.js          # Dépendances
│   ├── main-CyGMgeb9.js           # Build alternatif
│   └── main-D44fDnSb.js           # Build alternatif (electron-log bundle)
├── node_modules/                  # Dépendances npm
├── package.json                   # Métadonnées du projet
├── scripts/
│   ├── rebuild-asar.sh            # Script pour rebuild l'app.asar
│   └── extract-asar.sh            # Script pour extraire l'asar
└── README.md                      # Ce fichier
```

## API IPC (Communication frontend ↔ backend)

### Invocations (renderer → main)

```
auth:login(email, password, 2faCode?)    → Authentification AzAuth
auth:refresh()                           → Rafraîchir token
auth:logout()                            → Déconnexion
settings:get()                           → Lire la configuration
settings:set(key, value)                 → Écrire la configuration
settings:pick_java()                     → Sélectionner Java
profiles:get()                           → Obtenir les profils Minecraft
game:launch(profile?)                    → Lancer Minecraft
server:status()                          → Statut du serveur
news:get_categories()                    → Catégories d'actualités
news:get_news()                          → Actualités
maintenance:get()                        → Infos maintenance
bootstraps:check()                       → Vérifier les bootstraps
bootstraps:download()                    → Télécharger bootstraps
bootstraps:install()                     → Installer bootstraps
system:info()                            → Infos système
background:get()                         → Image de fond
```

### Events (main → renderer) — progression en direct

```
game:launch_compute_download    game:launch_download(data)
game:download_progress(%)       game:download_error(err)
game:download_end(data)         game:launch_install_loader(loader)
game:launch_extract_natives     game:extract_progress(%)

game:extract_end(data)          game:launch_copy_assets
game:copy_progress(%)           game:copy_end(data)
game:launch_patch_loader        game:patch_progress(%)
game:patch_error(err)           game:patch_end(data)
game:launch_check_java          game:java_info(info)
game:launch_clean               game:clean_progress(%)
game:clean_end(data)            game:launch_launch(config)
game:launch_data(data)          game:launched
game:launch_debug(msg)          game:patch_debug(msg)
game:launch_close
```

## Installation des outils pour modifier

```bash
# Installer Node.js (si pas déjà fait)
sudo apt install nodejs npm

# Installer l'outil ASAR pour repackager
npm install -g @electron/asar
```

## Modifier et rebuild

### 1. Modifier le code

Édite les fichiers dans `dist-electron/` (backend) ou `dist/` (frontend).

### 2. Rebuild l'app.asar

```bash
cd /chemin/vers/airfieldz-decompiled
bash scripts/rebuild-asar.sh
```

### 3. Remplacer dans l'AppImage

```bash
# Monter l'AppImage
./AirfieldZ-1.1.5.AppImage --appimage-extract
# Remplacer l'asar
cp airfieldz-decompiled/app.asar squashfs-root/resources/
# Repackager en AppImage (ou utiliser l'app direct depuis squashfs-root)
```

## Points d'entrée pour modifications courantes

| Ce que tu veux changer | Fichier à modifier |
|---|---|
| Interface, textes, couleurs | `dist/index.html` + `dist/assets/index-BYFSGL0u.js` |
| Authentification (API URL) | `dist-electron/main.js` (chercher "azuriom" ou "airfieldz.fr") |
| URLs de téléchargement Minecraft | `dist-electron/main.js` |
| Configuration des gems/prix | `dist/index.html` (section shop) |
| Logique de lancement Minecraft | `dist-electron/main.js` |
| Paramètres par défaut (RAM, etc.) | `dist-electron/main.js` |
| Bannière/pub | `dist/index.html` |
