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>()