Skip to content

Commit c5188ca

Browse files
KaupenjoeKaupenjoe
authored andcommitted
villager trades
1 parent 0a0907e commit c5188ca

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

src/main/java/net/kaupenjoe/tutorialmod/event/ModEvents.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,37 @@
11
package net.kaupenjoe.tutorialmod.event;
22

3+
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
34
import net.kaupenjoe.tutorialmod.TutorialMod;
5+
import net.kaupenjoe.tutorialmod.item.ModItems;
46
import net.kaupenjoe.tutorialmod.item.custom.HammerItem;
57
import net.kaupenjoe.tutorialmod.potion.ModPotions;
8+
import net.kaupenjoe.tutorialmod.villager.ModVillagers;
69
import net.minecraft.core.BlockPos;
710
import net.minecraft.network.chat.Component;
811
import net.minecraft.server.level.ServerPlayer;
912
import net.minecraft.world.effect.MobEffectInstance;
1013
import net.minecraft.world.effect.MobEffects;
1114
import net.minecraft.world.entity.animal.Sheep;
15+
import net.minecraft.world.entity.npc.VillagerProfession;
16+
import net.minecraft.world.entity.npc.VillagerTrades;
1217
import net.minecraft.world.entity.player.Player;
18+
import net.minecraft.world.item.Item;
1319
import net.minecraft.world.item.ItemStack;
1420
import net.minecraft.world.item.Items;
1521
import net.minecraft.world.item.alchemy.PotionBrewing;
1622
import net.minecraft.world.item.alchemy.Potions;
23+
import net.minecraft.world.item.trading.ItemCost;
24+
import net.minecraft.world.item.trading.MerchantOffer;
1725
import net.neoforged.bus.api.SubscribeEvent;
1826
import net.neoforged.fml.common.EventBusSubscriber;
1927
import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent;
2028
import net.neoforged.neoforge.event.entity.living.LivingDamageEvent;
2129
import net.neoforged.neoforge.event.level.BlockEvent;
30+
import net.neoforged.neoforge.event.village.VillagerTradesEvent;
31+
import net.neoforged.neoforge.event.village.WandererTradesEvent;
2232

2333
import java.util.HashSet;
34+
import java.util.List;
2435
import java.util.Set;
2536

2637
@EventBusSubscriber(modid = TutorialMod.MOD_ID, bus = EventBusSubscriber.Bus.GAME)
@@ -69,4 +80,53 @@ public static void onBrewingRecipeRegister(RegisterBrewingRecipesEvent event) {
6980

7081
builder.addMix(Potions.AWKWARD, Items.SLIME_BALL, ModPotions.SLIMEY_POTION);
7182
}
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+
}
72132
}

0 commit comments

Comments
 (0)