proimpuestos icon

proimpuestos -----

Advanced Tax Wallet System



ProImpuestos Documentation
Advanced Setup Guide • Commands • Permissions • API • Webhooks

[HR][/HR]

1. Información general

ProImpuestos es un plugin para Paper 1.21.1 desarrollado en Java 21. Su objetivo es manejar una bolsa central de impuestos con almacenamiento seguro en MySQL, operaciones asíncronas, retiros atómicos, integración con Vault, historial y API pública para otros plugins.

Code (Text):
Nombre: ProImpuestos
Main class: mcbyte.proImpuestos.ProImpuestos
Versión: 1.0.0
Minecraft: Paper 1.21.1
Java: 21
Build system: Maven
Comando principal: /auroraimpuestos
[HR][/HR]

2. Requisitos

  • Servidor Paper 1.21.1.
  • Java 21.
  • Vault instalado.
  • Plugin de economía compatible con Vault, por ejemplo EssentialsX Economy.
  • Servidor MySQL o MariaDB.

Nota: HikariCP y MySQL Connector/J se empaquetan dentro del JAR usando Maven Shade, por lo que no necesitas instalarlos manualmente en el servidor.

[HR][/HR]

3. Instalación

  1. Compila el plugin con Maven.
  2. Copia el JAR generado en la carpeta /plugins.
  3. Instala Vault y un plugin de economía compatible.
  4. Inicia el servidor una vez para generar la configuración.
  5. Edita plugins/ProImpuestos/config.yml.
  6. Configura los datos de MySQL.
  7. Reinicia el servidor o usa /auroraimpuestos reload.

Comando de compilación:

Code (Bash):
mvn clean package
El JAR final se genera en:

Code (Text):
target/ProImpuestos-1.0.0.jar
[HR][/HR]

4. Configuración de MySQL

Ejemplo de configuración:

Code (YAML):
mysql:
host
: "localhost"
port
: 3306
database
: "aurora"
user
: "root"
password
: "password"
useSSL
: false
allowPublicKeyRetrieval
: true
table-prefix
: "proimpuestos_"

pool
:
maximum-pool-size
: 10
minimum-idle
: 2
connection-timeout-ms
: 10000
idle-timeout-ms
: 600000
max-lifetime-ms
: 1800000
Explicación:

  • host: IP o dominio del servidor MySQL.
  • port: puerto de MySQL, normalmente 3306.
  • database: base de datos donde se crearán las tablas.
  • user: usuario de MySQL.
  • password: contraseña del usuario.
  • table-prefix: prefijo de las tablas del plugin.
  • maximum-pool-size: máximo de conexiones abiertas por HikariCP.
  • minimum-idle: conexiones mínimas en espera.
  • connection-timeout-ms: tiempo máximo esperando una conexión.

[HR][/HR]

5. Tablas creadas

Por defecto, el plugin crea:

Code (Text):
proimpuestos_wallet
proimpuestos_transactions
proimpuestos_wallet guarda el saldo actual de la bolsa.

proimpuestos_transactions guarda el historial completo de movimientos:

  • ID de transacción.
  • Tipo de movimiento.
  • Estado.
  • Monto bruto.
  • Monto neto.
  • Monto quemado.
  • Saldo anterior.
  • Saldo nuevo.
  • Fuente.
  • Motivo.
  • Nombre del actor.
  • UUID del actor.
  • Fecha.

[HR][/HR]

6. Sistema de ingresos

El comando de ingreso registra dinero dentro de la bolsa.

Code (Text):
/auroraimpuestos ingreso <cantidad> <motivo>
Ejemplo:

Code (Text):
/auroraimpuestos ingreso 50000 Impuestos de tiendas del centro
Si la quema está en 5%, al ingresar 50,000:

  • Bruto: 50,000
  • Quemado: 2,500
  • Neto para la bolsa: 47,500

El movimiento se guarda en MySQL y puede enviarse a Discord por webhook.

[HR][/HR]

7. Sistema de egresos

Un egreso retira dinero de la bolsa y lo deposita a un jugador usando Vault.

Retirar hacia ti mismo:

Code (Text):
/auroraimpuestos egreso <cantidad> <motivo>
Ejemplo:

Code (Text):
/auroraimpuestos egreso 10000 Presupuesto para evento policial
Retirar hacia otro jugador:

Code (Text):
/auroraimpuestos egreso <jugador> <cantidad> <motivo>
Ejemplo:

