Posted May 1, 20241 yr i recheck the kapenjoe tutorial from another stance and actually manage to make custom trades for the villagers and the trader Spoiler //########## ########## ########## ########## //########## ########## ########## ########## //########## ########## ########## ########## //########## ########## ########## ########## @SubscribeEvent public static void addCustomTrades(VillagerTradesEvent event) { if (event.getType() == VillagerProfession.FLETCHER) { System.out.println("\n\n### VillagerProfession.FLETCHER \n\n"); Int2ObjectMap<List<VillagerTrades.ItemListing>> trades = event.getTrades(); int villagerLevel = 1; trades.get(villagerLevel).add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 1), //Costo en esmeraldas new ItemStack(ItemInit.ARROW_STEEL.get(), 12) //producto en venta , 16, 3, 0.03F) //stock de articulos, villager experienece, price multiplier ); villagerLevel = 2; trades.get(villagerLevel).add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 4), //Costo en esmeraldas new ItemStack(ItemInit.BOW_CARBON.get(), 1) //producto en venta , 16, 3, 0.05F) //stock de articulos, villager experienece, price multiplier ); villagerLevel = 3; trades.get(villagerLevel).add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 6), //Costo en esmeraldas new ItemStack(ItemInit.CROSSBOW_CARBON.get(), 1) //producto en venta , 16, 3, 0.05F) //stock de articulos, villager experienece, price multiplier ); } if (event.getType() == VillagerProfession.TOOLSMITH) { System.out.println("\n\n### VillagerProfession.TOOLSMITH \n\n"); Int2ObjectMap<List<VillagerTrades.ItemListing>> trades = event.getTrades(); int villagerLevel = 1; trades.get(villagerLevel).add((trader, rand) -> new MerchantOffer( new ItemStack(Items.CHARCOAL, 16), new ItemStack(Items.EMERALD, 1), 16, 100, 0.02F) ); villagerLevel = 1; trades.get(villagerLevel).add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 1), new ItemStack(Items.RAW_IRON, 6), new ItemStack(ItemInit.INGOT_STEEL.get(), 6), 1024, 100, 0.02F) ); villagerLevel = 1; trades.get(villagerLevel).add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 1), new ItemStack(ItemInit.STICK_TNT.get(), 8), 1024, 100, 0.02F) ); ItemStack stack = new ItemStack(BlockInit.HARDCASE.get().asItem(), 1); //Nbt_Helper nh = new Nbt_Helper(); stack.getCapability(bi_c_provider.BIHANDLER).ifPresent(ih -> { //bi_handler ih = briefcase_blockitem.get_itemhandler(stack); ih.LootTable = "DrillSet"; ih.save(); ih.print(); }); villagerLevel = 1; trades.get(villagerLevel).add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 48), //Costo en esmeraldas stack //producto en venta , 16, 100, 0.05F) ); //stock de articulos, ????, exp } } //########## ########## ########## ########## @SubscribeEvent public static void addCustomWandererTrades(WandererTradesEvent event) { List<VillagerTrades.ItemListing> generic = event.getGenericTrades(); List<VillagerTrades.ItemListing> rare = event.getRareTrades(); System.out.println("\n\n### addCustomWandererTrades( generic " + generic.size() + ")"); System.out.println("\n\n### addCustomWandererTrades( rare " + rare.size() + ")"); generic.clear(); generic.add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 1), new ItemStack(BlockInit.POTTED_GREEN_HERB.get().asItem(), 1), 12, 10, 0.02F) //stock de articulos, villager experienece, price multiplier ); generic.add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 2), new ItemStack(BlockInit.POTTED_RED_HERB.get().asItem(), 1), 4, 10, 0.02F) ); generic.add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 6), new ItemStack(BlockInit.POTTED_BLUE_HERB.get().asItem(), 1), 2, 10, 0.02F) ); } seems like the wanderer has 64 normal trades and 6 especial ### addCustomWandererTrades( generic 64) ### addCustomWandererTrades( rare 6) ################################################## the problem is that the 3 custome trades i add rarely gets loaded in the wanderer offered item list but are there if i delete the list whit generic.clear() before adding mi things then only mi things get loaded an a ice cube i dont know where is coming generic.add((trader, rand) -> new MerchantOffer( new ItemStack(Items.EMERALD, 6), new ItemStack(BlockInit.POTTED_BLUE_HERB.get().asItem(), 2), 2, 10, 0.02F) ); it dont seems to be a weight variable to increase the possibility of mi custom trades ######################### what i want is to increase the chance of mi custome trades to be vissible how can i do that....
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.