Metadata-Version: 2.4
Name: easy-mc-launcher
Version: 0.2.1
Summary: A simple package to make creating Minecraft launchers easier.
Author: Jamie
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: minecraft-launcher-lib
Requires-Dist: requests
Dynamic: license-file

# Easy MC Launcher 🚀

**Easy MC Launcher** ist ein extrem einsteigerfreundliches Python-Package, das dir die komplizierteste Arbeit beim Erstellen eines eigenen Minecraft Launchers abnimmt. 
Egal ob Vanilla, Fabric, Forge oder das Managen von Mods – mit diesem Package brauchst du nur extrem wenig Code, um einen professionellen Launcher zu bauen.

Es fungiert als intelligenter Wrapper um `minecraft-launcher-lib`, macht aber alles viel leichter und fängt typische Abstürze (wie defekte Versionen im `.minecraft`-Ordner) durch kluge Fallbacks automatisch ab.

---

## 🛠 Features

* **✅ Automatischer Download:** Startet das Spiel sofort. Wenn die gewählte Version (oder Java, Assets, Libraries) fehlt, wird sie im Hintergrund automatisch heruntergeladen.
* **✅ Fabric & Forge Support:** Installiere Fabric oder Forge mit nur einer einzigen Zeile Code!
* **✅ Integrierter Mod-Manager:** Lade Mods über eine direkte URL herunter, zeige sie an oder lösche sie mit einem Klick.
* **✅ Settings-Management:** Speichert Spielername, zugewiesenen RAM und Auflösung dauerhaft in einer `.json`-Datei ab.
* **✅ Crash-Schutz (Fallback):** Crasht nicht, wenn im `.minecraft`-Ordner eine kaputte Installation oder Datei eines anderen Launchers liegt.

---

## 📦 Installation

Du kannst das Package (wenn es auf PyPI hochgeladen ist) ganz einfach über `pip` installieren:

```bash
pip install easy-mc-launcher
```

---

## 💻 Hilfe beim Coden: Wie benutze ich es?

Hier sind die wichtigsten Funktionen erklärt, damit du sofort loscoden kannst.

### 1. Normales Minecraft starten (Vanilla)
So startest du eine normale Minecraft-Version. Wenn die Version noch nicht existiert, lädt das Script sie automatisch von den Mojang-Servern herunter!

```python
from easy_mc_launcher import EasyLauncher, SettingsManager

# 1. Klassen aufrufen
launcher = EasyLauncher()
settings = SettingsManager()

# 2. Einstellungen konfigurieren
settings.set("username", "DeinSpielername")
settings.set("ram_max", "4G") # Empfohlen: 4 Gigabyte RAM

# 3. Spiel starten
launcher.launch("1.20.1", settings)
```

### 2. Fabric oder Forge spielen
Normalerweise ist es schwer, Modloader per Code zu installieren. Hier geht es in einem Befehl:

```python
from easy_mc_launcher import EasyLauncher, SettingsManager

launcher = EasyLauncher()
settings = SettingsManager()

# 1. Fabric vollautomatisch installieren (gibt den neuen Namen der Version zurück)
fabric_version = launcher.install_fabric("1.20.1")

# Für Forge benutzt du diesen Befehl (Format: MC-Version - Forge-Version):
# forge_version = launcher.install_forge("1.20.1-47.1.0")

# 2. Die neu installierte Mod-Version starten
launcher.launch(fabric_version, settings)
```

### 3. Mods managen (Der ModManager)
Du willst, dass dein Launcher bestimmte Mods automatisch in den `.minecraft/mods` Ordner lädt? 

```python
from easy_mc_launcher import EasyLauncher, ModManager

launcher = EasyLauncher()
mods = ModManager(launcher.minecraft_directory)

# Eine Mod aus dem Internet direkt in den Ordner herunterladen
url = "https://link-zur-mod.jar"
mods.download_mod(url, "coole-mod.jar")

# Dir eine Liste aller momentan installierten Mods ausgeben
print(mods.get_installed_mods())

# Eine Mod wieder löschen
mods.delete_mod("coole-mod.jar")

# Den gesamten Mods-Ordner leeren (Gut für Clean-Installs)
mods.clear_all_mods()
```

---

## ⚙️ Verfügbare Einstellungen (`SettingsManager`)
Folgende Keys kannst du im `SettingsManager` benutzen. Sie werden alle automatisch gespeichert, du musst dich nicht um das Speichern der Dateien kümmern:

- `"username"`: Der Spielername (Standard: "Player")
- `"ram_min"`: Minimaler Arbeitsspeicher (z.B. "1G")
- `"ram_max"`: Maximaler Arbeitsspeicher (z.B. "4G")
- `"resolution"`: Auflösung des Fensters (Standard: `{"width": 854, "height": 480}`)
- `"java_path"`: Manueller Pfad zur Java `.exe` (Wenn nichts gesetzt ist, sucht er selbst!)
- `"uuid"`: Die Spieler-UUID für Offline-Login (Optional)