Code (Text):
/auroraimpuestos egreso AndroNeko 25000 Pago de contrato municipal
Seguridad del egreso:

  1. El plugin verifica que Vault esté disponible.
  2. Bloquea la wallet con una transacción SQL.
  3. Comprueba saldo suficiente.
  4. Registra el egreso.
  5. Deposita el dinero al jugador.
  6. Si Vault falla, revierte el egreso.

Esto evita duplicaciones causadas por retiros simultáneos o errores de economía.

[HR][/HR]

8. Consultar saldo

Code (Text):
/auroraimpuestos saldo
Muestra el saldo actual de la bolsa central.

[HR][/HR]

9. Historial

Code (Text):
/auroraimpuestos historial [pagina] [limite]
Ejemplos:

Code (Text):
/auroraimpuestos historial
/auroraimpuestos historial 2
/auroraimpuestos historial 1 15
El límite máximo se controla desde config.yml:

Code (YAML):
historial:
default-limit
: 8
max-limit
: 20
[HR][/HR]

10. Porcentaje de quema

La quema permite destruir un porcentaje de cada ingreso antes de agregarlo a la bolsa.

Code (Text):
/auroraimpuestos quemar <porcentaje>
Ejemplo:

Code (Text):
/auroraimpuestos quemar 5
También se puede configurar en config.yml:

Code (YAML):
impuestos:
burn-percentage
: 5.0
Rango permitido: 0 a 100.

[HR][/HR]

11. Reload

Code (Text):
/auroraimpuestos reload
Recarga la configuración del plugin sin reiniciar el servidor.

Este comando actualiza mensajes, webhooks, porcentaje de quema y configuración general. Para cambios profundos de MySQL, se recomienda reiniciar.

[HR][/HR]

12. Comandos completos

Code (Text):
/auroraimpuestos ingreso <cantidad> <motivo>
/auroraimpuestos egreso <cantidad> <motivo>
/auroraimpuestos egreso <jugador> <cantidad> <motivo>
/auroraimpuestos saldo
/auroraimpuestos historial [pagina] [limite]
/auroraimpuestos quemar <porcentaje>
/auroraimpuestos reload
Alias disponibles:

Code (Text):
/auroraimpuesto
/impuestos
/proimpuestos
/pimpuestos
Subcomandos alternativos:

Code (Text):
ingreso, add, deposito
egreso, retirar, withdraw
saldo, balance, bolsa
quemar, burn
historial, history
reload, recargar
[HR][/HR]

13. Permisos

Code (Text):
proimpuestos.admin
Permite acceso completo.

Code (Text):
proimpuestos.ingreso
Permite registrar ingresos manuales.

Code (Text):
proimpuestos.egreso
Permite retirar dinero hacia uno mismo.

Code (Text):
proimpuestos.egreso.others
Permite retirar dinero hacia otro jugador.

Code (Text):
proimpuestos.saldo
Permite consultar el saldo.

Code (Text):
proimpuestos.quemar
Permite cambiar el porcentaje de quema.

Code (Text):
proimpuestos.reload
Permite recargar la configuración.

Code (Text):
proimpuestos.historial
Permite consultar el historial.

Permisos legacy:

Code (Text):
aurora.impuestos.egresos
aurora.impuestos.saldo
[HR][/HR]

14. Webhooks de Discord

ProImpuestos permite enviar notificaciones a Discord por tipo de movimiento.

Configuración:

Code (YAML):
webhooks:
enabled
: true
username
: "ProImpuestos"
avatar-url
: ""
timeout-ms
: 7000

ingreso
:
enabled
: true
url
: ""
content
: ""
title
: "Ingreso de impuestos"
color
: 5763719

egreso
:
enabled
: true
url
: ""
content
: ""
title
: "Egreso de impuestos"
color
: 15548997

cancelado
:
enabled
: true
url
: ""
content
: ""
title
: "Movimiento revertido"
color
: 10038562
Tipos de webhook:

  • ingreso: cuando entra dinero a la bolsa.
  • egreso: cuando sale dinero de la bolsa.
  • cancelado: cuando un egreso se revierte.

Los webhooks usan embeds con información de la transacción, montos, balance, motivo y actor.

[HR][/HR]

15. Mensajes personalizables

Los mensajes se editan desde config.yml.

Ejemplo:

Code (YAML):
mensajes:
prefix
: "&6[ProImpuestos]&f "
sin-permiso
: "%prefix%&cNo tienes permiso para usar esto."
procesando
: "%prefix%&7Procesando operación..."
saldo
: "%prefix%Saldo de la bolsa: &a$%saldo%"
Placeholders internos disponibles en mensajes:

