> 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/plotauction/konfiguration.md).

# Konfiguration

Passe Auktionsgebühren, Verkäufer-Steuern, Gebots-Schritte, Speicher-Backends (SQLite/MySQL), PlotLimit-Regeln und das komplette GUI-Design flexibel in der `config.yml` sowie den **7 modularen GUI-Dateien** an.

***

## Dateiübersicht

Das Plugin erstellt nach dem ersten Serverstart im Ordner `/plugins/PlotAuction/` folgende Konfigurationsdateien:

* **`config.yml`**: Verwaltet Basis-Einstellungen, Datenbankspeicher, Auktionsregeln, Steuern, Limits, Soundeffekte und Nachrichten.
* **`maingui.yml`**: Hauptmenü zur Übersicht aller aktiven Plot-Auktionen inkl. Sortierung und Seitennavigation.
* **`yourAuction.yml`**: Übersicht der eigenen vom Spieler eingestellten Plot-Auktionen.
* **`newauction.yml`**: Dialog-GUI zum Erstellen und Einstellen einer neuen Plot-Auktion (Laufzeit, Sofortkaufpreis, Startgebot, Bestätigung).
* **`bid.yml`**: Gebotsfenster mit interaktiven Plus-/Minus-Buttons, Multiplikatoren und Schnell-Setzen.
* **`buy.yml`**: Bestätigungsfenster zum Sofortkauf eines Grundstücks.
* **`auctionDetail.yml`**: Detailansicht fremder Plot-Auktionen (Besichtigen via Teleport, Bieten, Sofortkauf).
* **`yourAuctionDetail.yml`**: Detail- und Verwaltungsfenster für eigene aktive Plot-Auktionen (z. B. Auktion abbrechen, vorzeitig beenden, Sofortpreis anpassen).

***

## Hauptkonfiguration (`config.yml`)

{% tabs %}
{% tab title="⚙️ Basis & Performance" %}

#### Allgemeine Einstellungen & Integration

```yaml
# Der Präfix vor allen Systemnachrichten (Unterstützt & Farb-Codes sowie &#RRGGBB Hex-Farben)
prefix: '&7[&ePlotAuction&7]'

# PlotLimit Bypass: Wenn auf true gesetzt, können Spieler Grundstücke auch dann ersteigern/kaufen,
# wenn sie das maximale PlotLimit von PlotSquared bereits erreicht haben.
ignoreplotlimitofplotsquared: false

# Hinweis: PlotSquared (v3, v4, v5, v6, v7) sowie PlotMe werden automatisch vom Plugin erkannt.
```

{% endtab %}

{% tab title="💾 Storage & Datenbank" %}

#### SQLite & MySQL Konfiguration

Standardmäßig nutzt das Plugin **SQLite** (`auctions.db` im Plugin-Ordner), wofür keine externe Datenbank erforderlich ist. Für Server-Netzwerke kann **MySQL** aktiviert werden.

```yaml
MySQL:
  enable: false
  host: 127.0.0.1
  port: 3306
  database: minecraft
  username: root
  password: ''
  ssl: false
```

{% hint style="info" %}
**Live-Migration:** Du kannst deine Auktionsdaten im laufenden Betrieb ohne Datenverlust migrieren:\
`/plotauction admin migrate <SQLITE|MYSQL|FILE> <SQLITE|MYSQL|FILE> [override]`
{% endhint %}
{% endtab %}

{% tab title="🏷️ Custom Plotname" %}

#### Plot-Naming Feature

```yaml
plotnamefeature:
  enable: true # Ermöglicht das Vergeben von benutzerdefinierten Plot-Namen per /pahname <Name>
  permissionneed: false # Benötigt die Permission 'plotauction.plotname'
  price: 100 # Kosten pro Namensänderung in Währung
  minlenght: 3 # Minimale Zeichenlänge
  maxlenght: 16 # Maximale Zeichenlänge
```

{% endtab %}

{% tab title="💰 Gebühren & Steuern" %}

#### Auktionserstellung, Steuern & Gebotsschritte

