RPX Economy
Sistema financiero avanzado para roleplay: banca multicuenta, efectivo físico, datáfonos TPV, suscripciones recurrentes y registro bancario completo.
Introducción
RPX Economy reemplaza el sistema de economía vanilla e introduce banca física y digital. Los ciudadanos gestionan múltiples cuentas, pueden retirar dinero como billetes y monedas físicas, y los negocios cobran mediante datáfonos colocables.
Atención
RPX Economy requiere RPX Core instalado. No es compatible con Vault directamente; usa la API de RPX Economy para interacciones desde otros plugins.
- Cuentas personales y de empresa por ciudadano
- Efectivo físico retiable del banco como ítems (billetes y monedas)
- Datáfonos (TPV) colocables en locales comerciales
- Suscripciones y cobros recurrentes automáticos
- Log bancario completo con timestamps y tipos de transacción
Cuentas Bancarias
Cada ciudadano puede tener múltiples cuentas bancarias. Cada cuenta tiene un ID único, nombre visual, saldo y un flag 'isJobAccount' que indica si pertenece a una empresa/empleo.
- Cuenta personal: asociada directamente al ciudadano. Se crea automáticamente al registrarse.
- Cuenta de empresa: flag isJobAccount=true. Compartida por todos los miembros de un empleo con acceso.
- Cuenta especial: ej. 'inmobiliaria' para recibir pagos de alquiler de RPX RealState.
Consejo
Los admins pueden consultar el historial completo de una cuenta desde el panel de /eco bank → seleccionar cuenta → Historial.
Efectivo Físico
Currency.giveMoney() genera ítems de billetes y monedas en el inventario del jugador. Los jugadores pueden intercambiarlos entre sí o depositarlos en el banco. El sistema calcula automáticamente la combinación óptima de denominaciones.
# economy.yml
bills:
- amount: 1000
material: PAPER
custom-model-data: 2001
name: "<gold>Billete de $1.000"
- amount: 500
material: PAPER
custom-model-data: 2002
name: "<yellow>Billete de $500"
coins:
- amount: 50
material: GOLD_NUGGET
custom-model-data: 2010
name: "<yellow>Moneda de $50"Datáfonos (TPV)
Los datáfonos son bloques con NBT 'is_dataphone'=true que los dueños de negocios colocan en su local. Cuando un cliente interactúa, se le cobra un importe directamente de su cuenta bancaria.
- El admin ejecuta /eco givedataphone <accountId> [jobId] para obtener el ítem.
- Se coloca el datáfono como bloque. Al interactuar, pide al cliente el importe.
- El pago se registra en BankLog con tipo DATAPHONE_PAYMENT.
Atención
El datáfono solo puede cobrar a ciudadanos con cuenta bancaria y saldo suficiente. Sin cuenta, la transacción falla.
Suscripciones Recurrentes
Las suscripciones permiten cobros automáticos periódicos. Se usan principalmente para alquileres (RPX RealState) pero pueden configurarse para cualquier servicio recurrente.
// Desde otro módulo (ej. RPX RealState al aceptar alquiler):
RPXEconomy.getInstance().getSubscriptionManager().subscribe(
"rs_prop_" + prop.getId(), // ID único
"Alquiler: " + prop.getName(), // Nombre visible
prop.getPricePerCycle(), // Importe por ciclo
prop.getCycleDays(), // Cada cuántos días
receiverAccountId, // Cuenta que recibe
payerAccountId // Cuenta que paga
);Información
Si un ciudadano no tiene saldo cuando vence la suscripción, queda marcada como impagada y puede generar una notificación automática.
Comandos
| Comando | Permiso | Descripción |
|---|---|---|
| /eco bank | rpx.eco.use | Abre el selector de cuentas bancarias del personaje activo. |
| /eco getMoney <cantidad> | rpx.eco.admin | Genera efectivo físico (billetes/monedas) por el importe indicado. |
| /eco givedataphone [cuentaId] [jobId] | rpx.eco.admin | Entrega un datáfono vinculado a una cuenta y/o empleo. |
| /pay <jugador> <cantidad> | rpx.eco.use | Paga una cantidad en efectivo a otro jugador directamente. |