Code (Text):
%prefix%
%bruto%
%neto%
%quemado%
%saldo%
%cantidad%
%player%
%motivo%
%porcentaje%
%pagina%
%id%
%fecha%
%tipo%
%estado%
%actor%
[HR][/HR]

16. API para otros plugins

ProImpuestos expone una API pública mediante Bukkit ServicesManager.

Obtener la API:

Code (Java):
RegisteredServiceProvider <ProImpuestosApi > provider =
Bukkit. getServicesManager ( ). getRegistration (ProImpuestosApi. class ) ;

if (provider == null ) {
return ;
}

ProImpuestosApi api = provider. getProvider ( ) ;
Registrar un ingreso:

Code (Java):
api. registerIncome (
BigDecimal. valueOf ( 1000 ),
"ProStores",
"Compra en tienda de minería",
player. getName ( ),
player. getUniqueId ( )
). thenAccept (result -> {
if (result. success ( ) ) {
Bukkit. getLogger ( ). info ( "Impuesto registrado. Saldo: " + result. balance ( ) ) ;
}
} ) ;
Registrar un egreso interno:

Code (Java):
api. registerExpense (
BigDecimal. valueOf ( 5000 ),
"MiPlugin",
"Pago interno autorizado",
player. getName ( ),
player. getUniqueId ( )
). thenAccept (result -> {
if (result. success ( ) ) {
Bukkit. getLogger ( ). info ( "Egreso registrado: " + result. transaction ( ). id ( ) ) ;
}
} ) ;
Consultar saldo:

Code (Java):
api. getBalance ( ). thenAccept (balance -> {
Bukkit. getLogger ( ). info ( "Saldo de impuestos: " + balance ) ;
} ) ;
Consultar historial:

Code (Java):
api. getHistory ( 1, 10 ). thenAccept (history -> {
for (TaxTransaction tx : history ) {
Bukkit. getLogger ( ). info ( "#" + tx. id ( ) + " " + tx. type ( ) + " " + tx. amount ( ) ) ;
}
} ) ;
Métodos disponibles:

Code (Java):
CompletableFuture <TaxTransactionResult > registerIncome (
BigDecimal grossAmount,
String source,
String reason,
String actorName,
UUID actorUuid
) ;

CompletableFuture <TaxTransactionResult > registerExpense (
BigDecimal amount,
String source,
String reason,
String actorName,
UUID actorUuid
) ;

CompletableFuture <TaxTransactionResult > cancelExpense (
long transactionId,
String cancelReason
) ;

CompletableFuture <BigDecimal > getBalance ( ) ;

CompletableFuture <List <TaxTransaction >> getHistory (
int page,
int limit
) ;

double getBurnPercentage ( ) ;
[HR][/HR]

17. Ejemplo de integración con una tienda

Supongamos que un jugador compra un item por $10,000 y quieres mandar $1,000 a la bolsa de impuestos.

Code (Java):
BigDecimal tax = BigDecimal. valueOf ( 1000 ) ;

api. registerIncome (
tax,
"ProStores",
"Impuesto por compra de " + itemName,
player. getName ( ),
player. getUniqueId ( )
). thenAccept (result -> {
if ( !result. success ( ) ) {
Bukkit. getLogger ( ). warning ( "No se pudo registrar impuesto: " + result. message ( ) ) ;
return ;
}

```
Bukkit. getLogger ( ). info ( "Impuesto registrado correctamente." ) ;
```

} ) ;
Importante: La API trabaja de forma asíncrona. Si necesitas usar Bukkit API después del resultado, vuelve al hilo principal con el scheduler del servidor.

[HR][/HR]

18. Seguridad y buenas prácticas

  • No entregues proimpuestos.admin a rangos normales.
  • Usa proimpuestos.egreso.others solo para administradores o roles financieros.
  • Activa webhooks para auditar todos los egresos.
  • Usa motivos claros y obligatorios.
  • Configura límites de historial razonables.
  • Haz backups de MySQL.
  • No edites manualmente la tabla wallet sin saber lo que haces.

[HR][/HR]

19. Solución de problemas

Vault no está disponible

Verifica que tengas Vault y un plugin de economía compatible instalado.

Code (Text):
/plugins
No conecta a MySQL

Revisa host, puerto, usuario, contraseña, permisos y firewall.

Los webhooks no llegan

Revisa que la URL esté bien copiada y que enabled esté en true.

El egreso se revierte

