Feroov Posted December 17, 2021 Posted December 17, 2021 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 Quote
Luis_ST Posted December 18, 2021 Posted December 18, 2021 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 Quote
Feroov Posted December 18, 2021 Author Posted December 18, 2021 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 Quote
MFMods Posted December 20, 2021 Posted December 20, 2021 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. Quote
Recommended Posts
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.