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

Peringatan

Simpan layanan ini didalam sebuah local variable daripada sebuah member variable, karena penyedia (pelaksana) dapat mengubah poin manapun. Jika anda harus meletakkannya di sebuah member variable, untuk alasan apapun, gunakan ChangeServiceProviderEvent untuk menyimpan pembaruan pelaksanaan.

Catatan

Tidak seperti layanan lain, anda harus mencoba untuk menggunakan ServiceManager#provide(Class) daripada ServiceManager#provideUnchecked(Class) karena Sponge tidak menyediakan pelaksanaan dasar dari EconomyService,dan oleh akrena itu hal tersebut tidak dijamin untuk ada.

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

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: