Intégration Vault
EliteMobs peut utiliser un fournisseur d'économie Vault à la place de son solde interne. Le plugin compile avec VaultAPI 1.7 ; installez des plugins Vault et d'économie compatibles sur le serveur.
Effets sur la progression
La progression dans EliteMobs associe les compétences d'arme et d'armure, le butin et, éventuellement, l'entraînement de classe. Les joueurs gagnent normalement leur équipement et leur monnaie en combattant dans EliteMobs. L'apport d'argent provenant d'une autre économie modifie la vitesse à laquelle ils peuvent acheter de l'équipement et des services.
Vérifiez les prix des boutiques, les valeurs de revente du butin et les services payants avant de connecter une économie externe.
Les exigences de compétence distinctes restent applicables lorsqu'elles sont activées. Vault n'accorde pas d'expérience de compétence, ne débloque pas les classes et ne permet pas de contourner les épreuves des entraîneurs. Si vous activez l'intégration, adaptez votre économie aux prix des boutiques et services EliteMobs afin que les revenus externes ne rendent pas dérisoires les récompenses du combat.
Prérequis
Pour utiliser l'intégration Vault, vous devez avoir :
- Un plugin Vault activé et compatible avec les appels VaultAPI d'EliteMobs
- Un plugin d'économie qui enregistre un service Vault
Economy - Les deux plugins correctement configurés et en cours d'exécution
EliteMobs détecte Vault activé lors de l'initialisation et choisit son chemin économique lorsque useVault vaut true. Cette détection ne prouve pas qu'un fournisseur d'économie a été trouvé.
Configuration
Pour activer l'intégration Vault :
- Assurez-vous que le plugin Vault est installé sur votre serveur
- Assurez-vous que le plugin d'économie enregistre son fournisseur Vault avant l'initialisation d'EliteMobs
- Ouvrez
EconomySettings.ymldans le dossier du plugin EliteMobs - Réglez
useVault: true - Redémarrez le serveur
Exemple de configuration :
# Whether to use Vault for the economy instead of the built-in system.
# NOT RECOMMENDED! See: https://wiki.nightbreak.io/EliteMobs/vault
useVault: false
Fonctionnement
Lorsque l'intégration Vault est active avec un fournisseur fonctionnel :
- Les opérations futures utilisent le fournisseur d’économie de Vault. Les Elite Coins déjà présents dans la base EliteMobs ne sont ni convertis ni transférés automatiquement.
- Les joueurs gagnent la monnaie de votre économie au lieu d'Elite Coins en tuant des Mobs d'Élite
- Les transactions en boutique et les autres services payants utilisent l'économie de votre serveur. Les réparations consomment toujours des matériaux de récupération.
- Vault gère le solde monétaire ; EliteMobs suit toujours les dettes de jeu et les déduit des gains EliteMobs avant de déposer le reste.
Opérations sur la monnaie :
- Dépôts : l'argent est ajouté au solde Vault du joueur
- Retraits : l'argent est retiré du solde Vault du joueur
- Vérifications de solde : interroge le solde Vault du joueur
- Définition directe du solde : DÉSACTIVÉE pour des raisons de sécurité (utilisez votre plugin d'économie)
À l'initialisation, Vault activé avec useVault: true définit VAULT_ENABLED avant la recherche du fournisseur. Un fournisseur manquant peut donc laisser le mode Vault actif sans économie utilisable. Les consultations de solde avertissent alors et renvoient zéro ; les dépôts ou retraits ordinaires peuvent échouer, tandis que les fonctions d'achat avec vérification renvoient un échec. Si Vault est absent ou désactivé lors d'un nouveau démarrage, l'économie interne reste utilisée. Une exception interceptée pendant la configuration de Vault désactive aussi ce mode.
Une fois le mode Vault actif, il n'existe ni repli automatique ni reconnexion automatique au fournisseur en cours d'exécution. Corrigez son enregistrement et redémarrez avant d'accepter des transactions. currencyName reste un réglage d'affichage distinct d'EliteMobs ; activer Vault ne le renomme pas automatiquement.
Fonctionnalités de sécurité
Pour des raisons de sécurité, EliteMobs ne prend PAS en charge la définition directe du solde de monnaie d'un joueur via Vault. Toute tentative en ce sens sera bloquée et journalisée. Utilisez les commandes de votre plugin d'économie pour définir directement les soldes si nécessaire.
Exemple de scénario
Supposons qu'une récompense verse 100 pièces et que le joueur n'ait aucune dette de jeu. Ce montant sert d'exemple ; ce n'est pas un paiement fixe pour chaque mob de niveau 50.
Sans Vault :
- Le joueur tue un Mob d'Élite de niveau 50
- Reçoit 100 Elite Coins (stockés dans la base de données d'EliteMobs)
- Peut dépenser les Elite Coins dans les boutiques et services d'EliteMobs
Avec Vault :
- Le joueur tue un Mob d'Élite de niveau 50
- Reçoit 100 [monnaie de votre économie] (stockés dans Vault / le plugin d'économie)
- Peut dépenser l'argent dans EliteMobs et les autres systèmes utilisant ce fournisseur
- Les transferts entre joueurs dépendent des fonctionnalités du plugin d'économie
- L'économie est unifiée entre tous les plugins
Les revenus externes peuvent accélérer l'accès à l'équipement et aux services. Les exigences de compétence et les déblocages de classe restent indépendants.
Dépannage
Si l'intégration Vault est activée mais ne fonctionne pas :
-
Vérifiez les journaux du serveur pour : « Vault detected. » (dans une ligne de journal EliteMobs)
- Si absent : le plugin Vault n'est pas installé ou ne se charge pas
-
Vérifiez l'avertissement : « Vault preference detected. This is not the recommended setting. »
- C'est attendu lorsque l'intégration Vault est activée — c'est un rappel, pas une erreur
- Si Vault ne fonctionne toujours pas, assurez-vous que votre plugin d'économie est correctement enregistré auprès de Vault
-
Vérifiez : « Player tried to check currency when they had no economy entry »
- C'est un avertissement générique de référence nulle, pas une preuve d'absence de compte joueur. Le fournisseur d'économie mis en cache peut lui-même être nul.
- Vérifiez que le fournisseur était enregistré avant l'initialisation d'EliteMobs, puis consultez la gestion des comptes et les journaux du plugin d'économie.
-
Si activé mais qu'EliteMobs utilise toujours les Elite Coins :
- Vérifiez que la clé de configuration est exactement :
useVault: true - Redémarrez le serveur après le changement de configuration
- Vérifiez qu'un plugin d'économie est enregistré auprès de Vault
- Vérifiez que la clé de configuration est exactement :
-
Si les soldes valent zéro ou les transactions échouent malgré le message de détection :
- Confirmez qu'un fournisseur était disponible à l'initialisation ; ce message confirme uniquement Vault.
- Rétablissez le fournisseur et redémarrez. EliteMobs ne se reconnecte pas automatiquement à un fournisseur nouvellement enregistré.
Pour les développeurs
Si vous développez un addon ou une intégration :
- Sélection de Vault :
VaultCompatibility.VAULT_ENABLEDne prouve pas la disponibilité du fournisseur ;getEconomy()peut être nul - API d'économie : utilisez les méthodes de
EconomyHandler(et nonVaultCompatibilitydirectement) - Opérations prises en charge : ajout, soustraction, vérification, crédit avec vérification, retrait avec vérification pour un achat et remboursement d'achat (la définition directe du solde est désactivée)
- Toute modification de solde doit s'exécuter sur le thread du serveur, pour un joueur dont les données EliteMobs sont chargées (
EconomyHandler.isReady) ; sinon, elle lève uneIllegalStateException. tryCredit,tryWithdrawetrefundPaymentlèvent uneIllegalArgumentExceptionpour un montant négatif ou non fini, et renvoientfalselorsque Vault refuse la transaction ou qu'une autre modification est déjà en cours pour ce joueur.tryCreditprélève d'abord la dette de jeu et n'enregistre la nouvelle dette qu'une fois le dépôt accepté par Vault ;refundPaymentévite le prélèvement de la dette.addCurrencyetsubtractCurrencylèvent uneIllegalStateExceptionlorsque le fournisseur refuse la modification, au lieu d'échouer silencieusement.- Précision de la monnaie : le système interne utilise 2 décimales
- Aucun repli en cours d'exécution : lorsque
VAULT_ENABLEDest vrai,EconomyHandlerdélègue toujours à Vault ; il n'y a pas de bascule automatique vers l'économie interne
Emplacement du code source :
- src/main/java/com/magmaguy/elitemobs/economy/VaultCompatibility.java
- src/main/java/com/magmaguy/elitemobs/economy/EconomyHandler.java
EliteMobs utilise VaultAPI 1.7 comme dépendance uniquement à la compilation. Le fichier JAR du plugin Vault doit être présent sur le serveur en cours d'exécution.