Datenbank hinzugefügt
88
Datenbank.md
Normal file
88
Datenbank.md
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
# Datenbank & CrossLink
|
||||||
|
|
||||||
|
ASC unterstützt zwei Datenspeicher-Backends: **YAML** (Standard, keine Einrichtung nötig) und **MySQL/MariaDB** (empfohlen für Netzwerke).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## YAML-Modus (Standard)
|
||||||
|
|
||||||
|
Ohne MySQL-Konfiguration werden alle Spielerdaten in `plugins/AutoSortChest/players.yml` gespeichert. Kein weiteres Setup erforderlich.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## MySQL aktivieren
|
||||||
|
|
||||||
|
In der `config.yml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
mysql:
|
||||||
|
enabled: true
|
||||||
|
host: "localhost"
|
||||||
|
port: 3306
|
||||||
|
database: "autosortchest"
|
||||||
|
user: "autosortchest"
|
||||||
|
password: "autosortchest"
|
||||||
|
```
|
||||||
|
|
||||||
|
Das Datenbankschema wird beim Start **automatisch migriert** – keine manuellen SQL-Befehle nötig.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenbank-Tabellen
|
||||||
|
|
||||||
|
| Tabelle | Inhalt |
|
||||||
|
| --- | --- |
|
||||||
|
| `asc_players` | Spieler-UUIDs und Namen |
|
||||||
|
| `asc_input_chests` | Registrierte Eingangstruhen |
|
||||||
|
| `asc_target_chests` | Zieltruhen mit Item-Zuordnung und Slot-Index |
|
||||||
|
| `asc_rest_chests` | Rest-/Fallback-Truhen |
|
||||||
|
| `asc_trash_chests` | Mülltruhen mit Serverzuordnung |
|
||||||
|
| `asc_trash_items` | Filter-Listen der Mülltruhen |
|
||||||
|
| `asc_transfers` | Ausstehende CrossLink-Transfers zwischen Servern |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## CrossLink (Serverübergreifende Sortierung)
|
||||||
|
|
||||||
|
Mit CrossLink können Zieltruhen auf **anderen Servern desselben Netzwerks** liegen. Benötigt MySQL.
|
||||||
|
|
||||||
|
### Funktionsweise
|
||||||
|
|
||||||
|
1. Server A hat die Eingangstruhe und erkennt, dass die Zieltruhe für `OAK_LOG` auf Server B liegt
|
||||||
|
2. Server A schreibt den Transfer in die gemeinsame Datenbank-Tabelle `asc_transfers`
|
||||||
|
3. Server B liest die Transfer-Tabelle periodisch und befüllt seine lokale Zieltruhe automatisch
|
||||||
|
|
||||||
|
### Einrichtung (BungeeCord / Velocity)
|
||||||
|
|
||||||
|
1. **Dieselbe** MySQL-Datenbank auf allen Servern eintragen
|
||||||
|
2. Auf jedem Server einen **eindeutigen** `server_name` setzen
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
server_crosslink: true
|
||||||
|
server_name: "survival" # z. B. "lobby", "survival", "creative"
|
||||||
|
```
|
||||||
|
|
||||||
|
3. `mysql.enabled: true` und `server_crosslink: true` setzen
|
||||||
|
4. Alle Server neu starten
|
||||||
|
|
||||||
|
> ⚠️ Wird `server_name` leer gelassen, läuft das Plugin im **Legacy-Modus** (welt-basierte Erkennung, kein BungeeCord).
|
||||||
|
|
||||||
|
### Voraussetzungen
|
||||||
|
|
||||||
|
* Alle Server nutzen **dieselbe** MySQL-Datenbank
|
||||||
|
* Jeder Server hat einen eindeutigen `server_name`
|
||||||
|
* `server_crosslink: true` auf allen beteiligten Servern
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Import & Export
|
||||||
|
|
||||||
|
Zum Wechsel zwischen YAML und MySQL gibt es zwei Admin-Befehle:
|
||||||
|
|
||||||
|
| Befehl | Richtung | Beschreibung |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `/asc import` | YAML → MySQL | Überträgt `players.yml` in die Datenbank |
|
||||||
|
| `/asc export` | MySQL → YAML | Exportiert Datenbank zurück in `players.yml` |
|
||||||
|
|
||||||
|
Beim Export wird automatisch ein Backup der bestehenden `players.yml` erstellt:
|
||||||
|
`players_backup_<timestamp>.yml`
|
||||||
Reference in New Issue
Block a user