# 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! 🎁


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.dyroxplays.de/caseopening/setup-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