Esto significa que la bolsa sí descontó inicialmente, pero Vault no pudo depositar el dinero al jugador. El plugin revierte el movimiento automáticamente.

El historial está vacío

Asegúrate de haber registrado ingresos o egresos correctamente.

[HR][/HR]

20. Migración desde AuroraImpuestos

ProImpuestos usa un esquema nuevo y más seguro.

La tabla antigua:

Code (Text):
impuestos
No se reutiliza automáticamente.

El nuevo esquema usa:

Code (Text):
proimpuestos_wallet
proimpuestos_transactions
Si tienes datos reales en AuroraImpuestos, migra manualmente antes de borrar la tabla antigua.

1. General Information

ProImpuestos is a Paper 1.21.1 plugin built with Java 21. Its purpose is to manage a central tax wallet with safe MySQL storage, asynchronous operations, atomic withdrawals, Vault integration, transaction history, Discord webhooks, and a public API for other plugins.

Code (Text):
Name: ProImpuestos
Main class: mcbyte.proImpuestos.ProImpuestos
Version: 1.0.0
Minecraft: Paper 1.21.1
Java: 21
Build system: Maven
Main command: /auroraimpuestos
[HR][/HR]

2. Requirements

  • Paper 1.21.1 server.
  • Java 21.
  • Vault installed.
  • A Vault-compatible economy plugin, such as EssentialsX Economy.
  • MySQL or MariaDB server.

Note: HikariCP and MySQL Connector/J are shaded inside the final JAR using Maven Shade, so you do not need to install them manually.

[HR][/HR]

3. Installation

  1. Build the plugin using Maven.
  2. Copy the generated JAR into your /plugins folder.
  3. Install Vault and a compatible economy plugin.
  4. Start the server once to generate the configuration.
  5. Edit plugins/ProImpuestos/config.yml.
  6. Configure your MySQL credentials.
  7. Restart the server or use /auroraimpuestos reload.

Build command:

Code (Bash):
mvn clean package
The final JAR will be generated at:

Code (Text):
target/ProImpuestos-1.0.0.jar
[HR][/HR]

4. MySQL Configuration

Example configuration:

Code (YAML):
mysql:
host
: "localhost"
port
: 3306
database
: "aurora"
user
: "root"
password
: "password"
useSSL
: false
allowPublicKeyRetrieval
: true
table-prefix
: "proimpuestos_"

pool
:
maximum-pool-size
: 10
minimum-idle
: 2
connection-timeout-ms
: 10000
idle-timeout-ms
: 600000
max-lifetime-ms
: 1800000
Explanation:

  • host: MySQL server IP or domain.
  • port: MySQL port, usually 3306.
  • database: database where the plugin tables will be created.
  • user: MySQL user.
  • password: MySQL password.
  • table-prefix: prefix used for plugin tables.
  • maximum-pool-size: maximum open connections used by HikariCP.
  • minimum-idle: minimum idle connections.
  • connection-timeout-ms: maximum time waiting for a connection.

[HR][/HR]

5. Created Tables

By default, the plugin creates:

Code (Text):
proimpuestos_wallet
proimpuestos_transactions
proimpuestos_wallet stores the current wallet balance.

proimpuestos_transactions stores the complete transaction history:

  • Transaction ID.
  • Transaction type.
  • Transaction status.
  • Gross amount.
  • Net amount.
  • Burned amount.
  • Previous balance.
  • New balance.
  • Source.
  • Reason.
  • Actor name.
  • Actor UUID.
  • Creation date.

[HR][/HR]

6. Income System

The income command registers money into the central tax wallet.

Code (Text):
/auroraimpuestos ingreso <amount> <reason>
Example:

Code (Text):
/auroraimpuestos ingreso 50000 Downtown shop taxes
If the burn percentage is set to 5%, an income of 50,000 becomes:

  • Gross amount: 50,000
  • Burned amount: 2,500
  • Net amount added to wallet: 47,500

The movement is stored in MySQL and can be sent to Discord through webhooks.

[HR][/HR]

7. Expense System

An expense removes money from the tax wallet and deposits it to a player using Vault.

Withdraw to yourself:

Code (Text):
/auroraimpuestos egreso <amount> <reason>
Example:

Code (Text):
/auroraimpuestos egreso 10000 Police event budget
Withdraw to another player:

Code (Text):
/auroraimpuestos egreso <player> <amount> <reason>
Example:

