Zurück zur Startseite

Dokumentation

Alles, was du über PlayerDataSync wissen musst

Konfiguration

Die Hauptkonfigurationsdatei befindet sich in plugins/PlayerDataSync/config.yml

Beispiel config.yml:

# PlayerDataSync Konfiguration

# Datenbank-Einstellungen
database:
  host: localhost
  port: 3306
  database: playerdatasync
  username: root
  password: your_password
  table-prefix: pds_
  
# Synchronisierungs-Einstellungen
sync:
  # Was soll synchronisiert werden?
  inventory: true
  enderchest: true
  experience: true
  health: true
  food: true
  gamemode: true
  location: true
  potion-effects: true
  
# Performance-Einstellungen
performance:
  # Wie oft sollen Daten gespeichert werden? (in Sekunden)
  auto-save-interval: 60
  # Daten beim Server-Wechsel sofort speichern?
  save-on-server-switch: true
  
# Debug-Modus
debug: false

Wichtig:

Nach Änderungen an der Konfiguration muss der Server neu gestartet werden!

Datenbank-Setup

MySQL Datenbank erstellen

PlayerDataSync benötigt eine MySQL-Datenbank. Hier ist, wie du sie erstellst:

SQL Befehle:

-- Datenbank erstellen
CREATE DATABASE playerdatasync;

-- Benutzer erstellen und Rechte vergeben
CREATE USER 'pds_user'@'%' IDENTIFIED BY 'sicheres_passwort';
GRANT ALL PRIVILEGES ON playerdatasync.* TO 'pds_user'@'%';
FLUSH PRIVILEGES;

Automatische Tabellenerstellung

PlayerDataSync erstellt alle benötigten Tabellen automatisch beim ersten Start.

Mehrere Server

Alle Server können dieselbe Datenbank verwenden - das ist der Zweck des Plugins!

Was wird synchronisiert?

Inventar

Alle Items im Spieler-Inventar

Enderkiste

Inhalt der Ender Chest

Erfahrung (XP)

Level und XP-Fortschritt

Gesundheit

HP und Absorption

Hunger

Food Level und Sättigung

Spielmodus

Creative, Survival, etc.

Position

Letzte bekannte Position

Trank-Effekte

Aktive Potion Effects

Alle Features aktivierbar:

Du kannst jede Synchronisierungsfunktion einzeln in der Config aktivieren oder deaktivieren!

Developer API

PlayerDataSync bietet eine API für Entwickler, um eigene Plugins zu integrieren.

Maven Dependency:

<dependency>
    <groupId>de.devvoxel</groupId>
    <artifactId>playerdatasync</artifactId>
    <version>1.0.0</version>
    <scope>provided</scope>
</dependency>

Beispiel-Nutzung:

// API Instanz abrufen
PlayerDataSyncAPI api = PlayerDataSync.getAPI();

// Spielerdaten manuell speichern
api.savePlayerData(player);

// Spielerdaten laden
api.loadPlayerData(player);

// Event Listener
@EventHandler
public void onDataSync(PlayerDataSyncEvent event) { 
    Player player = event.getPlayer();
    // Deine Logik hier
}

Troubleshooting

Plugin startet nicht

  • Überprüfe, ob Java 17+ installiert ist
  • Stelle sicher, dass die Datenbank erreichbar ist
  • Prüfe die config.yml auf Syntaxfehler
  • Schaue in die Logs: logs/latest.log

Daten werden nicht synchronisiert

  • Verwenden alle Server dieselbe Datenbank?
  • Ist die entsprechende Sync-Option in der Config aktiviert?
  • Aktiviere Debug-Modus in der Config für detaillierte Logs

Performance-Probleme

  • Erhöhe das auto-save-interval in der Config
  • Deaktiviere nicht benötigte Sync-Features
  • Optimiere deine Datenbankverbindung (Connection Pool)

Häufig gestellte Fragen

Funktioniert PlayerDataSync mit BungeeCord/Velocity?

Ja! PlayerDataSync funktioniert perfekt mit Proxy-Netzwerken. Stelle einfach sicher, dass alle Spigot/Paper-Server dieselbe Datenbank verwenden.

Kann ich das Plugin auch nur für bestimmte Welten verwenden?

Aktuell synchronisiert PlayerDataSync global über alle Server. World-spezifische Synchronisierung ist für zukünftige Updates geplant.

Werden Items dupliziert, wenn ein Spieler zu schnell wechselt?

Nein! PlayerDataSync hat eingebaute Schutzmechanismen gegen Item-Duplikation und Datenverlust.

Wie oft werden Daten gespeichert?

Standardmäßig alle 60 Sekunden und beim Serverwechsel. Dies kann in der Config angepasst werden.

Ist meine Datenbank sicher?

PlayerDataSync speichert nur Spieldaten, keine sensiblen Informationen. Achte dennoch auf sichere MySQL-Zugangsdaten!

Brauchst du weitere Hilfe?

Unsere Community hilft dir gerne weiter!