From 37e66685cf13319e5f40f54c06b1ea4a6eea868e 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 | 4 ++++ src/main/java/net/pl3x/purpur/PurpurConfig.java | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java index a53decb2c..c3d805d07 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -25,6 +25,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,9 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @Override protected void initPathfinder() { this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur + if (net.pl3x.purpur.PurpurConfig.villagersFollowEmeraldBlocks) { + this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, false, TEMPT_ITEMS)); + } } // Purpur end diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 46dc8cf79..81f41ccc7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -255,10 +255,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 largeEnderChests = true; -- 2.24.0