Code (Text):
/auroraimpuestos egreso AndroNeko 25000 Municipal contract payment
Expense safety flow:

  1. The plugin checks that Vault is available.
  2. Locks the wallet using a SQL transaction.
  3. Checks available balance.
  4. Registers the expense.
  5. Deposits the money to the player.
  6. If Vault fails, the expense is reverted.

This avoids duplications caused by simultaneous withdrawals or economy errors.

[HR][/HR]

8. Balance

Code (Text):
/auroraimpuestos saldo
Shows the current central tax wallet balance.

[HR][/HR]

9. History

Code (Text):
/auroraimpuestos historial [page] [limit]
Examples:

Code (Text):
/auroraimpuestos historial
/auroraimpuestos historial 2
/auroraimpuestos historial 1 15
The maximum limit can be controlled from config.yml:

Code (YAML):
historial:
default-limit
: 8
max-limit
: 20
[HR][/HR]

10. Burn Percentage

The burn system destroys a percentage of every income before adding the net amount to the wallet.

Code (Text):
/auroraimpuestos quemar <percentage>
Example:

Code (Text):
/auroraimpuestos quemar 5
It can also be configured in config.yml:

Code (YAML):
impuestos:
burn-percentage
: 5.0
Allowed range: 0 to 100.

[HR][/HR]

11. Reload

Code (Text):
/auroraimpuestos reload
Reloads the plugin configuration without restarting the server.

This command updates messages, webhooks, burn percentage, and general configuration. For deep MySQL changes, a full restart is recommended.

[HR][/HR]

12. Full Command List

Code (Text):
/auroraimpuestos ingreso <amount> <reason>
/auroraimpuestos egreso <amount> <reason>
/auroraimpuestos egreso <player> <amount> <reason>
/auroraimpuestos saldo
/auroraimpuestos historial [page] [limit]
/auroraimpuestos quemar <percentage>
/auroraimpuestos reload
Available aliases:

Code (Text):
/auroraimpuesto
/impuestos
/proimpuestos
/pimpuestos
Alternative subcommands:

Code (Text):
ingreso, add, deposito
egreso, retirar, withdraw
saldo, balance, bolsa
quemar, burn
historial, history
reload, recargar
[HR][/HR]

13. Permissions

Code (Text):
proimpuestos.admin
Grants full access.

Code (Text):
proimpuestos.ingreso
Allows registering manual income.

Code (Text):
proimpuestos.egreso
Allows withdrawing money to yourself.

Code (Text):
proimpuestos.egreso.others
Allows withdrawing money to another player.

Code (Text):
proimpuestos.saldo
Allows checking the wallet balance.

Code (Text):
proimpuestos.quemar
Allows changing the burn percentage.

Code (Text):
proimpuestos.reload
Allows reloading the configuration.

Code (Text):
proimpuestos.historial
Allows checking transaction history.

Legacy permissions:

Code (Text):
aurora.impuestos.egresos
aurora.impuestos.saldo
[HR][/HR]

14. Discord Webhooks

ProImpuestos can send Discord notifications for each movement type.

Configuration:

Code (YAML):
webhooks:
enabled
: true
username
: "ProImpuestos"
avatar-url
: ""
timeout-ms
: 7000

ingreso
:
enabled
: true
url
: ""
content
: ""
title
: "Tax income"
color
: 5763719

egreso
:
enabled
: true
url
: ""
content
: ""
title
: "Tax expense"
color
: 15548997

cancelado
:
enabled
: true
url
: ""
content
: ""
title
: "Reverted movement"
color
: 10038562
Webhook types:

  • ingreso: triggered when money enters the wallet.
  • egreso: triggered when money leaves the wallet.
  • cancelado: triggered when an expense is reverted.

Webhooks use embeds containing transaction data, amounts, balance, reason, and actor.

[HR][/HR]

15. Custom Messages

Messages can be edited from config.yml.

Example:

Code (YAML):
mensajes:
prefix
: "&6[ProImpuestos]&f "
sin-permiso
: "%prefix%&cYou do not have permission."
procesando
: "%prefix%&7Processing operation..."
saldo
: "%prefix%Tax wallet balance: &a$%saldo%"
Available internal placeholders:

Code (Text):
%prefix%
%bruto%
%neto%
%quemado%
%saldo%
%cantidad%
%player%
%motivo%
%porcentaje%
%pagina%
%id%
%fecha%
%tipo%
%estado%
%actor%
[HR][/HR]

16. Developer API

ProImpuestos exposes a public API through Bukkit ServicesManager.

Get the API:

