> For the complete documentation index, see [llms.txt](https://wiki.dyroxplays.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.dyroxplays.de/caseopening/konfiguration.md).

# Konfiguration

Dieser Abschnitt erklärt alle Konfigurationsdateien und deren Optionen.

***

## Dateiübersicht

Das Plugin erstellt folgende Konfigurationsdateien im `plugins/CaseOpening/` Ordner:

```
plugins/CaseOpening/
├── config.yml              # Hauptkonfiguration & Nachrichten & Sprache
├── casesItem.yml          # Case-Items (Belohnungen)
├── mainGUI.yml            # Main-GUI Layout
├── previewGUI.yml         # Preview-GUI Layout
├── items.yml              # Wiederverwendbare Items
├── caseShop.yml           # Shop-Konfiguration
├── caseGroupRewards.yml   # Gruppen-Belohnungen
└── casePermRewards.yml    # Permission-Belohnungen
```

### 📥 Premade-Konfigurationen verwenden

Schnellstart ohne manuelle Konfiguration:

* **Download**: *\[Link wird bereitgestellt]*

Die folgenden Abschnitte beschreiben die manuelle Konfiguration der einzelnen Dateien.

***

## config.yml

Die Hauptkonfigurationsdatei des Plugins.

### Basis-Einstellungen

```yaml
# Plugin-Präfix für Nachrichten
prefix: '&7[&eCaseOpening&7]'

# Limit für Case-Animation
limit: 15

# Main-GUI Länge (Reihen: 1-6)
mainguilenght: 3

# Standard-Kristalle für neue Spieler
defaultcrystals: 0

# Broadcast bei 10% oder weniger Chance
won10percent: '&6%player% hat %name% gewonnen!'
```

### Sound-Einstellungen

```yaml
sound:
  # Sound beim Gewinnen
  win: ENTITY_PLAYER_LEVELUP;0.2;0.2
  
  # Sounds während Animation
  run1: BLOCK_COMPARATOR_CLICK;0.2;0.2
  run2: ENTITY_BAT_TAKEOFF;0.2;0.2
```

Format: `SOUND_NAME;Volume;Pitch`

### MySQL-Konfiguration

```yaml
MySQL:
  host: localhost
  port: '3306'
  username: xxusernamexx
  datebase: xxdatabasexx
  password: xxx
  tablename: caseopening_players
```

Hinweis: Um MySQL zu aktivieren, musst du diese Werte ausfüllen. Das Plugin erkennt automatisch ob MySQL konfiguriert ist.

### GUI-Namen

```yaml
guiname:
  main:
    name: '&eCaseOpening'
    size: 3  # Anzahl der Reihen (1-6)
  preview: '&6Mögliche Gewinne'
```

### Seltenheitsgrade

```yaml
seltenheitsgrad:
  '1': '&7Seltenheit: &4&l&kX&r &4&lGöttlich &k&lX'
  '5': '&7Seltenheit: &c&lMythisch'
  '10': '&7Seltenheit: &6Legendär'
  '25': '&7Seltenheit: &5Episch'
  '50': '&7Seltenheit: &9Selten'
  '75': '&7Seltenheit: &aNormal'
  '100': '&7Seltenheit: &7Häufig'
```

Diese werden automatisch basierend auf der Item-Chance angezeigt.

***

### ´Nachrichten

{% code expandable="true" %}

```yaml
messages:
  noperm: '&cDazu hast keine Rechte.'
  playernotonline: '&cDer Spieler &e%player% &cist nicht online!'
  error:
    keinitem: '&cDu hast kein Item in der Hand!'
    invfull: '&cDein Inventar ist voll!'
    offhand: '&cDu darfst in deiner linken Hand kein Item haben!'
    limit: '&cDu hast dein Limit erreicht, versuche es morgen nochmal!'
    wrongnumber: '&cDu musst eine Zahl zwischen %from% bis %to% eingeben!'
    casename: '&cCasename darf nur aus Buchstaben und Zahlen bestehen!'
    playercouldnotfound: '&cSpieler konnte in der Datenbank nicht gefunden werden!'
    onlyplayer: '&cNur Spieler können diesen Befehl nutzen.'
    case:
      notfound: '&cCase &e''%name%'' &cwurde nicht gefunden!'
    invalid_number: '&cUngültige Zahl angegeben.'
    caseitem:
      notfound: '&cCase-Item mit ID %id% nicht gefunden!'
      chance:
        invalid: '&cChance muss zwischen 0 und 100 liegen.'
      limit:
        invalid: '&cLimit muss eine gültige Zahl sein.'
      settype:
        usage: '&cNutze: /caseitem edit <CaseName> <ItemID> setType <item/cmd>'
        cmd:
          usage: '&cNutze: /caseitem edit <CaseName> <ItemID> setType cmd ...'
      edit:
        unknown: '&cUnbekannter Bearbeitungstyp.'
      get:
        usage: '&cNutze: /caseitem getitem <CaseName> <ItemID>'
  registercaseblock:
    success: '&aBlock erfolgreich als Case-Block registriert!'
    error:
      alreadyregistered: '&cDieser Block ist bereits als Case-Block registriert!'
    cancel: '&cRegistrierung wurde abgebrochen.'
    start: '&aKlicke auf einen Block, um ihn als Case-Block zu registrieren. &7(Rechtsklick
      zum Abbrechen)'
  unregistercaseblock:
    success: '&aBlock erfolgreich als Case-Block entfernt!'
    error:
      notregistered: '&cDieser Block ist nicht als Case-Block registriert!'
    cancel: '&cEntfernung wurde abgebrochen.'
    start: '&aKlicke auf einen Case-Block, um ihn zu entfernen. &7(Rechtsklick zum
      Abbrechen)'
  bought: '&aDu hast &e%amount% Cases &afür &e%name% &agekauft!'
  nothereplaceable: '&cEs gibt nichts zu ersetzen!'
  usage:
    case:
      help: |-
        &7================== &eCase Befehle &7==================
        &e/case add <Case> <Spieler/*/**> <Anzahl> &7- &fFügt Cases hinzu
        &e/case remove <Case> <Spieler/*/**> <Anzahl> &7- &fEntfernt Cases
        &e/case take <Case> <Spieler/*/**> <Anzahl> &7- &fAlias für remove
        &e/case set <Case> <Spieler/*/**> <Anzahl> &7- &fSetzt die Anzahl
        &7-----------------------------------------------------
        &e/case create <Name> <Slot> <DisplayName..> &7- &fNeue Case erstellen
        &e/case delete <Name> confirm &7- &fCase löschen
        &e/case edit <Name> <Aktion> ... &7- &fCase bearbeiten
        &7-----------------------------------------------------
        &e/case info <Spieler> &7- &fInfos über Cases eines Spielers
        &e/case reload &7- &fConfig neu laden
        &7=====================================================
      add: '&cNutze: /case add <Case> <Spieler/*/**> <Anzahl> ...'
      remove: '&cNutze: /case remove <Case> <Spieler/*/**> <Anzahl> ...'
      take: '&cNutze: /case take <Case> <Spieler/*/**> <Anzahl> ...'
      set: '&cNutze: /case set <Case> <Spieler/*/**> <Anzahl> ...'
      create: '&cNutze: /case create <Name> <Slot> <DisplayName..> ...'
      delete: '&cNutze: /case delete <Name> confirm ...'
      edit: '&cNutze: /case edit <Name> <Aktion> ...'
      info: '&cNutze: /case info <Spieler> ...'
      reload: '&cNutze: /case reload ...'
    casemsg: '&cNutze: /casemsg <Spieler> <Nachricht>'
    caseitem:
      help: |-
        &7================ &eCaseItem Befehle &7================
        &e/caseitem create <CaseName> <Chance%> <item/cmd> (<maxAmount>) &7- &fItem hinzufügen
        &e/caseitem edit <CaseName> <ItemID> <Aktion> ... &7- &fItem bearbeiten
        &e/caseitem getitem <CaseName> <ItemID> &7- &fItem ausgeben
        &e/caseitem clone <FromCase> <ItemID> <ToCase> &7- &fItem klonen
        &7======================================================
      create: '&cNutze: /caseitem create <CaseName> <Chance in %> <item/cmd> ...'
      edit: '&cNutze: /caseitem edit <CaseName> <ItemID> <Aktion> ...'
      getitem: '&cNutze: /caseitem getitem <CaseName> <ItemID> ...'
      clone: '&cNutze: /caseitem clone <FromCase> <ItemID> <ToCase> ...'
      delete: '&cNutze: /caseitem delete <CaseName> <ItemID> confirm'
    casebc: '&cNutze: /casebc <Nachricht> ...'
    createcmditem: '&cNutze: /createcmditem <Command ohne /> ...'
    registercaseblock: '&cNutze: /registercaseblock ...'
    unregistercaseblock: '&cNutze: /unregistercaseblock ...'
    givemobilecaseopening: '&cNutze: /givemobilecaseopening ...'
    casegroupadd: '&cNutze: /casegroupadd <Spieler> <Gruppe> ...'
    casepermadd: '&cNutze: /casepermadd <Spieler> <Permission> ...'
    crystals:
      help: |-
        &7================ &eCrystals Befehle &7================
        &e/crystals add <Spieler/*/**> <Anzahl> &7- &fFügt Crystals hinzu
        &e/crystals remove <Spieler/*/**> <Anzahl> &7- &fEntfernt Crystals
        &e/crystals take <Spieler/*/**> <Anzahl> &7- &fAlias für remove
        &e/crystals set <Spieler/*/**> <Anzahl> &7- &fSetzt die Anzahl
        &e/crystals info <Spieler> &7- &fZeigt Kristall-Info eines Spielers
        &7=====================================================
      add: '&cNutze: /crystals add <Spieler/*/**> <Anzahl>'
      remove: '&cNutze: /crystals remove <Spieler/*/**> <Anzahl>'
      take: '&cNutze: /crystals take <Spieler/*/**> <Anzahl>'
      set: '&cNutze: /crystals set <Spieler/*/**> <Anzahl>'
      info: '&cNutze: /crystals info <Spieler>'
  caseitem:
    usage: '&cNutze: /caseitem <SubCommand> ...'
    create:
      usage: '&cNutze: /caseitem create <CaseName> <Chance in %> <item/cmd> (<maxAmount>)'
      success:
        cmd: '&aCMD-Item erfolgreich erstellt &7(&aCase &e%name% &7(&aID: &e%id%&7))&a!
          &7[&6Klicke hier um Befehle hinzuzufügen&7]'
        item: '&aItem aus deiner Hand wurde zur Case &e%name% &7(&aID: &e%id%&7) &ahinzugefügt.'
      invalid-chance: '&cChance muss eine Zahl ...'
      invalid-type: '&cUngültiger Typ ...'
      invalid-amount: '&cMaxAmount muss eine gültige Zahl sein.'
      no-item: '&cDu hast kein Item in der Hand.'
      onlyplayer: '&cNur Spieler können diesen Befehl nutzen.'
    clone:
      success: '&aItem &e#%fromitemid% &avon Case &e%fromcase% &awurde erfolgreich
        zu Case &e%tocase% &ageklont! &7(Neue ID: &e%newitemid%&7)'
    delete:
      confirm: '&cBitte bestätige das Löschen von Item &e#%id% &caus Case &e%case%&c.'
    edit:
      chance:
        current: '&aAktuelle Chance für Item &e%itemid% &ain Case &e%casename%&a:
          &e%value%%'
        success: '&aChance für Item &e%itemid% &ain Case &e%casename% &aauf &e%value%%
          &agesetzt.'
        invalid: '&cChance muss eine Zahl zwischen 0 und 100 sein.'
      limit:
        current: '&aAktuelles Limit für Item &e%itemid% &ain Case &e%casename%&a:
          &e%value%'
        success: '&aLimit für Item &e%itemid% &ain Case &e%casename% &aauf &e%value%
          &agesetzt.'
        invalid: '&cLimit muss eine gültige Zahl sein.'
      setitemofhand:
        no-item: '&cDu hast kein Item in der Hand!'
        success: '&aItem &e%item% &awurde als Display-Item für &e%itemid% &ain Case
          &e%casename% &aübernommen.'
      settype:
        current: '&aAktueller Typ für Item &e%itemid% &ain Case &e%casename%&a: &e%value%'
        success: '&aTyp für Item &e%itemid% &ain Case &e%casename% &aauf &e%type%
          &agesetzt.'
        invalid: '&cUngültiger Typ! Nutze: item oder cmd'
      addcmd:
        notcmd: '&cDieser CaseItem-Typ ist kein CMD-Item!'
        usage: '&cNutze: /caseitem edit <Case> <ItemID> addcmd <Befehl>'
        success: '&aBefehl &e%command% &awurde zu Item &e%itemid% &ain Case &e%casename%
          &ahinzugefügt.'
      listcmd:
        notcmd: '&cDieser CaseItem-Typ ist kein CMD-Item!'
        empty: '&cKeine Befehle für Item &e%itemid% &cin Case &e%casename% &cvorhanden.'
        header: '&7--- &eBefehle für Item &e%itemid% &7in Case &e%casename% &7---'
        line: '&7[%index%] &f%command%'
        editbutton: '&e[✎]'
        removebutton: '&c[X]'
      removecmd:
        notcmd: '&cDieser CaseItem-Typ ist kein CMD-Item!'
        usage: '&cNutze: /caseitem edit <Case> <ItemID> removecmd <Index> confirm'
        confirm: '&cBitte bestätige das Entfernen des Befehls &e%command% &c(Index:
          %index%)'
        confirmbutton: '&a&l[BESTÄTIGEN]'
        success: '&aBefehl &e%command% &awurde von Item &e%itemid% &ain Case &e%casename%
          &aentfernt.'
        invalid: '&cUngültiger Index angegeben.'
      editcmd:
        notcmd: '&cDieser CaseItem-Typ ist kein CMD-Item!'
        usage: '&cNutze: /caseitem edit <Case> <ItemID> editcmd <Index> <Neuer Befehl>'
        current: '&aAktueller Befehl [%index%] für Item &e%itemid% &ain Case &e%casename%&a:
          &e%command%'
        success: '&aBefehl [%index%] für Item &e%itemid% &ain Case &e%casename% &aauf
          &e%command% &ageändert.'
        invalid: '&cUngültiger Index angegeben.'
  casebc:
    usage: '&cNutze: /casebc <Nachricht>'
  case:
    info:
      usage: '&cNutze: /case info <Spieler>'
      header: §e==========================
      footer: §e==========================
      playerinfo: '§ePlayerInfo: %player%'
      caseentry: '%casename%: %amount%'
      emptyline: ''
    create:
      usage: '&cNutze: /case create <Name> <Slot> <DisplayName..>'
      success: '&aCase &e''%casename%'' &aerfolgreich erstellt ...'
      error: '&cCase &e''%casename%'' &cexistiert bereits!'
    delete:
      usage: '&cNutze: /case delete <Name> confirm'
      confirm: '&cBitte bestätige das Löschen ...'
      success: '&aCase &e''%casename%'' &awurde erfolgreich gelöscht.'
      error: '&cCase &e''%casename%'' &cwurde nicht gefunden!'
    edit:
      usage: '&cNutze: /case edit <Name> <Aktion> <Wert>'
      displayname:
        current: '&aAktueller DisplayName für Case &e%casename%&a: &e%value%'
        success: '&aDisplayName für Case &e%casename% &aauf &e%value% &agesetzt.'
      amount:
        current: '&aAktuelle Anzahl für Case &e%casename%&a: &e%value%'
        success: '&aAnzahl für Case &e%casename% &aauf &e%value% &agesetzt.'
        wrongnumber: '&cDie Anzahl muss zwischen %from% und %to% liegen.'
      limit:
        current: '&aAktuelles Limit für Case &e%casename%&a: &e%value%'
        success: '&aLimit für Case &e%casename% &aauf &e%value% &agesetzt.'
        wrongnumber: '&cDas Limit muss eine gültige Zahl sein.'
      price:
        current: '&aAktueller Preis für Case &e%casename%&a: &e%value%'
        success: '&aPreis für Case &e%casename% &aauf &e%value% &agesetzt.'
        wrongnumber: '&cDer Preis muss eine gültige Zahl sein.'
      crystals:
        current: '&aCrystals aktiviert für Case &e%casename%&a: &e%value%'
        success: '&aCrystals für Case &e%casename% &aauf &e%value% &agesetzt.'
      material:
        current: '&aAktuelles Material für Case &e%casename%&a: &e%value%'
        success: '&aMaterial für Case &e%casename% &aauf &e%value% &agesetzt.'
        invalid: '&cUngültiges Material angegeben.'
      setitemofhand:
        only-player: '&cNur Spieler können diese Aktion ausführen.'
        no-item: '&cDu hast kein Item in der Hand!'
        success: '&aItem aus der Hand wurde für Case &e%casename% &aübernommen.'
      addlore:
        usage: '&cNutze: /case edit <Name> addlore <Text>'
        success: '&aLore-Zeile &e''%value%'' &awurde zu Case &e%casename% &ahinzugefügt.'
      removeloreline:
        empty: '&cCase &e%casename% &chat keine Lore-Zeilen.'
        header: '&7--- &eLore-Zeilen für Case &e%casename% &7---'
        removebutton: '&c[X] '
        line: '&7[%index%] &f%text%'
        suggestcommand: /case edit %caseid% removeloreline %index%
        success: '&aLore-Zeile &e%value% &awurde aus Case &e%casename% &aentfernt.'
        error: '&cUngültiger Zeilen-Index angegeben.'
      editeloreline:
        empty: '&cCase &e%casename% &chat keine Lore-Zeilen zum Bearbeiten.'
        header: '&7--- &eLore-Zeilen bearbeiten für Case &e%casename% &7---'
        editbutton: '&e[✎] '
        line: '&7[%index%] &f%text%'
        suggestcommand: /case edit %caseid% editeloreline %index% %text%
        usage: '&cNutze: /case edit <Name> editeloreline <Index> <Neuer Text>'
        success: '&aLore-Zeile &e%line% &awurde auf &e''%value%'' &ain Case &e%casename%
          &ageändert.'
        error: '&cUngültiger Zeilen-Index angegeben.'
      lightninground:
        current: '&aBlitz-Effekt für Case &e%casename%&a: &e%value%'
        success: '&aBlitz-Effekt für Case &e%casename% &aauf &e%value% &agesetzt.'
      enable:
        current: '&aCase &e%casename% &aist aktiviert: &e%value%'
        success: '&aCase &e%casename% &awurde auf &e%value% &agesetzt.'
      permission:
        current: '&aAktuelle Permission für Case &e%casename%&a: &e%value%'
        success: '&aPermission für Case &e%casename% &aauf &e%value% &agesetzt.'
      lootviewable:
        current: '&aLoot-Ansicht für Case &e%casename%&a: &e%value%'
        success: '&aLoot-Ansicht für Case &e%casename% &aauf &e%value% &agesetzt.'
      slot:
        current: '&aAktueller Slot für Case &e%casename%&a: &e%value%'
        success: '&aSlot für Case &e%casename% &aauf &e%value% &agesetzt.'
        wrongnumber: '&cDer Slot muss eine gültige Zahl sein.'
  success:
    caseitem:
      delete: '&aItem &e#%id% &awurde erfolgreich aus Case &e%case% &agelöscht!'
      chance: '&aChance erfolgreich gesetzt: %value%.'
      limit: '&aLimit erfolgreich gesetzt: %value%.'
      setitem: '&aItem aus der Hand wurde übernommen.'
      settype: '&aTyp erfolgreich gesetzt: %type%.'
      settypecmd: '&aCMD-Typ: %type% gesetzt, Befehl: %command%.'
      permission: '&aBenötigte Permission gesetzt: %value%.'
      showrarity: '&aShowRarity auf %value% gesetzt.'
      lootviewable: '&aLoot-Ansicht gesetzt auf: %value%.'
      broadcast: '&aBroadcast-Message gesetzt: %value%.'
      get: '&aDu hast das Item mit ID %id% erhalten.'
    updateplayerscases: '&a%player% hat nun &e%amount% &aCases von &e%name%&a.'
    updateplayerscasestarget: '&aDu hast nun &e%amount% &aCases von &e%name%&a.'
    allplayersupdated: '&aAlle Spieler wurden aktualisiert.'
    updateplayerscrystals: '&a%player% hat nun &e%amount% &aCrystals.'
    updateplayerscrystalstarget: '&aDu hast nun &e%amount% &aCrystals von &e%player%
      &aerhalten.'
  notenoughmoney: '&cDu hast nicht genügend Geld!'
  createcmditem:
    noitem: '&cDu hast kein Item in der Hand.'
    add: '&aBeim Rechtsklicken auf das Item wird nun der Befehl %cmd% ausgeführt.'
    usage: '&cNutze: /createcmditem <SubCommand> ...'
    help: |-
      &7================ &eCreateCMDItem Befehle &7================
      &e/createcmditem addcmd <Befehl> &7- &fBefehl zum Item hinzufügen
      &e/createcmditem listcmd &7- &fAlle Befehle des Items anzeigen
      &e/createcmditem removecmd <Index> confirm &7- &fBefehl entfernen
      &e/createcmditem editcmd <Index> <Neuer Befehl> &7- &fBefehl bearbeiten
      &7==========================================================
    addcmd:
      usage: '&cNutze: /createcmditem addcmd <Befehl>'
      noitem: '&cDu hast kein Item in der Hand!'
      success: '&aBefehl hinzugefügt: &e%command%'
    listcmd:
      noitem: '&cDu hast kein Item in der Hand!'
      header: '&7--- &eBefehle für Item in Hand ---'
      empty: '&cKeine Befehle für dieses Item vorhanden.'
      line: '&7[%index%] &f%command%'
      editbutton: '&e[✎] '
      removebutton: '&c[X] '
    removecmd:
      noitem: '&cDu hast kein Item in der Hand!'
      usage: '&cNutze: /createcmditem removecmd <Index> confirm'
      confirm: '&cBitte bestätige das Entfernen des Befehls &e%command% &c(Index:
        %index%)'
      confirmbutton: '&a&l[BESTÄTIGEN]'
      success: '&aBefehl entfernt: &e%command%'
      invalid: '&cUngültiger Index angegeben.'
      nocmds: '&cKeine Befehle zum Entfernen vorhanden.'
    editcmd:
      noitem: '&cDu hast kein Item in der Hand!'
      usage: '&cNutze: /createcmditem editcmd <Index> <Neuer Befehl>'
      current: '&aAktueller Befehl [%index%]: &e%command%'
      success: '&aBefehl [%index%] geändert zu: &e%command%'
      invalid: '&cUngültiger Index angegeben.'
      nocmds: '&cKeine Befehle zum Bearbeiten vorhanden.'
  crystals:
    info:
      emptyline: ''
      header: '&6&m========================================'
      playerinfo: '&eKristall-Info für &6%player%'
      amount: '&7Crystals: &e%amount%'
      footer: '&6&m========================================'
```

{% endcode %}

### Verfügbare Platzhalter

* `%player%` - Spielername
* `%casename%` / `%name%` - Case-Name
* `%amount%` - Anzahl
* `%value%` - Wert bei Edit-Befehlen
* `%item%` / `%itemid%` - Item-Name/ID

Hinweis: Alle Nachrichten befinden sich in der `config.yml`, nicht in einer separaten Datei.

***

## cases.yml

Definiert alle Cases und ihre Eigenschaften.

### Struktur

{% code expandable="true" %}

```yaml
cases:
  starter:
    # Anzeige-Einstellungen
    display:
      slot: 10
      material: CHEST
      displayname: "§6§lStarter Case"
      lore:
        - "§7Ein einfaches Starter-Case"
        - "§7mit grundlegenden Items"
        - ""
        - "§eKosten: §650 Kristalle"
        - "§eChance: §aHoch"
    
    # Preis in Kristallen
    price: 50
    
    # Maximale Anzahl pro Spieler (0 = unbegrenzt)
    maxAmount: 100
    
    # Aktiviert/Deaktiviert das Case
    enabled: true
    
    # Vorschau aktiviert
    lootviewable: true
    
    # Erforderliche Permission (optional)
    permission: ""
    
    # Effekte
    effects:
      # Blitz-Effekt beim Öffnen
      lightninground: false
      
      # Partikel werden nicht unterstützt
      # particle: FLAME
    
  legendary:
    display:
      slot: 16
      material: ENDER_CHEST
      displayname: "§c§lLegendary Case"
      lore:
        - "§7Ein seltenes legendäres Case"
        - "§7mit den besten Items"
        - ""
        - "§eKosten: §6500 Kristalle"
        - "§eChance: §cSehr Niedrig"
    
    price: 500
    maxAmount: 10
    enabled: true
    lootviewable: true
    permission: "caseopening.case.legendary"
    
    effects:
      lightninground: true
      # Partikel werden nicht unterstützt
      # particle: DRAGON_BREATH
```

{% endcode %}

***

## /casesItem (Beispielhaft bronze.yml)

Definiert alle Items (Belohnungen) in den Cases.

### Struktur

{% code expandable="true" %}

```yaml
# ##// Plugin Coded by Dyroxplays. \##

Cases:
  bronze:
    name: '&6&lBronze Kiste'
    slot: 11
    limit: -1
    price: 500
    lightninground: false
    enabled: true
    lootviewable: true
    amount: 1
    lore:
    - '&7Solide Belohnungen!'
    - '&7'
    - '&eDu hast &6%amount% &eKisten'
    material: ENDER_CHEST
    crystals: false
    permission: none

items:
  '1':
    chance: 50
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND
      amount: 4
      name: '&b&l4x Diamanten'
  '2':
    chance: 45
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND
      amount: 8
      name: '&b&l8x Diamanten'
  '3':
    chance: 35
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND
      amount: 12
      name: '&b&l12x Diamanten'
  '4':
    chance: 25
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND
      amount: 16
      name: '&b&l16x Diamanten'
  '5':
    chance: 45
    limit: -1
    displayIsWin: true
    display:
      material: GOLDEN_APPLE
      amount: 1
      name: '&6&l1x Goldapfel'
  '6':
    chance: 40
    limit: -1
    displayIsWin: true
    display:
      material: GOLDEN_APPLE
      amount: 3
      name: '&6&l3x Goldäpfel'
  '7':
    chance: 30
    limit: -1
    displayIsWin: true
    display:
      material: GOLDEN_APPLE
      amount: 5
      name: '&6&l5x Goldäpfel'
  '8':
    chance: 45
    limit: -1
    displayIsWin: true
    display:
      material: ENDER_PEARL
      amount: 4
      name: '&5&l4x Enderperlen'
  '9':
    chance: 40
    limit: -1
    displayIsWin: true
    display:
      material: ENDER_PEARL
      amount: 8
      name: '&5&l8x Enderperlen'
  '10':
    chance: 30
    limit: -1
    displayIsWin: true
    display:
      material: ENDER_PEARL
      amount: 16
      name: '&5&l16x Enderperlen'
  '11':
    chance: 45
    limit: -1
    displayIsWin: true
    display:
      material: EXPERIENCE_BOTTLE
      amount: 8
      name: '&a&l8x EP-Flaschen'
  '12':
    chance: 40
    limit: -1
    displayIsWin: true
    display:
      material: EXPERIENCE_BOTTLE
      amount: 16
      name: '&a&l16x EP-Flaschen'
  '13':
    chance: 30
    limit: -1
    displayIsWin: true
    display:
      material: EXPERIENCE_BOTTLE
      amount: 32
      name: '&a&l32x EP-Flaschen'
  '14':
    chance: 38
    limit: -1
    displayIsWin: true
    display:
      material: EMERALD_BLOCK
      amount: 1
      name: '&a&l1x Smaragdblock'
  '15':
    chance: 28
    limit: -1
    displayIsWin: true
    display:
      material: EMERALD_BLOCK
      amount: 2
      name: '&a&l2x Smaragdblöcke'
  '16':
    chance: 18
    limit: -1
    displayIsWin: true
    display:
      material: EMERALD_BLOCK
      amount: 3
      name: '&a&l3x Smaragdblöcke'
  '17':
    chance: 40
    limit: -1
    displayIsWin: false
    display:
      material: GOLD_NUGGET
      amount: 5
    cmd:
      cmds:
      - eco give %player% 500
      displayname: '&6&l500$ Geld'
  '18':
    chance: 35
    limit: -1
    displayIsWin: false
    display:
      material: GOLD_NUGGET
      amount: 7
    cmd:
      cmds:
      - eco give %player% 750
      displayname: '&6&l750$ Geld'
  '19':
    chance: 30
    limit: -1
    displayIsWin: false
    display:
      material: GOLD_INGOT
      amount: 1
    cmd:
      cmds:
      - eco give %player% 1000
      displayname: '&6&l1.000$ Geld'
  '20':
    chance: 25
    limit: -1
    displayIsWin: false
    display:
      material: GOLD_INGOT
      amount: 2
    cmd:
      cmds:
      - eco give %player% 1500
      displayname: '&6&l1.500$ Geld'
  '21':
    chance: 20
    limit: -1
    displayIsWin: false
    display:
      material: GOLD_INGOT
      amount: 3
    cmd:
      cmds:
      - eco give %player% 2000
      displayname: '&6&l2.000$ Geld'
  '22':
    chance: 35
    limit: -1
    displayIsWin: false
    display:
      material: AMETHYST_SHARD
      amount: 3
    cmd:
      cmds:
      - crystals add %player% 15
      displayname: '&d&l15 Kristalle'
  '23':
    chance: 30
    limit: -1
    displayIsWin: false
    display:
      material: AMETHYST_SHARD
      amount: 5
    cmd:
      cmds:
      - crystals add %player% 25
      displayname: '&d&l25 Kristalle'
  '24':
    chance: 25
    limit: -1
    displayIsWin: false
    display:
      material: AMETHYST_SHARD
      amount: 7
    cmd:
      cmds:
      - crystals add %player% 35
      displayname: '&d&l35 Kristalle'
  '25':
    chance: 20
    limit: -1
    displayIsWin: false
    display:
      material: AMETHYST_SHARD
      amount: 10
    cmd:
      cmds:
      - crystals add %player% 50
      displayname: '&d&l50 Kristalle'
  '26':
    chance: 25
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND_SWORD
      amount: 1
      name: '&b&lDiamant Schwert'
      enchantments:
        DAMAGE_ALL: 3
  '27':
    chance: 20
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND_PICKAXE
      amount: 1
      name: '&b&lDiamant Spitzhacke'
      enchantments:
        DIG_SPEED: 3
        DURABILITY: 2
  '28':
    chance: 20
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND_AXE
      amount: 1
      name: '&b&lDiamant Axt'
      enchantments:
        DIG_SPEED: 3
        DURABILITY: 2
  '29':
    chance: 18
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND_CHESTPLATE
      amount: 1
      name: '&b&lDiamant Brustpanzer'
      enchantments:
        PROTECTION_ENVIRONMENTAL: 2
  '30':
    chance: 18
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND_LEGGINGS
      amount: 1
      name: '&b&lDiamant Hose'
      enchantments:
        PROTECTION_ENVIRONMENTAL: 2
  '31':
    chance: 15
    limit: -1
    displayIsWin: true
    display:
      material: DIAMOND_CHESTPLATE
      amount: 1
      name: '&b&lGuter Diamant Brustpanzer'
      enchantments:
        PROTECTION_ENVIRONMENTAL: 3
        DURABILITY: 2
  '32':
    chance: 12
    limit: -1
    displayIsWin: true
    display:
      material: ELYTRA
      amount: 1
      name: '&5&lElytren'
  '33':
    chance: 8
    limit: 100
    displayIsWin: true
    display:
      material: ELYTRA
      amount: 1
      name: '&5&lElytren mit Haltbarkeit'
      lore:
      - '&c&lGlobal Limit: 100x'
      enchantments:
        DURABILITY: 3
  '34':
    chance: 3
    limit: 25
    displayIsWin: false
    display:
      material: ENDER_CHEST
      amount: 1
    cmd:
      cmds:
      - case add silver %player% 1
      displayname: '&7&l1x Silber Kiste'
      lore:
      - '&7Upgrade!'
      - '&6&lJACKPOT!'
      - '&c&lGlobal Limit: 25x'

```

{% endcode %}

***

## maingui.yml

Konfiguration des Hauptmenüs.

### Struktur

```yaml
# ##// Plugin Coded by Dyroxplays. \##

gui:
  name: '&eCaseOpening'
  length: 3
placeholder:
  enable: true
  BLACK_STAINED_GLASS_PANE: 0-26
caseshop:
  name: '&5Case Shop'
  lore:
  - '&7Kaufe Cases'
  - '&7Du hast &e%crystals% &7Crystals'
  slot: 22
  material: NETHER_STAR

```

***

## previewgui.yml

Konfiguration der Vorschau-GUI.

### Struktur

```yaml
# ##// Plugin Coded by Dyroxplays. \##

gui:
  name: '&6Mögliche Gewinne'
  length: 6
placeholder:
  enable: true
  BLACK_STAINED_GLASS_PANE: 45-53
itemlimitlore:
- '&a'
- '&c&l§nStückzahl Begrenzt'
- '&aAktuell sind noch &e%limit% &aStück verfügbar!'
- '&b'
items:
  prevPage:
    material: PLAYER_HEAD
    skullowner: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjdhYWNhZDE5M2UyMjI2OTcxZWQ5NTMwMmRiYTQzMzQzOGJlNDY0NGZiYWI1ZWJmODE4MDU0MDYxNjY3ZmJlMiJ9fX0=
    name: '&7«'
    slot: 52
  nextPage:
    material: PLAYER_HEAD
    skullowner: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTliZjMyOTJlMTI2YTEwNWI1NGViYTcxM2FhMWIxNTJkNTQxYTFkODkzODgyOWM1NjM2NGQxNzhlZDIyYmYifX19
    name: '&7»'
    slot: 53
  backtomain:
    material: BARRIER
    name: '&cZum Hauptmenü'
    slot: 45

```

***

## items.yml

Wiederverwendbare Item-Templates.

### Struktur

```yaml
# ##// Plugin Coded by Dyroxplays. \##

mobilecaseoopening:
  name: '&6Mobiles CaseOpening'
  lore:
  - '&7Platziere diesen Block und spiele CaseOpening von überall'
  - '&4&lAchtung: &7Beim Abbauen wird der Block komplett zerstört'
  material: CHEST
  holo: '&6Mobiles CaseOpening'
caseopening:
  speedindicator:
    material: PLAYER_HEAD
    skullowner: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTliZjMyOTJlMTI2YTEwNWI1NGViYTcxM2FhMWIxNTJkNTQxYTFkODkzODgyOWM1NjM2NGQxNzhlZDIyYmYifX19
    name: '&7Speedmultiplikator: x%speed%'
    slot: 8
  placeholder:
    enable: true
    GRAY_STAINED_GLASS_PANE: 0-3,5-8,18-26
  winindicator:
    material: HOPPER
    name: '&eGewinn:'
    slot: 4

```

***

## caseshop.yml

Konfiguration des Kristall-Shops.

### Struktur

```yaml
# ##// Plugin Coded by Dyroxplays. \##

confirmgui: '&6CaseShop &7> Sicher?'
gui:
  name: '&6CaseShop'
  lenght: 5
maingui:
  name: '&5Case Shop'
  lore:
  - '&7Kaufe Cases'
  - '&7Du hast &e%crystals% &7Crystals'
  slot: 22
  material: NETHER_STAR
backitem:
  name: '&cZurück'
  slot: 36
  material: NETHER_STAR
items:
  '1':
    material: CHEST
    name: '&7&lStarter Kiste'
    amount: 1
    lore:
    - '&7Für Einsteiger'
    - '&7'
    - '&ePreis: &6100 Kristalle'
    - '&d&lKauf mit Kristallen'
    price: 100
    crystals: true
    cmds:
    - case add starter %player% 1
  '2':
    material: CHEST
    name: '&6&lBronze Kiste'
    amount: 1
    lore:
    - '&7Solide Belohnungen'
    - '&7'
    - '&ePreis: &6200 Kristalle'
    - '&d&lKauf mit Kristallen'
    price: 200
    crystals: true
    cmds:
    - case add bronze %player% 1
  '3':
    material: ENDER_CHEST
    name: '&7&lSilber Kiste'
    amount: 1
    lore:
    - '&7Hochwertige Belohnungen'
    - '&7'
    - '&ePreis: &6500 Kristalle'
    - '&d&lKauf mit Kristallen'
    price: 500
    crystals: true
    cmds:
    - case add silver %player% 1
  '5':
    material: CHEST
    name: '&6&lGold Kiste'
    amount: 1
    lore:
    - '&7Premium-Belohnungen'
    - '&7'
    - '&ePreis: &61.500 Kristalle'
    - '&d&lKauf mit Kristallen'
    price: 1500
    crystals: true
    cmds:
    - case add gold %player% 1
  '6':
    material: ENDER_CHEST
    name: '&b&lDiamond Kiste'
    amount: 1
    lore:
    - '&7Legendäre Belohnungen'
    - '&7'
    - '&ePreis: &64.000 Kristalle'
    - '&d&lKauf mit Kristallen'
    price: 4000
    crystals: true
    cmds:
    - case add diamond %player% 1
  '7':
    material: ENDER_CHEST
    name: '&a&lSmaragd Kiste'
    amount: 1
    lore:
    - '&a&lEXKLUSIV FÜR VIPs!'
    - '&7Die besten Belohnungen'
    - '&7'
    - '&ePreis: &610.000 Kristalle'
    - '&d&lKauf mit Kristallen'
    - '&c&lPermission erforderlich!'
    price: 10000
    crystals: true
    cmds:
    - case add emerald %player% 1
  '19':
    material: BARREL
    name: '&7&lStarter Kiste'
    amount: 1
    lore:
    - '&7Für Einsteiger'
    - '&7'
    - '&ePreis: &6250$'
    - '&6&lKauf mit Geld'
    price: 250
    crystals: false
    cmds:
    - case add starter %player% 1
  '20':
    material: BARREL
    name: '&6&lBronze Kiste'
    amount: 1
    lore:
    - '&7Solide Belohnungen'
    - '&7'
    - '&ePreis: &6500$'
    - '&6&lKauf mit Geld'
    price: 500
    crystals: false
    cmds:
    - case add bronze %player% 1
  '21':
    material: BARREL
    name: '&7&lSilber Kiste'
    amount: 1
    lore:
    - '&7Hochwertige Belohnungen'
    - '&7'
    - '&ePreis: &61.500$'
    - '&6&lKauf mit Geld'
    price: 1500
    crystals: false
    cmds:
    - case add silver %player% 1
  '23':
    material: BARREL
    name: '&6&lGold Kiste'
    amount: 1
    lore:
    - '&7Premium-Belohnungen'
    - '&7'
    - '&ePreis: &64.000$'
    - '&6&lKauf mit Geld'
    price: 4000
    crystals: false
    cmds:
    - case add gold %player% 1
  '24':
    material: BARREL
    name: '&b&lDiamond Kiste'
    amount: 1
    lore:
    - '&7Legendäre Belohnungen'
    - '&7'
    - '&ePreis: &610.000$'
    - '&6&lKauf mit Geld'
    price: 10000
    crystals: false
    cmds:
    - case add diamond %player% 1
  '25':
    material: BARREL
    name: '&a&lSmaragd Kiste'
    amount: 1
    lore:
    - '&a&lEXKLUSIV FÜR VIPs!'
    - '&7Die besten Belohnungen'
    - '&7'
    - '&ePreis: &625.000$'
    - '&6&lKauf mit Geld'
    - '&c&lPermission erforderlich!'
    price: 25000
    crystals: false
    cmds:
    - case add emerald %player% 1

```

***

* `caseopening_cases` - Case-Bestände
* `caseopening_crystals` - Kristall-Bestände

***

{% hint style="info" %}
Tipps & Best Practices

* Backup: Erstelle vor größeren Änderungen ein Backup der Config-Dateien
* Reload: Nutze `/case reload` nach Änderungen in YML-Dateien
* Validierung: YAML ist leerzeichen-sensitiv - nutze einen YAML-Validator
* Chancen: Teste Gewinnchancen mit `/caseitem getitem` und echten Öffnungen
* Farbcodes: Nutze [Hex-Farben](https://www.color-hex.com/) für moderne Designs (1.16+)
* Items: Verwende items.yml für Items, die an mehreren Stellen genutzt werden
  {% endhint %}

***

## Häufige Konfigurationsfehler

<details>

<summary>Falsch: Leerzeichen in Case-Namen</summary>

```yaml
starter case:  # FEHLER
```

Richtig:

```yaml
starter_case:
```

</details>

<details>

<summary>Falsch: Ungültige Einrückung</summary>

```yaml
item:
material: DIAMOND  # FEHLER - fehlende Einrückung
```

Richtig:

```yaml
item:
  material: DIAMOND
```

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/konfiguration.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.
