122 lines
4.1 KiB
Markdown
122 lines
4.1 KiB
Markdown
# PlayerDataSync Premium - Setup Anleitung
|
|
|
|
## Projektstruktur
|
|
|
|
Die Premium-Version benötigt alle Klassen aus PlayerDataSync, aber mit angepassten Package-Namen:
|
|
|
|
### Package-Mapping
|
|
|
|
**Von:** `com.example.playerdatasync.*`
|
|
**Zu:** `com.example.playerdatasync.premium.*`
|
|
|
|
### Zu kopierende Klassen
|
|
|
|
Alle folgenden Klassen müssen aus `PlayerDataSync/src/main/java/com/example/playerdatasync/` nach `PlayerDataSync-Premium/premium/src/main/java/com/example/playerdatasync/premium/` kopiert und Package-Namen angepasst werden:
|
|
|
|
#### Core
|
|
- `core/PlayerDataSync.java` → `premium/core/PlayerDataSyncPremium.java` ✅ (bereits erstellt)
|
|
|
|
#### Database
|
|
- `database/ConnectionPool.java` → `premium/database/ConnectionPool.java`
|
|
- `database/DatabaseManager.java` → `premium/database/DatabaseManager.java`
|
|
|
|
#### Commands
|
|
- `commands/SyncCommand.java` → `premium/commands/SyncCommand.java`
|
|
- Premium-Befehle hinzufügen: `/sync license validate`, `/sync license info`, `/sync update check`
|
|
|
|
#### Listeners
|
|
- `listeners/PlayerDataListener.java` → `premium/listeners/PlayerDataListener.java`
|
|
- `listeners/ServerSwitchListener.java` → `premium/listeners/ServerSwitchListener.java`
|
|
|
|
#### Managers
|
|
- `managers/AdvancementSyncManager.java` → `premium/managers/AdvancementSyncManager.java`
|
|
- `managers/BackupManager.java` → `premium/managers/BackupManager.java`
|
|
- `managers/ConfigManager.java` → `premium/managers/ConfigManager.java`
|
|
- `managers/MessageManager.java` → `premium/managers/MessageManager.java`
|
|
- `managers/LicenseManager.java` → `premium/managers/LicenseManager.java` ✅ (bereits erstellt)
|
|
|
|
#### Integration
|
|
- `integration/InventoryViewerIntegrationManager.java` → `premium/integration/InventoryViewerIntegrationManager.java`
|
|
|
|
#### Utils
|
|
- `utils/InventoryUtils.java` → `premium/utils/InventoryUtils.java`
|
|
- `utils/OfflinePlayerData.java` → `premium/utils/OfflinePlayerData.java`
|
|
- `utils/PlayerDataCache.java` → `premium/utils/PlayerDataCache.java`
|
|
- `utils/VersionCompatibility.java` → `premium/utils/VersionCompatibility.java`
|
|
|
|
#### API
|
|
- `api/PremiumUpdateChecker.java` → `premium/api/PremiumUpdateChecker.java` ✅ (bereits erstellt)
|
|
- `api/LicenseValidator.java` → `premium/api/LicenseValidator.java` ✅ (bereits erstellt)
|
|
|
|
### Resources
|
|
|
|
- `resources/config.yml` → `premium/src/main/resources/config.yml` ✅ (bereits erstellt)
|
|
- `resources/plugin.yml` → `premium/src/main/resources/plugin.yml` ✅ (bereits erstellt)
|
|
- `resources/messages_en.yml` → `premium/src/main/resources/messages_en.yml`
|
|
- `resources/messages_de.yml` → `premium/src/main/resources/messages_de.yml`
|
|
|
|
## Anpassungen
|
|
|
|
### 1. Package-Namen ändern
|
|
|
|
Alle Klassen müssen von:
|
|
```java
|
|
package com.example.playerdatasync.xxx;
|
|
```
|
|
|
|
zu:
|
|
```java
|
|
package com.example.playerdatasync.premium.xxx;
|
|
```
|
|
|
|
### 2. Imports anpassen
|
|
|
|
Alle Imports müssen angepasst werden:
|
|
```java
|
|
// Alt
|
|
import com.example.playerdatasync.database.DatabaseManager;
|
|
|
|
// Neu
|
|
import com.example.playerdatasync.premium.database.DatabaseManager;
|
|
```
|
|
|
|
### 3. SyncCommand erweitern
|
|
|
|
In `SyncCommand.java` müssen Premium-Befehle hinzugefügt werden:
|
|
|
|
```java
|
|
case "license":
|
|
return handleLicense(sender, args);
|
|
|
|
case "update":
|
|
return handleUpdate(sender, args);
|
|
```
|
|
|
|
### 4. PlayerDataSyncPremium.java vervollständigen
|
|
|
|
Die Hauptklasse `PlayerDataSyncPremium.java` ist bereits erstellt, aber alle Methoden aus der originalen `PlayerDataSync.java` müssen kopiert werden.
|
|
|
|
## Build
|
|
|
|
```bash
|
|
cd PlayerDataSync-Premium/premium
|
|
mvn clean package
|
|
```
|
|
|
|
Die JAR-Datei wird in `target/PlayerDataSync-Premium-1.2.9-PREMIUM.jar` erstellt.
|
|
|
|
## Wichtige Hinweise
|
|
|
|
1. **License Key erforderlich**: Die Premium-Version funktioniert nur mit einem gültigen Lizenzschlüssel
|
|
2. **API-Zugriff**: Benötigt Internetverbindung für Lizenz-Validierung und Update-Checks
|
|
3. **Rate Limits**: API hat ein Limit von 100 Requests/Stunde pro IP
|
|
4. **Caching**: Lizenz-Validierung wird 30 Minuten gecacht
|
|
|
|
## Nächste Schritte
|
|
|
|
1. Alle Klassen aus PlayerDataSync kopieren
|
|
2. Package-Namen anpassen
|
|
3. Imports anpassen
|
|
4. Premium-Befehle in SyncCommand hinzufügen
|
|
5. Build und Test
|