Ekonomi API’sini kullanmak
Ekonomi API’si tüm ekonomi eklentilerini bir API altında birleştirir. Bu, Ekonomi API’sini kullanan herhangi bir eklenti, sözü geçen API’yi uygulayan tüm ekonomi eklentileri ile uyumlu olacak demektir. Bu sayfa, Ekonomi API’sini kendi eklentinizde kullanma adımlarıyla ilgili size yol gösterir.
EconomyService’i yüklemek
Economy API’sini kullanmak için önce ServiceManager kullanarak :javadoc:`EkonomyService` sınıfını yüklemelisiniz.
Uyarı
Lütfen, sunucunun başlatılması, durdurulması veya Ekonomi API’si gibi hizmetleri kullanırken farklı oyun durumlarına
dikkat etmeniz gerektiğini unutmayın. Daha fazla bilgi için Servisler sayfasına göz atın.
Örnek: Economyservice’i yüklemek
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();
Uyarı
Sağlayıcı (uygulama) herhangi bir noktada değişebileceğinden, bu hizmeti üye değişken yerine yerel bir değişkende tutun. Bir üye değişkene yerleştirmeniz gerekiyorsa, ne sebeple olursa olsun, uygulamanın güncellenmesini sağlamak için ChangeServiceProviderEvent kullanın.
Not
Diğer servislerin aksine, javadoc:ServiceManager#provideUnchecked (java.lang.Class) ‘yerine :javadoc: ServiceManager#provide (java.lang.Class)`denemeniz gerekir. Çünkü Sponge varsayılan bir uygulama sağlamamaktadır. EconomyService, ve dolayısıyla varlığının garantisi yoktur.
EconomyService’i kullanmak
EconomyService
’i yükledikten ve bir değişkene tayin ettikten sonra, Economy API’nin sunduğu tüm özelliklere erişmeye hazırsınız demektir.
Örnek: Bir oyuncunun bakiyesini alma
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());
}
Bazı Account yöntemleri aşağıdaki gibi değişkenleri gerektirir:
Para Birimi: Döviz alım satımına dahil olan para
Neden: Hesabın değiştirilmesine sebep olan neden
Durum: Değişikliğin meydana geldiği durum
Bunlar daha gelişmiş kullanım içindir, ancak yine de doldurulmalıdır. Aşağıda, kabul edilebilir varsayılan değerlerin bir listesi verilmektedir:
Para birimi: EconomyService#getDefaultCurrency()
Neden:
Cause.source(myPlugin).build()
Durum:
new HashSet<Context>()