```yaml
# Cooldown (in Sekunden) zwischen der Erstellung zweier Auktionen
newauctioncooldown: 5

# Erstellungsgebühren für neue Plot-Auktionen (Kombinierbar)
pricefornewauction:
  price: 100 # Feste Erstellungsgebühr
  percentageofbuy:
    enable: true
    percent: 10 # Prozentuale Gebühr basierend auf dem eingestellten Sofortkaufpreis

# Verkäufersteuer (wird bei erfolgreichem Verkauf vom Auszahlungsbetrag abgezogen)
tax:
  enable: true
  percent: 3.0 # 3% Verkaufssteuer

# Gebotsschritte für das Interaktive Biet-GUI (Buttons +100, +10, +1)
bidsteps:
  '1': 100
  '2': 10
  '3': 1

# Maximale Auktionen pro Spieler
maxauctionperplayer:
  enablepermissioncheck: false # Wenn true, greifen Permissions wie plotauction.auctions.<Anzahl>
  highestmax: 60
```

{% endtab %}

{% tab title="📏 Limits & Fristen" %}

#### Preis- und Laufzeit-Grenzen

```yaml
# Auktionsdauer (in Minuten)
deadline:
  min: 60 # Mindestlaufzeit (1 Stunde)
  max: 10080 # Maximallaufzeit (7 Tage)
  default: 2880 # Standarddauer (48 Stunden)

# Sofortkaufpreis-Grenzen
sellprice:
  min: 100
  max: 10000000
  default: 1000

# Startgebot-Grenzen
bidprice:
  min: 100
  max: 10000000
  default: 100

# Standard Auktionszeit in Stunden (Fall-back)
auctiontimeinhour: 48
```

{% endtab %}

{% tab title="💵 Währung & Formatierung" %}

#### Währungssymbol & Zahlenformate

```yaml
# Währungssymbol
currency: '$'

# Zahlenformatierung für Geldbeträge
moneyformat:
  pattern: '#,###'
  decimalseparator: ','
  groupingseparator: '.'

# Zeitformate für Lores und Nachrichten
time:
  seconds: '&7Sekunden'
  mins: '&7Minuten'
  hours: '&7Stunden'
  days: '&7Tage'
```

{% endtab %}

{% tab title="🔊 Sound-System" %}

#### System-Soundeffekte

Sounds können für verschiedene Aktionen (z. B. Bieten, Kaufen, Fehler, GUI-Klick) angepasst werden:

```yaml
sounds:
  click:
    sound: UI_BUTTON_CLICK
    volume: 1.0
    pitch: 1.0
  bid_placed:
    sound: ENTITY_EXPERIENCE_ORB_PICKUP
    volume: 1.0
    pitch: 1.2
  bought:
    sound: ENTITY_PLAYER_LEVELUP
    volume: 1.0
    pitch: 1.0
```

{% endtab %}
{% endtabs %}

***

## Modulares GUI-System (7 YAML-Dateien)

Das GUI-System von PlotAuction ist in **7 eigenständige Konfigurationsdateien** unter `/plugins/PlotAuction/` aufgeteilt. Jedes Menü kann in Bezug auf Titel, Größe (`length`), Füll-Items (`placeholder`), Custom Heads (`skullowner`), Slots und Lores individuell angepasst werden.

### Übersicht der GUI-Dateien

1. **`maingui.yml`**: Die Hauptübersicht aller zum Verkauf stehenden Grundstücke.
2. **`yourAuction.yml`**: Liste aller vom Spieler selbst erstellten Plot-Auktionen.
3. **`newauction.yml`**: Dialogfenster zum Einstellen von Laufzeit, Sofortkaufpreis, Startgebot und Bestätigung einer neuen Plot-Auktion.
4. **`bid.yml`**: Interaktives Biet-Fenster mit Buttons zum Erhöhen/Verringern des Gebots und Multiplikatoren.
5. **`buy.yml`**: Bestätigungsfenster zum Kauf eines Plots.
6. **`auctionDetail.yml`**: Detailfenster einer fremden Auktion (Plot-Infos, Gebotsverlauf, Teleportation, Bieten, Sofortkauf).
7. **`yourAuctionDetail.yml`**: Detailfenster einer eigenen Auktion zum Verwalten, Anpassen des Sofortpreises, vorzeitigen Beenden oder Abbrechen.

### Beispiel: `maingui.yml` Struktur

