Trade-Offers
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
pembelian primer / pertama : javadoc: 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
J : javadoc: TradeOfferListMutator adalah antarmuka yang dipanggil saat` jumlah penduduk di tingkat desa. Ini bisa digunakan untuk mengganti 'TradeOffers yang ada (tingkat yang lebih tinggi) dan menambahkan' TradeOffers` baru. Simplist dan hanya API yang disediakan variannya adalah `` TradeOfferGenerator``. Berbeda `` TradeOfferListMutators`` untuk setiap level dan `` Career`` dapat dikonfigurasi di : javadoc: 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
'' VillagerRegistry'' dapat diperoleh dari :javadoc: 'GameRegistry'. Ini akan digunakan untuk mengkonfigurasi '' TradeOfferListMutator'' yang akan diterapkan pada '' Villager'' di 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.