Utiliser l’API Economy

L’API Economy unifie tous les plugins d’économie sous une seule API. Ce qui signifie que n’importe quel plugin utilisant l’API Economy sera compatible avec tous les plugins implémentant ladite API. Cette page vous aidera à utiliser l’API Economy dans votre plugin.

Charger l’EconomyService

Afin d’utiliser l’API Economie, vous devez d’abord charger la classe EconomyService en utilisant le ServiceManager.

Avertissement

Notez que vous devrez faire attention aux différents game states quand le serveur démarre, s’arrête ou fonctionne en utilisant les service. Jetez un œil à la page Services pour plus d’informations.

Exemple: Charger l’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();

Utiliser l’EconomyService

Après avoir chargé le EconomyService et l’avoir assigné à une varibale, vous êtes prêts à accéder à toutes les fonctionnalités que l’API Economie a à offrir.

Exemple : Obtenir le solde d’un joueur

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

Certaines méthodes de la classe Account requièrent des variables comme :

  • Monnaie: La monnaie impliquée dans l’échange

  • Cause: Ce qui a causé le changement dans le compte

  • Context: Le contexte dans lequel le changement à pris place

Ces variables sont pour une utilisation plus avancée, mais doivent quand même être précisées. Voici une liste des valeurs par défaut acceptables:

  • Currency: EconomyService#defaultCurrency()

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

  • Context: new HashSet<Context>()