Files
AeroMc-Launcher/README.md
T
2026-07-28 21:00:59 +00:00

157 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div align="center">
<img src="src/assets/logo.png" alt="Viper-Network Logo" width="140" />
# Viper-Network Launcher
**Ein instanz-basierter Minecraft-Launcher für Windows – à la MultiMC / Prism.**
Verwalte beliebig viele isolierte Minecraft-Instanzen mit eigener Version, eigenen Mods und eigenem Java – lade Mods per Ein-Klick von Modrinth, melde dich mit deinem Microsoft-Konto an und spiele.
![Version](https://img.shields.io/badge/version-0.6.0-2b8bff)
![Platform](https://img.shields.io/badge/platform-Windows%20x64-2b8bff)
![Electron](https://img.shields.io/badge/Electron-28-2b8bff)
![License](https://img.shields.io/badge/license-MIT-e23a3f)
</div>
---
## ✨ Features
| Bereich | Funktion | Status |
|---|---|---|
| **Instanzen** | Anlegen, Bearbeiten, Duplizieren, Löschen – jede Instanz ein isolierter Ordner | ✅ |
| **Instanzen** | Eigenes Icon (Emoji-Set **oder** eigenes Bild) | ✅ |
| **Versionen** | Minecraft-Version aus dem offiziellen Mojang-Manifest wählen (Release/Snapshot) | ✅ |
| **Java** | Automatische Erkennung installierter Java-Versionen (Adoptium, Oracle, Zulu, Corretto, Microsoft …) | ✅ |
| **Java** | Passende Java-Version wird automatisch pro Minecraft-Version gewählt | ✅ |
| **Mods** | Modrinth-Browser mit **Ein-Klick-Installation** in die Instanz | ✅ |
| **Login** | Offizieller Microsoft-Login (Device-Code-Flow) mit **Mehrkonten-Verwaltung** | ✅ |
| **Start** | Vanilla-Download (Client, Libraries, Natives, Assets) & Start | ✅ |
| **Loader** | **Fabric** & **Quilt** installieren & starten | ✅ |
| **Loader** | **Forge** & **NeoForge** | ⏳ in Arbeit |
---
## 🚀 Installation & Start
**Voraussetzungen:** [Node.js](https://nodejs.org/) 18+ und ein installiertes **Java** (JRE/JDK; für moderne Versionen Java 21).
```bash
# Abhängigkeiten installieren
npm install
# Launcher starten
npm start
```
### Windows-Installer bauen
```bash
npm run build
```
Erzeugt einen NSIS-Installer (`.exe`) im Ordner `dist/` (electron-builder, x64).
Für ein Icon der gebauten `.exe` lege `src/assets/icon.ico` (256×256) ab.
---
## 🎮 Bedienung
1. **+ Neue Instanz** → Name, Minecraft-Version und optional einen Mod-Loader (Fabric/Quilt) wählen.
2. Instanz anklicken → Detailansicht mit **▶ Spielen**, **🧩 Mods**, Bearbeiten, Ordner, Duplizieren, Löschen.
3. **🧩 Mods** → Modrinth durchsuchen und mit einem Klick installieren (passend zu Version + Loader).
4. **👤 Anmelden** (oben rechts) → Microsoft-Konto hinzufügen (mehrere möglich, aktives Konto spielt).
5. **▶ Spielen** → Der Launcher lädt alles Nötige und startet Minecraft mit deinem Konto.
> 💡 **Parallel spielen:** Konto A aktivieren → starten → Konto B aktivieren → starten. Jeder Start ist ein eigener Prozess, so laufen mehrere Clients mit verschiedenen Accounts gleichzeitig.
---
## 🔐 Microsoft-Login einrichten
Der Launcher bringt bereits eine **eingebaute Azure-App-ID** mit – Endnutzer müssen nichts eintragen und melden sich einfach mit ihrem eigenen Microsoft-Konto an.
> ⚠️ **Wichtiger Hinweis zur Freischaltung:** Seit 2024 müssen **neu registrierte** Azure-Apps von Microsoft/Mojang freigeschaltet werden, bevor sie sich bei den Minecraft-Diensten anmelden dürfen. Bis zur Freigabe endet der Login mit `Invalid app registration (403)`. Die Freischaltung wird über das offizielle Formular **[aka.ms/mce-reviewappid](https://aka.ms/mce-reviewappid)** beantragt. Der Launcher-Code ist vollständig – sobald die App-ID freigeschaltet ist, funktioniert der Login ohne weitere Änderungen.
**Eigene Azure-App verwenden (optional):** In den ⚙ Einstellungen lässt sich eine eigene Client-ID hinterlegen. Anforderungen:
- Kontotyp: **Nur persönliche Microsoft-Konten**
- Authentifizierung → **„Öffentliche Clientflows zulassen" = Ja**
- Freischaltung über [aka.ms/mce-reviewappid](https://aka.ms/mce-reviewappid)
Der Login nutzt ausschließlich den offiziellen Microsoft-OAuth-Flow (echtes Konto, Spielbesitz vorausgesetzt). Ein Offline-/„Cracked"-Login wird **bewusst nicht** angeboten.
---
## 🗂️ Projektstruktur
```
Viper-Network/
├─ package.json # Metadaten, Scripts, electron-builder-Konfig
└─ src/
├─ main.js # Electron-Hauptprozess: Fenster, IPC
├─ preload.js # sichere Bridge (contextIsolation)
├─ renderer.js # UI-Logik
├─ index.html # Oberfläche
├─ styles.css # Design (Logo-Farbwelt: Blau/Rot/Silber)
├─ store.js # Persistenz: Instanzen, Einstellungen, Mods, Bilder
├─ services.js # Java-Scan, Mojang-Versionen, Modrinth
├─ launcher.js # Download-/Start-Pipeline (Client/Libs/Natives/Assets)
├─ loaders.js # Mod-Loader (Fabric/Quilt)
├─ auth.js # Microsoft-Login + Mehrkonten
└─ assets/
└─ logo.png # App-Logo
```
### Datenspeicherorte
Alle Nutzerdaten liegen unter `%APPDATA%\Viper-Network\` (im Dev-Modus `%APPDATA%\viper-network\`):
| Pfad | Inhalt |
|---|---|
| `instances/<id>/instance.json` | Metadaten der Instanz |
| `instances/<id>/mods.json` | installierte Mods |
| `instances/<id>/minecraft/` | Spielverzeichnis (Saves, Configs, `mods/`) |
| `settings.json` | globale Einstellungen |
| `accounts.json` | angemeldete Microsoft-Konten (Tokens lokal) |
| `shared/{versions,libraries,assets}` | von allen Instanzen geteilte Spieldateien |
| `mc-versions.json` | zwischengespeicherte Mojang-Versionsliste |
---
## 🛠️ Technik-Stack
- **[Electron](https://www.electronjs.org/) 28** – Desktop-App (plain, ohne Bundler)
- **Node.js** – Datei-, Netzwerk- und Prozess-Handling
- Reines **HTML / CSS / JavaScript** im Renderer (contextIsolation aktiv, kein Node im UI)
- **electron-builder** – Windows-Installer (NSIS)
**Genutzte APIs/Dienste:**
- [Mojang / Piston Meta](https://piston-meta.mojang.com/) – Versionen, Client, Libraries, Assets
- [Modrinth API](https://docs.modrinth.com/) – Mod-Suche & -Download
- [Fabric Meta](https://meta.fabricmc.net/) / [Quilt Meta](https://meta.quiltmc.org/) – Loader-Profile
- Microsoft Identity Platform + Xbox Live + Minecraft Services – Login
---
## 🗺️ Roadmap
- [ ] Forge & NeoForge (Installer mit Prozessoren)
- [ ] „Starten als [Konto]" direkt an der Instanz
- [ ] Loader-Versionsauswahl im Dialog
- [ ] Skins/Avatare in der Kontoliste
- [ ] Instanz-Gruppen & Sortierung
- [ ] Import/Export von Instanzen (Modpacks)
---
## ⚖️ Rechtliches
Dieses Projekt steht in **keiner** Verbindung zu Mojang, Microsoft oder Xbox und ist kein offizielles Produkt.
„Minecraft" ist eine Marke von Mojang AB. Für die Nutzung ist ein **rechtmäßig erworbenes** Minecraft (Java Edition) sowie ein gültiges Microsoft-Konto erforderlich.
## 📄 Lizenz
MIT © Viper-Network