From 0a7cb9e8304d9aebdda3063c6d1076a25e804bce Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 29 Nov 2019 22:10:12 -0600 Subject: [PATCH] Villagers follow emerald blocks --- src/main/java/net/minecraft/server/EntityVillager.java | 10 ++++++++++ src/main/java/net/pl3x/purpur/PurpurConfig.java | 2 ++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java index 8b036c3b53..22b6e02895 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -29,6 +29,7 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; public class EntityVillager extends EntityVillagerAbstract implements ReputationHandler, VillagerDataHolder { + private static final RecipeItemStack TEMPT_ITEMS = RecipeItemStack.a(Blocks.EMERALD_BLOCK.getItem()); // Purpur private static final DataWatcherObject bz = DataWatcher.a(EntityVillager.class, DataWatcherRegistry.q); public static final Map bx = ImmutableMap.of(Items.BREAD, 4, Items.POTATO, 1, Items.CARROT, 1, Items.BEETROOT, 1); private static final Set bA = ImmutableSet.of(Items.BREAD, Items.POTATO, Items.CARROT, Items.WHEAT, Items.WHEAT_SEEDS, Items.BEETROOT, new Item[]{Items.BEETROOT_SEEDS}); @@ -70,6 +71,15 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation brainTickOffset = getRandom().nextInt(100); // Purpur } + // Purpur start + @Override + protected void initPathfinder() { + if (net.pl3x.purpur.PurpurConfig.villagersFollowEmeraldBlocks) { + this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, false, TEMPT_ITEMS)); + } + } + // Purpur end + @Override public BehaviorController getBehaviorController() { return (BehaviorController) super.getBehaviorController(); // CraftBukkit - decompile error diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 68db82759d..4bf208b35c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -280,10 +280,12 @@ public class PurpurConfig { public static boolean useVillagerBrainTicksOnlyWhenLagging = true; public static int villagerBrainTicks = 20; public static boolean allowLeashingVillagers = false; + public static boolean villagersFollowEmeraldBlocks = false; private static void villagerSettings() { useVillagerBrainTicksOnlyWhenLagging = getBoolean("settings.mobs.villager.use-brain-ticks-only-when-lagging", useVillagerBrainTicksOnlyWhenLagging); villagerBrainTicks = getInt("settings.mobs.villager.brain-ticks", villagerBrainTicks); allowLeashingVillagers = getBoolean("settings.mobs.villager.allow-leashing", allowLeashingVillagers); + villagersFollowEmeraldBlocks = getBoolean("settings.mobs.villager.follow-emerald-blocks", villagersFollowEmeraldBlocks); } public static boolean zombieTargetsTurtleEggs = true; -- 2.24.0.rc1