# Setup Guide

Eine Schritt-für-Schritt-Anleitung zur Einrichtung des CaseOpening-Plugins.

***

## Voraussetzungen

Bevor du startest, stelle sicher, dass folgendes vorhanden ist:

### ✅ Erforderlich

* **Minecraft Server** (Spigot, Paper, oder kompatibel)
  * Version: 1.8.8 bis neueste Version
  * Dyroxplays Updategarantie
* **Vault Plugin**
  * Download: <https://www.spigotmc.org/resources/vault.34315/>
* **Economy Plugin** (z.B. EssentialsX)
  * Für Kristall-Shop und Belohnungen
* **MySQL Datenbank**
  * Für große Server empfohlen

### 📦 Optional

* **PlaceholderAPI**
  * Download: <https://www.spigotmc.org/resources/placeholderapi.6245/>
  * Für erweiterte Platzhalter
* **PlotSquared**
  * Für Plot-Integration
  * Download: <https://www.spigotmc.org/resources/plotsquared-v7.77506/>
* **ItemEdit**
  * Für bessere Items bearbeiten (Name etc.)
  * Download: <https://www.spigotmc.org/resources/itemedit-1-8-x-1-21-x.40993/>

***

{% stepper %}
{% step %}

### Installation — Schritt-für-Schritt

#### Plugin herunterladen

