diff options
Diffstat (limited to 'patch-remap/og/net/minecraft/world/entity/npc/EntityVillagerTrader.patch')
-rw-r--r-- | patch-remap/og/net/minecraft/world/entity/npc/EntityVillagerTrader.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/entity/npc/EntityVillagerTrader.patch b/patch-remap/og/net/minecraft/world/entity/npc/EntityVillagerTrader.patch new file mode 100644 index 0000000000..13fa1f829d --- /dev/null +++ b/patch-remap/og/net/minecraft/world/entity/npc/EntityVillagerTrader.patch @@ -0,0 +1,42 @@ +--- a/net/minecraft/world/entity/npc/EntityVillagerTrader.java ++++ b/net/minecraft/world/entity/npc/EntityVillagerTrader.java +@@ -47,6 +47,13 @@ + import net.minecraft.world.phys.Vec3D; + import org.apache.commons.lang3.tuple.Pair; + ++// CraftBukkit start ++import org.bukkit.Bukkit; ++import org.bukkit.craftbukkit.inventory.CraftMerchantRecipe; ++import org.bukkit.entity.AbstractVillager; ++import org.bukkit.event.entity.VillagerAcquireTradeEvent; ++// CraftBukkit end ++ + public class EntityVillagerTrader extends EntityVillagerAbstract { + + private static final int NUMBER_OF_TRADE_OFFERS = 5; +@@ -56,6 +63,7 @@ + + public EntityVillagerTrader(EntityTypes<? extends EntityVillagerTrader> entitytypes, World world) { + super(entitytypes, world); ++ this.setDespawnDelay(48000); // CraftBukkit - set default from MobSpawnerTrader + } + + @Override +@@ -136,7 +144,16 @@ + MerchantRecipe merchantrecipe = villagertrades_imerchantrecipeoption.getOffer(this, this.random); + + if (merchantrecipe != null) { +- merchantrecipelist.add(merchantrecipe); ++ // CraftBukkit start ++ VillagerAcquireTradeEvent event = new VillagerAcquireTradeEvent((AbstractVillager) getBukkitEntity(), merchantrecipe.asBukkit()); ++ // Suppress during worldgen ++ if (this.valid) { ++ Bukkit.getPluginManager().callEvent(event); ++ } ++ if (!event.isCancelled()) { ++ merchantrecipelist.add(CraftMerchantRecipe.fromBukkit(event.getRecipe()).toMinecraft()); ++ } ++ // CraftBukkit end + } + + } |