From 33f0bfe7731ec22781e4e268f450b6f575b27a25 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Wed, 10 Jul 2019 20:14:07 -0500 Subject: [PATCH] Allow leashing villagers --- src/main/java/net/minecraft/server/EntityInsentient.java | 1 + src/main/java/net/minecraft/server/EntityVillager.java | 7 +++++++ src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java index 94f43b1e0..23d81fcae 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -1036,6 +1036,7 @@ public abstract class EntityInsentient extends EntityLiving { if (!this.isAlive()) { return false; } else if (this.getLeashHolder() == entityhuman) { + if (world.purpurConfig.allowLeashingVillagers && enumhand == EnumHand.OFF_HAND && this instanceof EntityVillager) return true; // Purpur // CraftBukkit start - fire PlayerUnleashEntityEvent if (CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman).isCancelled()) { ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutAttachEntity(this, this.getLeashHolder())); diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java index 07f7b90f5..d06889844 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -879,4 +879,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation return optional.isPresent() && optional1.isPresent() ? i - ((MinecraftSerializableLong) optional.get()).a() < 24000L && i - ((MinecraftSerializableLong) optional1.get()).a() < 36000L : false; } + + // Purpur - start + @Override + public boolean a(EntityHuman entityhuman) { + return world.purpurConfig.allowLeashingVillagers && !this.isLeashed(); + } + // Purpur - end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index a33eb6773..542e1b329 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -107,6 +107,11 @@ public class PurpurWorldConfig { allowSignColors = getBoolean("allow-sign-colors", allowSignColors); } + public boolean allowLeashingVillagers = true; + private void allowLeashingVillagers() { + allowLeashingVillagers = getBoolean("allow-leashing-villagers", allowLeashingVillagers); + } + public boolean itemsCanBreakTurtleEggs = false; private void itemsCanBreakTurtleEggs() { itemsCanBreakTurtleEggs = getBoolean("items-can-break-turtle-eggs", itemsCanBreakTurtleEggs); -- 2.20.1