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.server().serviceProvider().economyService();
if (!serviceOpt.isPresent()) {
    // handle there not being an economy implementation
}
EconomyService economyService = serviceOpt.get();

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.findOrCreateAccount(player.getUniqueId());
if (uOpt.isPresent()) {
  UniqueAccount acc = uOpt.get();
  BigDecimal balance = acc.balance(economyService.defaultCurrency());
}

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:

  • Currency: EconomyService#defaultCurrency()

  • Cause: Cause.of(EventContext.builder().add(EventContextKeys.PLUGIN, plugin).build(), plugin)

  • Contexto: new HashSet<Context>()