mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Villagers follow emerald blocks
This commit is contained in:
@@ -237,6 +237,9 @@ mobs
|
||||
* allow-leashing
|
||||
- **default**: false
|
||||
- **description**: Allow players to use leads on villagers (trader not included)
|
||||
* follow-emerald-blocks
|
||||
- **default:** false
|
||||
- **description:** Villagers will be tempted by emerald blocks and follow players holding them
|
||||
|
||||
* zombie
|
||||
* target-turtle-eggs
|
||||
|
||||
58
patches/server/0083-Villagers-follow-emerald-blocks.patch
Normal file
58
patches/server/0083-Villagers-follow-emerald-blocks.patch
Normal file
@@ -0,0 +1,58 @@
|
||||
From 133184a0864f4daec4b4b5752b620781176bf117 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
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 2a848304df..f9da2f1058 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<VillagerData> bC = DataWatcher.a(EntityVillager.class, DataWatcherRegistry.q);
|
||||
public static final Map<Item, Integer> bA = ImmutableMap.of(Items.BREAD, 4, Items.POTATO, 1, Items.CARROT, 1, Items.BEETROOT, 1);
|
||||
private static final Set<Item> bD = 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<EntityVillager> getBehaviorController() {
|
||||
return (BehaviorController<EntityVillager>) 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
|
||||
|
||||
Reference in New Issue
Block a user