Usando el API de Economía

El API Economy unifica todos los plug-ins economy bajo un API. Esto significa que cualquier plug-in usando el API Economy será compatible con todos los plug-ins economy que implementen dicho API. Esta página le guiará en los pasos para el uso del API Economy en su propio plug-in.

Cargando EconomyService

Si desea utilizar el API Economy, primero debe cargar la clase :javadoc:`EconomyService`usando el :javadoc:`ServiceManager`.

Advertencia

Por favor, note que debe prestar atención a los diferentes “estados del juego” mientras el servidor está cargando, deteniéndose o ejecutándose cuando use servicios como el Economy API. Para más información, por favor diríjase a :doc:`/plugin/services.

Ejemplo: Cargando EconomyService

import org.spongepowered.api.service.economy.EconomyService;
import org.spongepowered.api.Sponge;

Optional<EconomyService> serviceOpt = Sponge.getServiceManager().provide(EconomyService.class);
if (!serviceOpt.isPresent()) {
    // handle there not being an economy implementation
}
EconomyService economyService = serviceOpt.get();

Advertencia

Mantenga este servicio en una variable local en lugar de en una variable “miembro” ya que el proveedor (implementación) podría cambiar en cualquier momento. Si por algún motivo necesita alojarlo en una variable miembro, use :javadoc: ChangeServiceProviderEvent para mantener la implementación actualizada.

Nota

A diferencia de otros servicios, debería intentar usar ServiceManager#provide(Class) en lugar de ServiceManager#provideUnchecked(Class) porque Sponge no proporciona una implementación por defecto del EconomyService, y por esto no se garantiza que exista.

Usando EconomyService

Luego de cargar el EconomyService y asignarlo a una variable, usted está listo para acceder a todas las características que el API Economy tiene para ofrecer.

Ejemplo: Conseguir el balance de un jugador

import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.service.economy.EconomyService;
import org.spongepowered.api.service.economy.account.UniqueAccount;
import java.math.BigDecimal;
import java.util.Optional;

Optional<UniqueAccount> uOpt = economyService.getOrCreateAccount(player.getUniqueId());
if (uOpt.isPresent()) {
    UniqueAccount acc = uOpt.get();
    BigDecimal balance = acc.getBalance(economyService.getDefaultCurrency());
}

Algunos métodos de Account requieren variables como:

  • Moneda: La moneda involucrada en el intercambio

  • Causa: Lo que causó el cambio a la cuenta

  • Contexto: El contexto en el que ocurrió el cambio

Estos son para usos más avanzados, pero aún debe ser llenado. Aquí abajo está un lista de valores por defecto aceptables: