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