PaperMC/paper-server/nms-patches/EntityVillagerTrader.patch
CraftBukkit/Spigot 932b0a5bf6 #802: Add methods to modify despawn delay for wandering villagers
By: DiamondDagger590 <diamonddagger590@gmail.com>
2021-02-15 19:30:15 +11:00

41 lines
1.6 KiB
Diff

--- a/net/minecraft/server/EntityVillagerTrader.java
+++ b/net/minecraft/server/EntityVillagerTrader.java
@@ -2,6 +2,12 @@
import java.util.EnumSet;
import javax.annotation.Nullable;
+// 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 {
@@ -12,6 +18,7 @@
public EntityVillagerTrader(EntityTypes<? extends EntityVillagerTrader> entitytypes, World world) {
super(entitytypes, world);
this.attachedToPlayer = true;
+ this.u(48000); // CraftBukkit - set default from MobSpawnerTrader
}
@Override
@@ -89,7 +96,16 @@
MerchantRecipe merchantrecipe = villagertrades_imerchantrecipeoption.a(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
}
}