```yaml
# Item-Beschreibung der Grundstücke im Hauptmenü
auctionlore:
- '&8&m-------------------------'
- '&7Verkäufer: &e%seller%'
- '&7Plot: &e%plotid%'
- '&7Endet in: &e%end%'
- ''
- '&7Aktuelles Gebot: &6&l%bid% %currency%'
- '&7Sofortkauf: &b&l%buyprice% %currency%'
- '&7Gebote: &e%totalbids%'
- '&8&m-------------------------'
- '&eKlicke zum Öffnen!'
- '&8&m-------------------------'

gui:
  name: '&8» &6Plot Auktionen'
  length: 6

placeholder:
  enable: true
  BLACK_STAINED_GLASS_PANE: '45-53'

items:
  prevPage:
    material: PLAYER_HEAD
    skullowner: 'eyJ0ZXh0dXJlcyI6...'
    name: '&c« Vorherige Seite'
    slot: 48
  nextPage:
    material: PLAYER_HEAD
    skullowner: 'eyJ0ZXh0dXJlcyI6...'
    name: '&aNächste Seite »'
    slot: 52
  newAuction:
    true:
      material: PLAYER_HEAD
      name: '&a&lPlot ausstellen'
      slot: 51
    false:
      material: PLAYER_HEAD
      name: '&c&lPlot ausstellen'
      lore:
      - '&cDu stehst auf keinem deiner Plots!'
      slot: 51
  yourAuction:
    material: PLAYER_HEAD
    skullowner: '%player%'
    name: '&b&lDeine Auktionen'
    slot: 49

```

***

## System- und Fehlermeldungen (`messages.*`)

Alle Nachrichten können in der `config.yml` unter `messages` angepasst werden. Farbcodes (&) und `%currency%` werden unterstützt:

```yaml
messages:
  noperm: '&cDazu hast du keine Rechte.'
  teleport: '&aDu hast dich zu der Auction %name% geportet!'
  minusnumber: '&cDu kannst keine negative Zahl eintragen!'
  someoneisinbid: '&cJemand ist bereits für dieses Item am bieten!'
  someoneisinbuy: '&cJemand hat bereits das Kauffenster offen!'
  notenoughmoney: '&cDu hast nicht genügend Geld, du brauchst mindestens %money%!'
  toolow: '&cDu musst mindestens %bid% bieten!'
  bid: '&aDu hast erfolgreich %bid% geboten!'
  yourownauction: '&cDas ist deine eigene Auction!'
  nobids: '&cEs hat keiner geboten, also kannst du es nicht verkaufen!'
  nobidsgetback: '&cDein Item konnte nicht verkauft werden, du hast es zurückerhalten!'
  yourauctionfinished: '&aEine Auction von dir wurde verkauft!'
  creatednewauction: '&aEine neue Auction wurde erstellt!'
  yourgetauction: '&aDu hast die Auction gewonnen und das Plot gehört nun dir!'
  deletedauction: '&cAuction wurde gelöscht!'
  cooldownwait: '&cDu musst dich noch etwas gedulden!'
  maxreached: '&cDu hast DEIN maximum von Auctions erreicht!'
  maxplotsreached: '&cDu hast dein Limit von Plots erreicht, was du besitzen darfst!'
  notbought: '&cDu hast es nicht gekauft!'
  notonyourplot: '&cDu bist nicht auf deinem Plot!'
  plotisnotinauction: '&cDieses Plot ist nicht in einer Auction!'
  plotisinauction: '&cDieses Plot ist bereits in Auctionen!'
  startbidishigherthanprice: '&cDer Startgebotspreis ist höher als der Verkaufspreis, Auction wurde nicht erstellt!'
  auctionisover: '&cDiese Auktion ist bereits beendet!'
  cannotbuyownauc: '&cDu kannst deine eigene Auktion nicht kaufen!'
  youraucgotbought: '&aDeine Auktion wurde von %player% für %price% gekauft!'
  boughtsuccess: '&aDu hast die Auktion erfolgreich für %price% gekauft!'
  bidminimum: '&cDas Mindestgebot beträgt %money%!'
  bidmaximum: '&cDas Höchstgebot beträgt %money%!'
  bidoverbid: '&cDu wurdest bei einer Auktion überboten!'
  bidhigherthanprice: '&cDein Gebot darf nicht höher als der Sofortkaufpreis sein!'
  bidlowerthanprice: '&cDein Gebot muss niedriger als der Sofortkaufpreis sein!'
  broadcast:
    newauction: '&6%player% hat eine neue PlotAuction gestartet.'
  plotnamefeature:
    usage: '&cNutze: /pahname <Anzeigename>'
    notactivated: '&cName-Feature ist nicht aktiviert'
    confirm: '&7Bestätige indem du erneut &e/pahname %name% &7eingibst, ACHTUNG: Dies kostet dich %price% $'
    changed: '&aPlotname wurde verändert'
    notsame: '&cDie Eingaben waren nicht identisch, Vorgang abgebrochen'
    wrong: '&cDer Name muss mind. %min% Buchstaben und %max% Buchstaben enthalten, erlaubt sind nur Buchstaben'
```