1. Lade die neueste Version der `CaseOpening`herunter \[<https://panel.dyroxplays.de/downloads>]
2. In der Zip findest du 2 jars:
   1. Eine mit "1.13+" im Namen, diese Version nutzt du für alle Serverversionen, AB der 1.13 (und auch NUR diese jar nutzen, nicht beide!). D.h. auch für zB 1.21.10 nutzt du die "1.13+" jar.
   2. Für Server, die älter als 1.13 sind, also 1.8.8 - 1.12.2, nutzt du die Jar OHNE "1.13+" im Namen (und auch NUR diese jar nutzen, nicht beide!).
      {% endstep %}

{% step %}

#### Plugin installieren

1. Stoppe deinen Server
2. Platziere die richtige Jar im `plugins/` Ordner
3. Stelle sicher, dass **Vault** installiert ist (+ vaultfähiges Economy System)
4. Starte den Server
   {% endstep %}

{% step %}

#### Erste Überprüfung

1. Prüfe die Console auf Fehler
2. Gib `/plugins` ein - CaseOpening sollte grün sein
3. Im `plugins/CaseOpening/` Ordner wurden Config-Dateien erstellt

Beispiel-Meldungen in der Console:

```
[✓] CaseOpening v1.0 has been enabled!
[✓] Vault found and hooked!
[✓] PlaceholderAPI found and hooked!
```

{% endstep %}

{% step %}

#### Premade-Konfigurationen (Optional)

**💡 Schnellstart mit fertigen Konfigurationen**

Anstatt alles manuell zu konfigurieren, kannst du fertige Premade-Konfigurationen verwenden:

1. **Download**: Lade die Premades für deine Server-Version herunter
2. **Installation**:
   * Stoppe den Server
   * Kopiere die heruntergeladenen Dateien in `plugins/CaseOpening/`
   * Überschreibe die vorhandenen Config-Dateien
   * Starte den Server neu
3. **Fertig!** Alle Cases, Items und der Shop sind bereits konfiguriert

Hinweis: Die Premades enthalten 6 verschiedene Cases (Starter, Bronze, Silber, Gold, Diamant, Smaragd) mit vollständig konfigurierten Belohnungen und einem funktionierenden Shop-System.
{% endstep %}
{% endstepper %}

***

{% stepper %}
{% step %}

### Grundkonfiguration — Basis-Einstellungen anpassen

Öffne `plugins/CaseOpening/config.yml` und passe an:

```yaml
# Passe das Präfix an
prefix: "§8[§6CaseOpening§8] §7"
# Hex-Farben (1.16+)
```

{% endstep %}

{% step %}

### Grundkonfiguration — Nachrichten anpassen (Optional)

Öffne `plugins/CaseOpening/messages.yml` und passe Nachrichten an:

```yaml
prefix: "§8[§6§lCASE§8] §7"
case:
  opened: "%prefix%§aDu hast ein §e%case% §ageöffnet!"
  won: "%prefix%§aGlückwunsch! Du hast §e%item% §agewonnen!"
```

{% endstep %}

{% step %}

### Grundkonfiguration — Reload ausführen

Führe folgenden Befehl aus:

```
/case reload
```

{% endstep %}
{% endstepper %}

***

{% stepper %}
{% step %}

### Erstes Case erstellen — Case anlegen

Erstelle ein "Starter Case":

```
/case create starter 13 §6§lStarter Case
```

* `starter` = interner Name (keine Leerzeichen)
* `13` = Slot im GUI (Mitte)
* `§6§lStarter Case` = Anzeigename
  {% endstep %}

{% step %}

### Erstes Case erstellen — Case konfigurieren

```
/case edit starter price 50
/case edit starter maxAmount 100
/case edit starter material CHEST
/case edit starter addLore §7Ein einfaches Starter-Case
/case edit starter addLore §7mit grundlegenden Belohnungen
/case edit starter lootviewable true
```

{% endstep %}

{% step %}

### Erstes Case erstellen — Belohnungen hinzufügen

#### Item 1: Diamant (selten)

```
/caseitem create starter diamond 10 §bDiamanten
/caseitem edit starter diamond amount 5
/caseitem edit starter diamond material DIAMOND
/caseitem edit starter diamond addLore §75x Diamanten
/caseitem edit starter diamond firework true
```

#### Item 2: Gold (mittel)

```
/caseitem create starter gold 25 §6Goldbarren
/caseitem edit starter gold amount 16
/caseitem edit starter gold material GOLD_INGOT
/caseitem edit starter gold addLore §716x Goldbarren
```

#### Item 3: Eisen (häufig)

```
/caseitem create starter iron 65 §7Eisenbarren
/caseitem edit starter iron amount 32
/caseitem edit starter iron material IRON_INGOT
/caseitem edit starter iron addLore §732x Eisenbarren
```

{% endstep %}

{% step %}

### Erstes Case erstellen — Case testen

Gib dir Cases zum Testen:

```
/case add starter <DeinName> 10
```

Öffne das GUI:

```
/givemobilecaseopening
```

Rechtsklick mit dem Item → Öffne das Case!
{% endstep %}
{% endstepper %}

***

{% stepper %}
{% step %}

### Case-Blöcke einrichten — Block platzieren

Baue einen schönen Bereich für deine Cases:

```
□ □ □
□ ■ □  ← Platziere hier einen besonderen Block
□ □ □
```

Tipp: Nutze dekorative Blöcke wie:

* Ender Chest
* Chest
* Beacon
* Glowstone
  {% endstep %}

{% step %}

### Case-Blöcke einrichten — Block registrieren

Führe aus:

```
/registercaseblock
```

Klicke auf den Block → Wähle "starter" Case aus dem GUI

Erfolgsmeldung:

```
§aCase-Block wurde erfolgreich registriert!
```

{% endstep %}

{% step %}

### Case-Blöcke einrichten — Testen

Klicke auf den Block → Main-GUI öffnet sich!
{% endstep %}

{% step %}

### Case-Blöcke einrichten — Weitere Blöcke hinzufügen

Wiederhole die Schritte für weitere Cases:

```
/registercaseblock
→ Klicke auf Block A → Wähle "starter"
 /registercaseblock
→ Klicke auf Block B → Wähle "legendary"
```

#### Block entfernen

Falls du einen Fehler gemacht hast:

```
/unregistercaseblock
→ Klicke auf den Block
```

{% endstep %}
{% endstepper %}

***

## GUI anpassen

### Main-GUI personalisieren

Öffne `plugins/CaseOpening/mainGUI.yml`:

```yaml
# GUI-Größe ändern
size: 54

# Titel anpassen
title: "§6§l▶ §e§lCase Opening §6§l◀"

# Kristall-Anzeige Position
items:
  crystals:
    slot: 49
    item:
      displayname: "§b§l⬥ Deine Kristalle ⬥"
      lore:
        - "§7Du besitzt §b%crystals% §7Kristalle"
        - ""
        - "§eLinksklick §8» §7Kristall-Shop öffnen"

# Füllitems für besseres Design
fillitems:
  enabled: true
  item:
    material: GRAY_STAINED_GLASS_PANE
    displayname: " "
```

### Preview-GUI anpassen

Öffne `plugins/CaseOpening/previewGUI.yml`:

```yaml
title: "§e§l⚡ Vorschau: %case% ⚡"

# Öffnen-Button
open:
  slot: 53
  item:
    material: LIME_CONCRETE
    displayname: "§a§l✓ Case öffnen"
    lore:
      - "§7Klicke um das Case zu öffnen"
      - ""
      - "§eKosten: §6%price% §eKristalle"
      - "§7Dein Kontostand: §b%crystals% §7Kristalle"
```

Nach Änderungen:

```
/case reload
```

***

## Erweiterte Features

### Belohnungen mit Commands

Du kannst Items mit zusätzlichen Commands versehen:

```
/caseitem edit starter <ItemID> givecommands add lp user %player% parent add vip
/caseitem edit starter <ItemID> givecommands add eco give %player% 1000
/caseitem edit starter <ItemID> givecommands add tp %player% spawn
```

**Hinweis:** `<ItemID>` ist die Zahl des Items (1, 2, 3, ...)

### Broadcast für seltene Items

```
/caseitem edit starter <ItemID> broadcast §6§l★ §e%player% §7hat §c§l%item% §7gewonnen! §6§l★
```

Alle Spieler sehen diese Nachricht beim Gewinnen!

### Gruppen-Belohnungen

Öffne `plugins/CaseOpening/caseGroupRewards.yml`:

```yaml
groups:
  vip:
    commands:
      give:
        - "case add starter %player% 5"
        - "crystals add %player% 100"
      already-have:
        - "tell %player% §cDu bist bereits VIP!"
```

Verwendung:

```
/casegroupadd <Spieler> vip
```

### Permission-Belohnungen

Ähnlich wie Gruppen-Belohnungen in `casePermRewards.yml`.

***

{% stepper %}
{% step %}

### MySQL einrichten (Optional) — Datenbank erstellen

Verbinde dich mit deinem MySQL-Server:

```sql
CREATE DATABASE caseopening;
CREATE USER 'caseopening'@'localhost' IDENTIFIED BY 'sicheres_passwort';
GRANT ALL PRIVILEGES ON caseopening.* TO 'caseopening'@'localhost';
FLUSH PRIVILEGES;
```

{% endstep %}

{% step %}

### MySQL einrichten (Optional) — Config anpassen

Öffne `config.yml` und passe an:

```yaml
storage:
  type: mysql
  
  mysql:
    host: localhost
    port: 3306
    database: caseopening
    username: caseopening
    password: sicheres_passwort
    useSSL: false
```

{% endstep %}

{% step %}

### MySQL einrichten (Optional) — Server neu starten

```
/stop
```

Starte den Server → Tabellen werden automatisch erstellt!
{% endstep %}

{% step %}

### MySQL einrichten (Optional) — Überprüfung

Prüfe in deiner MySQL-Datenbank:

```sql
USE caseopening;
SHOW TABLES;
```

Sollte zeigen:

```
+------------------------+
| Tables_in_caseopening  |
+------------------------+
| caseopening_players    |
| caseopening_cases      |
| caseopening_crystals   |
+------------------------+
```

{% endstep %}
{% endstepper %}

***

## Permissions einrichten

### Spieler-Gruppe

Gib allen Spielern Zugriff auf das Case-System:

**Mit LuckPerms:**

```
/lp group default permission set caseopening.gui.main true
/lp group default permission set caseopening.gui.preview true
/lp group default permission set caseopening.shop.use true
```

### Admin-Gruppe

Gib Admins volle Rechte:

```
/lp group admin permission set caseopening.* true
```

### VIP-Cases

Erstelle exklusive Cases für VIPs:

```
/case create vipcase 14 §d§lVIP Case
/case edit vipcase permission caseopening.case.vipcase
/lp group vip permission set caseopening.case.vipcase true
```

***

## Troubleshooting

<details>

<summary>Problem: Plugin lädt nicht</summary>

Lösungen:

1. Prüfe ob Vault installiert ist: `/plugins`
2. Schaue in die Console nach Fehlern
3. Prüfe Server-Version (1.8.8 bis neueste)

</details>

<details>

<summary>Problem: Cases öffnen sich nicht</summary>

Lösungen:

1. Prüfe Permission: `caseopening.gui.main`
2. Prüfe Console-Logs auf Fehlermeldungen
3. Prüfe ob Case aktiviert ist: `/case edit <name> enable true`

</details>

<details>

<summary>Problem: Keine Belohnungen</summary>

Lösungen:

1. Prüfe ob Items definiert sind: Öffne `casesItem.yml`
2. Prüfe Chancen: Summe sollte > 0 sein
3. Teste mit `/caseitem getitem <case> <item>`

</details>

<details>

<summary>Problem: MySQL-Verbindung fehlgeschlagen</summary>

Lösungen:

1. Prüfe MySQL-Server Status
2. Teste Verbindungsdaten
3. Prüfe Firewall-Einstellungen

</details>

***

## Nächste Schritte

✅ **Setup abgeschlossen!** Hier sind weitere Ideen:

1. **Mehr Cases erstellen**
   * Daily Case (täglich 1 gratis)
   * Event Cases (zeitlich begrenzt)
   * Legendary Cases (sehr selten)
2. **Shop einrichten**
   * Kristalle gegen Geld verkaufen
   * Cases direkt kaufen
3. **Belohnungen erweitern**
   * Ränge als Belohnung
   * Teleports zu speziellen Orten
   * Custom Items mit Commands
4. **Community einbinden**
   * Events mit speziellen Cases
   * Wettbewerbe (wer öffnet die meisten?)
   * Vote-Belohnungen mit Kristallen

***

## Schnell-Referenz

### Wichtigste Befehle

```bash
# Case erstellen
/case create <name> <slot> <displayname>

# Item hinzufügen
/caseitem create <case> <itemid> <chance> <name>

# Cases vergeben
/case add <case> <spieler> <anzahl>

# Kristalle vergeben
/crystals add <spieler> <anzahl>

# Block registrieren
/registercaseblock

# Reload
/case reload
```

### Wichtigste Dateien

```
config.yml        → Haupteinstellungen & Nachrichten
caseshop.yml      → CaseShop-GUI
items.yml         → Allgemeine Items
previewgui.yml    → Preview-GUI-Layout
maingui.yml       → Main-GUI-Layout

casegroupadd.yml  → Alternative Commands für vorhandenem Rang-Vergabe
casepermadd.yml   → Alternative Coomands für vorhandenem Permission-Vergabe
```

### Support

Bei Fragen:

1. Prüfe diese Dokumentation
2. Aktiviere Debug-Modus
3. Prüfe Console-Logs
4. Kontaktiere den Support mit Logs

***

Viel Erfolg mit deinem Case-Opening-System! 🎁
