Jump to content

How to remove duplicate trades? [1.18.1/1.17]


Recommended Posts

Posted

As you read from the title, I have a mob that extends to custom abstract villager etc (literal same function as wandering trader but modified), everything is fine but sometimes I get same duplicate trades,

how can I fix that? I was possibly thinking something to do with from:

    @Override
    protected void updateTrades() {

        ModVillagerTrades.ItemListing[] avillagertrades$itrade = ModVillagerTrades.CROAKER_TRADES.get(1);
        if (avillagertrades$itrade != null) {
            MerchantOffers merchantoffers = this.getOffers();
            this.addOffersFromItemListings(merchantoffers, avillagertrades$itrade, 9);
            int i = this.random.nextInt(avillagertrades$itrade.length);
            ModVillagerTrades.ItemListing villagertrades$itrade = avillagertrades$itrade[i];
            MerchantOffer merchantoffer = villagertrades$itrade.getOffer(this, this.random);
            if (merchantoffer != null) {
                merchantoffers.add(merchantoffer);
            }
        }
    }

method thats in my entity class

Posted

you add trades to the MerchantOffers twice
since AbstractVillager#addOffersFromItemListings already adds trades to the MerchantOffers, in your case 9
then you add a random 10th trade

Posted
24 minutes ago, Luis_ST said:

you add trades to the MerchantOffers twice
since AbstractVillager#addOffersFromItemListings already adds trades to the MerchantOffers, in your case 9
then you add a random 10th trade

So on my Villager trades class or in this method of mine in my entity class, just a bit confused still so I apologize

Posted

start with an empty collection, then add your trades. it is pretty simple.

instead you pasted wandering trader code which takes 5 (iirc) trades from one list and adds a 6th one from a second list and you plugged your list into that. as a result - you wasted hours trying to find out why this thing doesn't work, but you did initially save 2 minutes by not reading what the pasted code does. nice job.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.