Vault-Integration
EliteMobs kann einen Vault-Wirtschaftsanbieter anstelle seines internen Guthabens verwenden. Das Plugin kompiliert gegen VaultAPI 1.7; installiere kompatible Vault- und Wirtschafts-Plugins auf dem Server.
Auswirkungen auf den Fortschritt
Der Fortschritt in EliteMobs verbindet Waffen- und Rüstungsfertigkeiten, Beute und optionales Klassentraining. Spieler verdienen Ausrüstung und Währung normalerweise durch EliteMobs-Kämpfe. Geld aus einer anderen Wirtschaft verändert, wie schnell sie Ausrüstung und Dienstleistungen kaufen können.
Prüfe Shoppreise, Wiederverkaufswerte der Beute und kostenpflichtige Dienste, bevor du eine externe Wirtschaft anschließt.
Separate Fertigkeitsanforderungen gelten weiterhin, wenn sie aktiviert sind. Vault vergibt keine Fertigkeits-XP, schaltet keine Klassen frei und umgeht keine Trainerprüfungen. Wenn du die Integration aktivierst, stimme deine Wirtschaft auf die Shop- und Dienstleistungspreise von EliteMobs ab, damit externe Einnahmen die Kampfbelohnungen nicht entwerten.
Voraussetzungen
Um die Vault-Integration zu nutzen, musst du Folgendes haben:
- Ein aktiviertes Vault-Plugin, das zu den VaultAPI-Aufrufen von EliteMobs passt
- Ein Wirtschafts-Plugin, das einen Vault-Dienst vom Typ
Economyregistriert - Beide Plugins ordnungsgemäß konfiguriert und laufend
EliteMobs erkennt aktiviertes Vault beim Initialisieren und wählt dessen Wirtschaftspfad, wenn useVault true ist. Die Erkennung allein beweist nicht, dass ein Wirtschaftsanbieter gefunden wurde.
Konfiguration
Um die Vault-Integration zu aktivieren:
- Stelle sicher, dass das Vault-Plugin auf deinem Server installiert ist
- Stelle sicher, dass dein Wirtschafts-Plugin seinen Vault-Anbieter vor der Initialisierung von EliteMobs registriert
- Öffne
EconomySettings.ymlim EliteMobs-Plugin-Ordner - Setze
useVault: true - Starte den Server neu
Beispielkonfiguration:
# Whether to use Vault for the economy instead of the built-in system.
# NOT RECOMMENDED! See: https://wiki.nightbreak.io/EliteMobs/vault
useVault: false
Funktionsweise
Wenn die Vault-Integration mit einem funktionierenden Anbieter aktiv ist:
- Künftige Währungsvorgänge verwenden den Vault-Wirtschaftsanbieter. Vorhandene Elite-Münzen in der EliteMobs-Datenbank werden nicht automatisch umgerechnet oder übertragen.
- Spieler verdienen beim Töten von Elite-Mobs deine Wirtschaftswährung anstelle von Elite-Münzen
- Shop-Transaktionen und andere kostenpflichtige Dienstleistungen verwenden die Wirtschaft deines Servers. Reparaturen verbrauchen weiterhin Schrott.
- Vault verwaltet das Geldguthaben; EliteMobs erfasst weiterhin Glücksspielschulden und zieht sie von eingehenden EliteMobs-Einnahmen ab, bevor der Rest eingezahlt wird.
Währungsoperationen:
- Einzahlungen: Geld wird dem Vault-Guthaben des Spielers hinzugefügt
- Auszahlungen: Geld wird vom Vault-Guthaben des Spielers entfernt
- Guthabenprüfungen: Fragt das Vault-Guthaben des Spielers ab
- Direktes Setzen des Guthabens: AUS Sicherheitsgründen DEAKTIVIERT (verwende dein Wirtschafts-Plugin)
Beim Initialisieren setzt aktiviertes Vault zusammen mit useVault: true den Wert VAULT_ENABLED, bevor der Anbieter gesucht wird. Ein fehlender Anbieter kann daher den Vault-Modus ohne nutzbare Wirtschaft aktiv lassen. Guthabenabfragen warnen dann und liefern 0; gewöhnliche Ein- und Auszahlungen können scheitern, während geprüfte Kaufhelfer einen Fehlschlag zurückgeben. Fehlt Vault bei einem frischen Start oder ist es deaktiviert, bleibt die interne Wirtschaft aktiv. Eine abgefangene Ausnahme beim Vault-Setup deaktiviert den Vault-Modus ebenfalls.
Nach Aktivierung des Vault-Modus gibt es zur Laufzeit weder einen automatischen Rückfall noch eine erneute Anbieterbindung. Korrigiere die Registrierung und starte neu, bevor du Transaktionen zulässt. currencyName bleibt eine separate Anzeigeeinstellung von EliteMobs; Vault benennt sie nicht automatisch um.
Sicherheitsfunktionen
Aus Sicherheitsgründen unterstützt EliteMobs NICHT das direkte Setzen des Währungsguthabens eines Spielers über Vault. Jeder Versuch dazu wird blockiert und protokolliert. Verwende bei Bedarf die Befehle deines Wirtschafts-Plugins, um Guthaben direkt zu setzen.
Beispielszenario
Angenommen, eine Belohnung zahlt 100 Münzen und der Spieler hat keine Glücksspielschulden. Der Betrag ist ein Beispiel, keine feste Auszahlung für jeden Mob auf Level 50.
Ohne Vault:
- Spieler tötet einen Elite-Mob der Stufe 50
- Erhält 100 Elite-Münzen (gespeichert in der EliteMobs-Datenbank)
- Kann Elite-Münzen in EliteMobs-Shops und -Diensten ausgeben
Mit Vault:
- Spieler tötet einen Elite-Mob der Stufe 50
- Erhält 100 [deine Wirtschaftswährung] (gespeichert im Vault-/Wirtschafts-Plugin)
- Kann Geld in EliteMobs und anderen Systemen mit demselben Anbieter ausgeben
- Überweisungen anderer Spieler hängen von den Funktionen des Wirtschafts-Plugins ab
- Die Wirtschaft ist über alle Plugins hinweg vereinheitlicht
Externe Einnahmen können den Zugang zu Ausrüstung und Diensten beschleunigen. Fertigkeitsanforderungen und Klassenfreischaltungen gelten unabhängig davon weiter.
Fehlerbehebung
Wenn die Vault-Integration aktiviert ist, aber nicht funktioniert:
-
Überprüfe die Serverprotokolle auf: „Vault detected." (in einer EliteMobs-Protokollzeile)
- Wenn fehlend: Das Vault-Plugin ist nicht installiert oder wird nicht geladen
-
Überprüfe auf die Warnung: „Vault preference detected. This is not the recommended setting."
- Dies ist zu erwarten, wenn die Vault-Integration aktiviert ist – es ist eine Erinnerung, kein Fehler
- Wenn Vault immer noch nicht funktioniert, stelle sicher, dass dein Wirtschafts-Plugin ordnungsgemäß bei Vault registriert ist
-
Überprüfe auf: „Player tried to check currency when they had no economy entry"
- Dies ist eine allgemeine Nullreferenz-Warnung, kein Beweis für ein fehlendes Spielerkonto. Der gespeicherte Wirtschaftsanbieter selbst kann null sein.
- Prüfe, ob der Anbieter vor EliteMobs registriert war, und untersuche anschließend Kontoverwaltung und Protokolle des Wirtschafts-Plugins.
-
Wenn aktiviert, aber EliteMobs weiterhin Elite-Münzen verwendet:
- Überprüfe, ob der Konfigurationsschlüssel exakt lautet:
useVault: true - Starte den Server nach der Konfigurationsänderung neu
- Überprüfe, ob ein Wirtschafts-Plugin bei Vault registriert ist
- Überprüfe, ob der Konfigurationsschlüssel exakt lautet:
-
Wenn Guthaben trotz Erkennung 0 anzeigen oder Transaktionen scheitern:
- Prüfe, ob bei der Initialisierung ein Anbieter verfügbar war; die Erkennung bestätigt nur Vault selbst.
- Stelle den Anbieter wieder her und starte neu. EliteMobs verbindet sich nicht automatisch mit einem neu registrierten Anbieter.
Für Entwickler
Wenn du ein Addon oder eine Integration entwickelst:
- Vault-Auswahl:
VaultCompatibility.VAULT_ENABLEDbeweist keine Anbieterverfügbarkeit;getEconomy()kann null sein - Wirtschafts-API: Verwende die Methoden von
EconomyHandler(nicht direkt VaultCompatibility) - Unterstützte Operationen: add, subtract, check, geprüfte Gutschrift, geprüfte Kaufabbuchung und Kaufrückerstattung (set ist deaktiviert)
- Jede Guthabenänderung muss auf dem Serverthread laufen, und zwar für einen Spieler, dessen EliteMobs-Daten geladen sind (
EconomyHandler.isReady); andernfalls wird eineIllegalStateExceptiongeworfen. tryCredit,tryWithdrawundrefundPaymentwerfen bei negativen oder nicht endlichen Beträgen eineIllegalArgumentExceptionund gebenfalsezurück, wenn Vault die Transaktion ablehnt oder für diesen Spieler bereits eine andere Änderung läuft.tryCredittilgt zuerst Glücksspielschulden und speichert die neue Schuld erst, nachdem Vault die Einzahlung akzeptiert hat;refundPaymentumgeht die Schuldentilgung.addCurrencyundsubtractCurrencywerfen eineIllegalStateException, wenn der Anbieter die Änderung ablehnt, statt stillschweigend zu scheitern.- Währungspräzision: Das interne System verwendet 2 Dezimalstellen
- Kein Laufzeit-Fallback: Wenn
VAULT_ENABLEDtrue ist, delegiertEconomyHandlerimmer an Vault; es gibt keinen automatischen Wechsel zurück zur internen Wirtschaft
Speicherort des Quellcodes:
- src/main/java/com/magmaguy/elitemobs/economy/VaultCompatibility.java
- src/main/java/com/magmaguy/elitemobs/economy/EconomyHandler.java
EliteMobs verwendet VaultAPI 1.7 als reine Compile-Abhängigkeit. Die Vault-Plugin-JAR muss zur Laufzeit auf dem Server vorhanden sein.