Ticaret-Teklifleri
Uyarı
These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!
Bu başlık, oyun içi oyunları kapsar: javadoc: TradeOffer s tarafından sunulmaktadır: javadoc:` Villager ‘s /: javadoc: Merchant s.
Tüccar
Bir Merchant
, TradeOffers
için bir barındırıcıdır. En yaygın biçimi Villager``dir. Ticaret pencerelerini açmak için ``Merchant
arayüzü kullanılabilir.
TradeOffers`, :javadoc:`TradeOfferData kullanılarak ``Merchants``a eklenebilir ve bunlardan çıkarılabilir.
TicaretTeklifi
Bir ticaret teklifi bunlardan oluşur
a primary/first buying ItemStackSnapshot
isteğe bağlı bir ikincil satın alma “ItemStackSnapshot``
“ItemStackSnapshot” satışı
zaten kullanılan kullanır
maksimum kullanılabilir kullanımlar
tecrübe kürelerinin ticarette üretilip üretilmediğini gösteren bir bayrak
TradeOffers
, Builder
veya bir :javadoc:`TradeOfferGenerator`kullanılarak oluşturulabilir.
TradeOfferBuilder
TradeOfferBuilders
çoğunlukla dinamik olarak anında``TradeOffers`` oluşturmak istiyorsanız kullanılır.
Aşağıdaki kod bloğu, Players
ların beş “DIRT” ü, üç “GRASS” blok öğesi ile takas etmesine izin veren yeni bir “TradeOffer” oluşturur. Bu takas önerisinin dört kullanım alanı vardır; bundan sonra “Merchant” ın “TradeOffer” ı tekrar önermek için biraz zamana ihtiyacı olabilir.
TradeOffer offer = TradeOffer.builder()
.firstBuyingItem(ItemStack.of(ItemTypes.DIRT, 5))
.sellingItem(ItemStack.of(ItemTypes.GRASS, 3))
.uses(0)
.maxUses(4)
.canGrantExperience(false)
.build();
TradeOfferListMutator
A TradeOfferListMutator is an interface that is invoked during Villager
level ups.
It can be used to replace existing TradeOffers
(e.g. higher tier) and add new TradeOffers
.
Its simplest and only API provided variant is the TradeOfferGenerator
.
The different TradeOfferListMutators
for each level and Career
can be configured in the VillagerRegistry.
Not
Ticaret envanteri ilk kez açıldığında “Villagers” daki “TradeOffer” listesi kolayca üretilebilir.
TradeOfferGenerator
`` TradeOfferGenerators``, yeni `` TradeOffers`` için basit şablondur. Bunlar, bu köylüdeki varolan hiçbir ‘ ‘TradeOffers’ ‘ ı iptal etmeyecek veya değiştirmeyecek ve sadece yeni girişler ekleyecek ‘ ‘TradeOfferListMutator” ın varyantlarıdır.
TradeOfferGenerator tradeOfferGenerator = TradeOfferGenerator.builder()
.setPrimaryItemGenerator(random -> ItemStack.of(ItemTypes.DIRT, random.nextInt(3) + 5))
.setSellingGenerator(random -> ItemStack.of(ItemTypes.GRASS, 5))
.startingUses(VariableAmount.baseWithVariance(2, 1))
.maxUses(VariableAmount.fixed(5))
.experienceChance(0.5)
.build();
Bu `` TradeOfferGenerator`` rastgele bir şekilde `` TradeOffers`` üretecektir
5-8
DIRT
al5
GRASS
satgeriye kalan 2-4 kullanım ilk kullanıma sahiptir
Maximum 5 kullanım
Üretilen “TradeOffer” ‘ın deneyim kazandırma şansı% 50’dir.
Not
`` ItemStackGenerators`` ‘ı dinamik olarak büyü uygulamak için veya diğer özel verileri alıp satan öğelere uygulayabilirsiniz.
VillagerRegistry
The VillagerRegistry
can be obtained from the GameRegistry. It will be used to configure the
TradeOfferListMutator
that will be applied on a Villager
’s level-up.
VillagerRegistry villagerRegistry = this.game.getRegistry().getVillagerRegistry();
List<TradeOfferListMutator> generators = new ArrayList<>(villagerRegistry.getMutatorsForCareer(Careers.FARMER, 1));
generators.addAll(additionalFarmerLevel1TradeOffers());
villagerRegistry.setMutators(Careers.FARMER, 1, generators);
Özelleştirilebilir en düşük level artırıcı mutator seviye 1’dir. Bu, yeni üretilen “Köylüler” e eşdeğerdir.
Not
“VillagerRegistry” ‘daki değişiklikler sunucu yeniden başlatıldığında kaybolacak ve geçmişte level almış “Villagers” ın “TradeOffers” da herhangi bir etkisi olmayacaktır.