perromercenary00 Posted May 1 Share Posted May 1 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.... Quote Link to comment Share on other sites More sharing options...
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.