Trade-Offers
Peringatan
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!
Topik ini mencakup ingame : javadoc: TradeOffer yang ditawarkan oleh : javadoc: ` Villager` s / : javadoc: Merchant s.
Pedagang
`` Merchant`` adalah wadah untuk TradeOffers`. Varian yang paling umum adalah `` Villager``. Antarmuka `` Merchant`` dapat digunakan untuk membuka jendela perdagangan.
TradeOffers` dapat ditambahkan ke dan dihapus dari` Merchants` menggunakan : javadoc: ` TradeOfferData`.
Pengorbanan
Perdagangan tawarkan terdiri dari
a primary/first buying ItemStackSnapshot
sebuah pembelian sekunder opsional ItemStackSnapshot`
sebuah penjualan `` ItemStackSnapshot``
sudah digunakan menggunakan
maksimal yang tersedia menggunakan
bendera untuk menunjukkan apakah pengalaman bola-bola yang melahirkan di perdagangan
TradeOffers` dapat dibuat menggunakan` Builder` atau a : javadoc: ` TradeOfferGenerator`.
TradeOfferBuilder
TradeOfferBuilders` terutama digunakan jika Anda ingin secara dinamis membuat` TradeOffers` on the fly.
Blok kode berikut membangun sebuah `` TradeOffer` baru yang memungkinkan `` Pemain`` untuk menukar lima `` DIRT`` menjadi tiga item blok `` GRASS``. Penawaran perdagangan ini memiliki empat kegunaan awal, setelah itu `` Merchant` mungkin memerlukan waktu untuk menawarkan `` TradeOffer` lagi ini.
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.
Catatan
Daftar TradeOffer` di` Penduduk Desa mungkin dihasilkan dengan malas saat inventaris perdagangan dibuka untuk pertama kalinya.
TradeOfferGenerator
TradeOfferGenerators adalah template sederhana untuk 'TradeOffers` baru. Mereka adalah varian dari `` TradeOfferListMutator`` yang hanya akan menambahkan entri baru dan tidak mengubah atau menghapus TradeOffers yang ada di desa tersebut.
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();
TradeOfferGenerator ini secara acak akan menghasilkan` TradeOffers` yang akan
beli 5-8 `` DIRT``
jual 5 `` GRASS``
memiliki 2-4 kegunaan awal yang tersisa
5 penggunaan maksimal
Kesempatan yang dihasilkan '' TradeOffer'' akan memberikan pengalaman adalah 50%.
Catatan
Anda dapat menggunakan '' ItemStackGenerators'' untuk secara dinamis menerapkan pesona atau data khusus lainnya untuk membeli dan menjual barang-barang.
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);
Terendah specifiable tingkat-up mutator adalah tingkat 1. Ini setara dengan yang baru spawned '' Villager''.
Catatan
Perubahan pada `` VillagerRegistry`` akan hilang saat restart server dan tidak akan berdampak pada `` TradeOffers`` dari `` penduduk desa` yang telah diratakan di masa lalu.