Code (Java):
RegisteredServiceProvider <ProImpuestosApi > provider =
Bukkit. getServicesManager ( ). getRegistration (ProImpuestosApi. class ) ;

if (provider == null ) {
return ;
}

ProImpuestosApi api = provider. getProvider ( ) ;
Register income:

Code (Java):
api. registerIncome (
BigDecimal. valueOf ( 1000 ),
"ProStores",
"Mining shop purchase",
player. getName ( ),
player. getUniqueId ( )
). thenAccept (result -> {
if (result. success ( ) ) {
Bukkit. getLogger ( ). info ( "Tax registered. Balance: " + result. balance ( ) ) ;
}
} ) ;
Register internal expense:

Code (Java):
api. registerExpense (
BigDecimal. valueOf ( 5000 ),
"MyPlugin",
"Authorized internal payment",
player. getName ( ),
player. getUniqueId ( )
). thenAccept (result -> {
if (result. success ( ) ) {
Bukkit. getLogger ( ). info ( "Expense registered: " + result. transaction ( ). id ( ) ) ;
}
} ) ;
Check balance:

Code (Java):
api. getBalance ( ). thenAccept (balance -> {
Bukkit. getLogger ( ). info ( "Tax balance: " + balance ) ;
} ) ;
Check history:

Code (Java):
api. getHistory ( 1, 10 ). thenAccept (history -> {
for (TaxTransaction tx : history ) {
Bukkit. getLogger ( ). info ( "#" + tx. id ( ) + " " + tx. type ( ) + " " + tx. amount ( ) ) ;
}
} ) ;
Available methods:

Code (Java):
CompletableFuture <TaxTransactionResult > registerIncome (
BigDecimal grossAmount,
String source,
String reason,
String actorName,
UUID actorUuid
) ;

CompletableFuture <TaxTransactionResult > registerExpense (
BigDecimal amount,
String source,
String reason,
String actorName,
UUID actorUuid
) ;

CompletableFuture <TaxTransactionResult > cancelExpense (
long transactionId,
String cancelReason
) ;

CompletableFuture <BigDecimal > getBalance ( ) ;

CompletableFuture <List <TaxTransaction >> getHistory (
int page,
int limit
) ;

double getBurnPercentage ( ) ;
[HR][/HR]

17. Shop Integration Example

Imagine a player buys an item for $10,000 and you want to send $1,000 to the tax wallet.

Code (Java):
BigDecimal tax = BigDecimal. valueOf ( 1000 ) ;

api. registerIncome (
tax,
"ProStores",
"Tax for purchasing " + itemName,
player. getName ( ),
player. getUniqueId ( )
). thenAccept (result -> {
if ( !result. success ( ) ) {
Bukkit. getLogger ( ). warning ( "Could not register tax: " + result. message ( ) ) ;
return ;
}

```
Bukkit. getLogger ( ). info ( "Tax registered successfully." ) ;
```

} ) ;
Important: The API works asynchronously. If you need to use Bukkit API after receiving the result, return to the main server thread using the scheduler.

[HR][/HR]

18. Security and Best Practices

  • Do not give proimpuestos.admin to normal ranks.
  • Use proimpuestos.egreso.others only for admins or financial roles.
  • Enable webhooks to audit all expenses.
  • Use clear and mandatory reasons.
  • Configure reasonable history limits.
  • Back up your MySQL database.
  • Do not manually edit the wallet table unless you know what you are doing.

[HR][/HR]

19. Troubleshooting

Vault is not available

Make sure Vault and a compatible economy plugin are installed.

Code (Text):
/plugins
MySQL does not connect

Check host, port, user, password, permissions, and firewall.

Webhooks are not received

Check that the URL is valid and that enabled is set to true.

The expense is reverted

This means the wallet was initially discounted, but Vault could not deposit the money to the player. The plugin automatically reverted the movement.

History is empty

Make sure income or expenses have been registered successfully.

[HR][/HR]

20. Migration from AuroraImpuestos

ProImpuestos uses a new and safer schema.

The old table:

Code (Text):
impuestos
Is not automatically reused.

The new schema uses:

Code (Text):
proimpuestos_wallet
proimpuestos_transactions
If you have real AuroraImpuestos data, migrate it manually before deleting the old table.

[HR][/HR]

ProImpuestos
Secure tax management for advanced Minecraft roleplay economies.
Resource Information
Author:
----------
Total Downloads: 3
First Release: Jun 12, 2026
Last Update: Jun 12, 2026
Category: ---------------
All-Time Rating:
0 ratings
Find more info at discord.gg...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings