|
1 | 1 | package net.kaupenjoe.tutorialmod.event; |
2 | 2 |
|
| 3 | +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; |
3 | 4 | import net.kaupenjoe.tutorialmod.TutorialMod; |
| 5 | +import net.kaupenjoe.tutorialmod.item.ModItems; |
4 | 6 | import net.kaupenjoe.tutorialmod.item.custom.HammerItem; |
5 | 7 | import net.kaupenjoe.tutorialmod.potion.ModPotions; |
| 8 | +import net.kaupenjoe.tutorialmod.villager.ModVillagers; |
6 | 9 | import net.minecraft.core.BlockPos; |
7 | 10 | import net.minecraft.network.chat.Component; |
8 | 11 | import net.minecraft.server.level.ServerPlayer; |
9 | 12 | import net.minecraft.world.effect.MobEffectInstance; |
10 | 13 | import net.minecraft.world.effect.MobEffects; |
11 | 14 | import net.minecraft.world.entity.animal.Sheep; |
| 15 | +import net.minecraft.world.entity.npc.VillagerProfession; |
| 16 | +import net.minecraft.world.entity.npc.VillagerTrades; |
12 | 17 | import net.minecraft.world.entity.player.Player; |
| 18 | +import net.minecraft.world.item.Item; |
13 | 19 | import net.minecraft.world.item.ItemStack; |
14 | 20 | import net.minecraft.world.item.Items; |
15 | 21 | import net.minecraft.world.item.alchemy.PotionBrewing; |
16 | 22 | import net.minecraft.world.item.alchemy.Potions; |
| 23 | +import net.minecraft.world.item.trading.ItemCost; |
| 24 | +import net.minecraft.world.item.trading.MerchantOffer; |
17 | 25 | import net.neoforged.bus.api.SubscribeEvent; |
18 | 26 | import net.neoforged.fml.common.EventBusSubscriber; |
19 | 27 | import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent; |
20 | 28 | import net.neoforged.neoforge.event.entity.living.LivingDamageEvent; |
21 | 29 | import net.neoforged.neoforge.event.level.BlockEvent; |
| 30 | +import net.neoforged.neoforge.event.village.VillagerTradesEvent; |
| 31 | +import net.neoforged.neoforge.event.village.WandererTradesEvent; |
22 | 32 |
|
23 | 33 | import java.util.HashSet; |
| 34 | +import java.util.List; |
24 | 35 | import java.util.Set; |
25 | 36 |
|
26 | 37 | @EventBusSubscriber(modid = TutorialMod.MOD_ID, bus = EventBusSubscriber.Bus.GAME) |
@@ -69,4 +80,53 @@ public static void onBrewingRecipeRegister(RegisterBrewingRecipesEvent event) { |
69 | 80 |
|
70 | 81 | builder.addMix(Potions.AWKWARD, Items.SLIME_BALL, ModPotions.SLIMEY_POTION); |
71 | 82 | } |
| 83 | + |
| 84 | + @SubscribeEvent |
| 85 | + public static void addCustomTrades(VillagerTradesEvent event) { |
| 86 | + if(event.getType() == VillagerProfession.FARMER) { |
| 87 | + Int2ObjectMap<List<VillagerTrades.ItemListing>> trades = event.getTrades(); |
| 88 | + |
| 89 | + trades.get(1).add((entity, randomSource) -> new MerchantOffer( |
| 90 | + new ItemCost(Items.EMERALD, 3), |
| 91 | + new ItemStack(ModItems.GOJI_BERRIES.get(), 18), 6, 3, 0.05f)); |
| 92 | + |
| 93 | + trades.get(1).add((entity, randomSource) -> new MerchantOffer( |
| 94 | + new ItemCost(Items.DIAMOND, 12), |
| 95 | + new ItemStack(ModItems.RADISH.get(), 1), 6, 3, 0.05f)); |
| 96 | + |
| 97 | + trades.get(2).add((entity, randomSource) -> new MerchantOffer( |
| 98 | + new ItemCost(Items.ENDER_PEARL, 1), |
| 99 | + new ItemStack(ModItems.RADISH_SEEDS.get(), 1), 2, 8, 0.05f)); |
| 100 | + } |
| 101 | + |
| 102 | + if(event.getType() == ModVillagers.KAUPENGER.value()) { |
| 103 | + Int2ObjectMap<List<VillagerTrades.ItemListing>> trades = event.getTrades(); |
| 104 | + |
| 105 | + trades.get(1).add((entity, randomSource) -> new MerchantOffer( |
| 106 | + new ItemCost(Items.EMERALD, 2), |
| 107 | + new ItemStack(ModItems.RAW_BISMUTH.get(), 18), 6, 3, 0.05f)); |
| 108 | + |
| 109 | + trades.get(1).add((entity, randomSource) -> new MerchantOffer( |
| 110 | + new ItemCost(Items.DIAMOND, 16), |
| 111 | + new ItemStack(ModItems.RADIATION_STAFF.get(), 1), 6, 3, 0.05f)); |
| 112 | + |
| 113 | + trades.get(2).add((entity, randomSource) -> new MerchantOffer( |
| 114 | + new ItemCost(Items.ENDER_PEARL, 2), |
| 115 | + new ItemStack(ModItems.BISMUTH_SWORD.get(), 1), 2, 8, 0.05f)); |
| 116 | + } |
| 117 | + } |
| 118 | + |
| 119 | + @SubscribeEvent |
| 120 | + public static void addWanderingTrades(WandererTradesEvent event) { |
| 121 | + List<VillagerTrades.ItemListing> genericTrades = event.getGenericTrades(); |
| 122 | + List<VillagerTrades.ItemListing> rareTrades = event.getRareTrades(); |
| 123 | + |
| 124 | + genericTrades.add((entity, randomSource) -> new MerchantOffer( |
| 125 | + new ItemCost(Items.EMERALD, 16), |
| 126 | + new ItemStack(ModItems.KAUPEN_SMITHING_TEMPLATE.get(), 1), 1, 10, 0.2f)); |
| 127 | + |
| 128 | + rareTrades.add((entity, randomSource) -> new MerchantOffer( |
| 129 | + new ItemCost(Items.NETHERITE_INGOT, 1), |
| 130 | + new ItemStack(ModItems.BAR_BRAWL_MUSIC_DISC.get(), 1), 1, 10, 0.2f)); |
| 131 | + } |
72 | 132 | } |
0 commit comments