Integración con Vault
EliteMobs puede usar un proveedor de economía de Vault en lugar de su saldo interno. El plugin compila contra VaultAPI 1.7; instala versiones compatibles de Vault y del plugin de economía en el servidor.
Consideraciones sobre la progresión
La progresión de EliteMobs combina habilidades de arma y armadura, botín y entrenamiento opcional de clases. Normalmente, los jugadores consiguen equipo y moneda mediante el combate de EliteMobs. Introducir dinero de otra economía cambia la rapidez con la que pueden comprar equipo y servicios.
Revisa los precios de las tiendas, el valor de reventa del botín y los servicios de pago antes de conectar una economía externa.
Los requisitos independientes de habilidad siguen aplicándose cuando están habilitados. Vault no concede XP de habilidades, no desbloquea clases ni permite saltarse las pruebas de entrenadores. Si activas la integración, ajusta tu economía a los precios de las tiendas y servicios de EliteMobs para que los ingresos externos no eclipsen las recompensas del combate.
Requisitos
Para usar la integración con Vault, debes tener:
- Un plugin Vault habilitado y compatible con las llamadas de EliteMobs a VaultAPI
- Un plugin de economía que registre un servicio
Economyde Vault - Ambos plugins correctamente configurados y en funcionamiento
EliteMobs detecta Vault habilitado durante la inicialización y selecciona su vía de economía cuando useVault es true. La detección por sí sola no demuestra que se haya encontrado un proveedor de economía.
Configuración
Para habilitar la integración con Vault:
- Asegúrate de que el plugin Vault esté instalado en tu servidor
- Asegúrate de que tu plugin de economía registre su proveedor de Vault antes de que EliteMobs se inicialice
- Abre
EconomySettings.ymlen la carpeta del plugin EliteMobs - Establece
useVault: true - Reinicia el servidor
Ejemplo de configuración:
# Whether to use Vault for the economy instead of the built-in system.
# NOT RECOMMENDED! See: https://wiki.nightbreak.io/EliteMobs/vault
useVault: false
Cómo funciona
Cuando la integración con Vault está activa y tiene un proveedor operativo:
- Las operaciones futuras usan el proveedor de economía de Vault. Los Elite Coins existentes en la base de datos de EliteMobs no se convierten ni se transfieren automáticamente.
- Los jugadores ganan la moneda de tu economía en lugar de Monedas Élite al matar Mobs Élite
- Las transacciones de tienda y otros servicios que cobran moneda usan la economía de tu servidor. Las reparaciones siguen consumiendo chatarra.
- Vault gestiona el saldo de dinero; EliteMobs sigue registrando la deuda de apuestas y la descuenta de los ingresos de EliteMobs antes de depositar el resto.
Operaciones de moneda:
- Depósitos: El dinero se añade al saldo de Vault del jugador
- Retiros: El dinero se elimina del saldo de Vault del jugador
- Comprobaciones de saldo: Consulta el saldo de Vault del jugador
- Establecimiento directo de saldo: DESHABILITADO por seguridad (usa tu plugin de economía)
Durante la inicialización, Vault habilitado junto con useVault: true establece VAULT_ENABLED antes de buscar el proveedor. Por tanto, un proveedor ausente puede dejar el modo Vault activo sin una economía utilizable. Las consultas de saldo entonces advierten y devuelven cero; los depósitos o retiros ordinarios pueden fallar, mientras que las funciones de compra con comprobación devuelven un fallo. Si Vault está ausente o deshabilitado en un arranque nuevo, se conserva la economía interna. Una excepción capturada durante la configuración de Vault también desactiva ese modo.
Una vez activo el modo Vault, no hay cambio automático a la economía interna ni nueva vinculación del proveedor en tiempo de ejecución. Corrige su registro y reinicia antes de aceptar transacciones. currencyName sigue siendo un ajuste visual independiente de EliteMobs; activar Vault no cambia su nombre automáticamente.
Funciones de seguridad
Por motivos de seguridad, EliteMobs NO admite establecer directamente el saldo de moneda de un jugador a través de Vault. Cualquier intento de hacerlo será bloqueado y registrado. Usa los comandos de tu plugin de economía para establecer saldos directamente si es necesario.
Escenario de ejemplo
Supongamos que una recompensa paga 100 monedas y el jugador no tiene deuda de apuestas; es una cantidad ilustrativa, no un pago fijo para todos los mobs de nivel 50.
Sin Vault:
- El jugador mata a un Mob Élite de nivel 50
- Recibe 100 Monedas Élite (almacenadas en la base de datos de EliteMobs)
- Puede gastar Monedas Élite en las tiendas y servicios de EliteMobs
Con Vault:
- El jugador mata a un Mob Élite de nivel 50
- Recibe 100 [moneda de tu economía] (almacenadas en Vault/plugin de economía)
- Puede gastar dinero en EliteMobs y otros sistemas que usen ese proveedor
- Las transferencias de otros jugadores dependen de las funciones del plugin de economía
- La economía está unificada entre todos los plugins
Los ingresos externos pueden acelerar el acceso al equipo y los servicios. Los requisitos de habilidad y los desbloqueos de clase siguen aplicándose de forma independiente.
Solución de problemas
Si la integración con Vault está habilitada pero no funciona:
-
Comprueba los registros del servidor en busca de: "Vault detected." (en una línea de registro de EliteMobs)
- Si falta: el plugin Vault no está instalado o no se está cargando
-
Comprueba la advertencia: "Vault preference detected. This is not the recommended setting."
- Esto es lo esperado cuando la integración con Vault está habilitada: es un recordatorio, no un error
- Si Vault sigue sin funcionar, asegúrate de que tu plugin de economía esté correctamente registrado con Vault
-
Comprueba si aparece: "Player tried to check currency when they had no economy entry"
- Es una advertencia genérica de referencia nula, no una prueba de que falte una cuenta. El propio proveedor de economía guardado puede ser nulo.
- Comprueba que el proveedor estuviera registrado antes de inicializar EliteMobs y después revisa la gestión de cuentas y los registros del plugin de economía.
-
Si está habilitado pero EliteMobs sigue usando Monedas Élite:
- Verifica que la clave de configuración sea exactamente:
useVault: true - Reinicia el servidor tras el cambio de configuración
- Comprueba que haya un plugin de economía registrado con Vault
- Verifica que la clave de configuración sea exactamente:
-
Si los saldos muestran cero o las transacciones fallan pese al mensaje de detección:
- Confirma que el proveedor estuviera disponible durante la inicialización; el mensaje solo confirma Vault.
- Restaura el proveedor y reinicia. EliteMobs no se conecta automáticamente a un proveedor recién registrado.
Para desarrolladores
Si estás desarrollando un complemento o una integración:
- Selección de Vault:
VaultCompatibility.VAULT_ENABLEDno demuestra que el proveedor esté disponible;getEconomy()puede ser nulo - API de economía: Usa los métodos de
EconomyHandler(noVaultCompatibilitydirectamente) - Operaciones admitidas: añadir, restar, consultar, abonar con comprobación, retirar para una compra con comprobación y reembolsar una compra (establecer el saldo está deshabilitado)
- Todo cambio de saldo debe ejecutarse en el hilo del servidor y para un jugador cuyos datos de EliteMobs estén cargados (
EconomyHandler.isReady); de lo contrario, lanzaIllegalStateException. tryCredit,tryWithdrawyrefundPaymentlanzanIllegalArgumentExceptionante un importe negativo o no finito, y devuelvenfalsecuando Vault rechaza la transacción o ya hay otro cambio en curso para ese jugador.tryCreditcobra primero la deuda de apuestas y solo guarda la nueva deuda después de que Vault acepte el depósito;refundPaymentno cobra la deuda.addCurrencyysubtractCurrencylanzanIllegalStateExceptioncuando el proveedor rechaza el cambio, en lugar de fallar en silencio.- Precisión de la moneda: el sistema interno usa 2 decimales
- Sin recurso de respaldo en tiempo de ejecución: cuando
VAULT_ENABLEDes true,EconomyHandlersiempre delega en Vault; no hay cambio automático de vuelta a la economía interna
Ubicación del código fuente:
- src/main/java/com/magmaguy/elitemobs/economy/VaultCompatibility.java
- src/main/java/com/magmaguy/elitemobs/economy/EconomyHandler.java
EliteMobs usa VaultAPI 1.7 como dependencia solo de compilación. El JAR del plugin Vault debe estar presente en el servidor en tiempo de ejecución.