Menggunakan API Ekonomi

API Ekonomi menyatukan seluruh plugin ekonomu dibawah satu API. Ini artinya plugin manapun yang menggunakan API ekonomi akan cocok dengan seluruh plugin ekonomi yang menjalankan API tersebut. Laman ini menuntun anda melewati tata cara penggunaan API Ekonomi di plugin anda sendiri.

Memuat EconomyService

Dalam rangka memanfaatkan API Ekonomi, pertama anda harus memuat EconomyService class menggunakan ServiceManager.

Peringatan

Harap dicatat bahwa anda perlu memperhatikan game states yang berbeda ketika server sedang dimulai, memberhentikan atau menjalankan ketika penggunaan layanan seperti API ekonomi. Lihatlah pada halaman Layanan untuk informasi lebih lanjut.

Contoh: Memuat 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();

Menggunakan EconomyService

Setelah memuat EconomyService dan menetapkannya kedalam variabel, anda siap untuk mengakses seluruh fitur dari API Ekonomi yang ditawarkan.

Contoh: Mendapatkan saldo pengguna

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

Beberapa :javadoc: `Account`methods membutuhkan variabel seperti:

  • Mata uang: Mata uang yang terlibat dalam pertukaran

  • Penyebab: Apa yang menyebabkan perubahan pada akun

  • Konteks: Konteks bahwa perubahan itu terjadi di

Ini adalah untuk penggunaan yg lebih lanjut, tapi masih harus diisi. Di bawah ini adalah daftar dari nilai dasar yang diterima:

  • Currency: EconomyService#defaultCurrency()

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

  • Context: new HashSet<Context>()