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 al

  • 5 GRASS sat

  • geriye 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.