From fd51c577ceb4e6db40320ad2b2411852948f9484 Mon Sep 17 00:00:00 2001 From: fullwall Date: Wed, 10 Jul 2013 00:08:19 +0800 Subject: [PATCH] Remove leash if leashable is false in entities --- .../java/net/citizensnpcs/npc/entity/BatController.java | 6 +++++- .../java/net/citizensnpcs/npc/entity/BlazeController.java | 3 +++ .../net/citizensnpcs/npc/entity/CaveSpiderController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/ChickenController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/CowController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/CreeperController.java | 3 +++ .../net/citizensnpcs/npc/entity/EnderDragonController.java | 3 +++ .../net/citizensnpcs/npc/entity/EndermanController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/GhastController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/GiantController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/HorseController.java | 3 +++ .../net/citizensnpcs/npc/entity/IronGolemController.java | 3 +++ .../net/citizensnpcs/npc/entity/MagmaCubeController.java | 3 +++ .../net/citizensnpcs/npc/entity/MushroomCowController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/OcelotController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/PigController.java | 3 +++ .../net/citizensnpcs/npc/entity/PigZombieController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/SheepController.java | 3 +++ .../net/citizensnpcs/npc/entity/SilverfishController.java | 3 +++ .../net/citizensnpcs/npc/entity/SkeletonController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/SlimeController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/SnowmanController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/SpiderController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/SquidController.java | 3 +++ .../net/citizensnpcs/npc/entity/VillagerController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/WitchController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/WitherController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/WolfController.java | 3 +++ .../java/net/citizensnpcs/npc/entity/ZombieController.java | 3 +++ src/main/java/net/citizensnpcs/util/NMS.java | 1 + 30 files changed, 90 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/citizensnpcs/npc/entity/BatController.java b/src/main/java/net/citizensnpcs/npc/entity/BatController.java index 4327b1991..7974043ef 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/BatController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/BatController.java @@ -69,11 +69,15 @@ public class BatController extends MobEntityController { @Override public boolean bH() { - if (npc == null) + if (npc == null) { return super.bH(); + } boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/BlazeController.java b/src/main/java/net/citizensnpcs/npc/entity/BlazeController.java index f292c2d86..2c047395d 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/BlazeController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/BlazeController.java @@ -63,6 +63,9 @@ public class BlazeController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/CaveSpiderController.java b/src/main/java/net/citizensnpcs/npc/entity/CaveSpiderController.java index c5ea52944..b9385b4ea 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/CaveSpiderController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/CaveSpiderController.java @@ -71,6 +71,9 @@ public class CaveSpiderController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/ChickenController.java b/src/main/java/net/citizensnpcs/npc/entity/ChickenController.java index fbc68c300..d559c6630 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/ChickenController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/ChickenController.java @@ -70,6 +70,9 @@ public class ChickenController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/CowController.java b/src/main/java/net/citizensnpcs/npc/entity/CowController.java index 603c73d13..f369076f2 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/CowController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/CowController.java @@ -71,6 +71,9 @@ public class CowController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/CreeperController.java b/src/main/java/net/citizensnpcs/npc/entity/CreeperController.java index 21fb58692..bfb7be80a 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/CreeperController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/CreeperController.java @@ -78,6 +78,9 @@ public class CreeperController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/EnderDragonController.java b/src/main/java/net/citizensnpcs/npc/entity/EnderDragonController.java index 85500d2d5..37d96bded 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/EnderDragonController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/EnderDragonController.java @@ -63,6 +63,9 @@ public class EnderDragonController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/EndermanController.java b/src/main/java/net/citizensnpcs/npc/entity/EndermanController.java index c1019c3bf..419bdd2e5 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/EndermanController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/EndermanController.java @@ -70,6 +70,9 @@ public class EndermanController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/GhastController.java b/src/main/java/net/citizensnpcs/npc/entity/GhastController.java index 0037fae67..338844375 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/GhastController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/GhastController.java @@ -49,6 +49,9 @@ public class GhastController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/GiantController.java b/src/main/java/net/citizensnpcs/npc/entity/GiantController.java index 7b5fa7d42..264d8a482 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/GiantController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/GiantController.java @@ -49,6 +49,9 @@ public class GiantController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/HorseController.java b/src/main/java/net/citizensnpcs/npc/entity/HorseController.java index 8ef5c6593..e92565420 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/HorseController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/HorseController.java @@ -49,6 +49,9 @@ public class HorseController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/IronGolemController.java b/src/main/java/net/citizensnpcs/npc/entity/IronGolemController.java index dc9d7a590..ed93c55c4 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/IronGolemController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/IronGolemController.java @@ -56,6 +56,9 @@ public class IronGolemController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/MagmaCubeController.java b/src/main/java/net/citizensnpcs/npc/entity/MagmaCubeController.java index 301937bca..a79d335ee 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/MagmaCubeController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/MagmaCubeController.java @@ -57,6 +57,9 @@ public class MagmaCubeController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/MushroomCowController.java b/src/main/java/net/citizensnpcs/npc/entity/MushroomCowController.java index 57847e8bf..9ed38e8fe 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/MushroomCowController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/MushroomCowController.java @@ -57,6 +57,9 @@ public class MushroomCowController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/OcelotController.java b/src/main/java/net/citizensnpcs/npc/entity/OcelotController.java index 689132705..a71784344 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/OcelotController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/OcelotController.java @@ -57,6 +57,9 @@ public class OcelotController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/PigController.java b/src/main/java/net/citizensnpcs/npc/entity/PigController.java index ef7cfb729..b37e8a5c1 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/PigController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/PigController.java @@ -63,6 +63,9 @@ public class PigController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/PigZombieController.java b/src/main/java/net/citizensnpcs/npc/entity/PigZombieController.java index ea846d789..36c171df1 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/PigZombieController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/PigZombieController.java @@ -57,6 +57,9 @@ public class PigZombieController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/SheepController.java b/src/main/java/net/citizensnpcs/npc/entity/SheepController.java index e1cb8408f..ad1eb9bc7 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/SheepController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/SheepController.java @@ -57,6 +57,9 @@ public class SheepController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/SilverfishController.java b/src/main/java/net/citizensnpcs/npc/entity/SilverfishController.java index 010d9eb3d..486339724 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/SilverfishController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/SilverfishController.java @@ -56,6 +56,9 @@ public class SilverfishController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/SkeletonController.java b/src/main/java/net/citizensnpcs/npc/entity/SkeletonController.java index 9decac6f0..ce66a1663 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/SkeletonController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/SkeletonController.java @@ -56,6 +56,9 @@ public class SkeletonController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/SlimeController.java b/src/main/java/net/citizensnpcs/npc/entity/SlimeController.java index d836416d7..b6c3c4e0f 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/SlimeController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/SlimeController.java @@ -58,6 +58,9 @@ public class SlimeController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/SnowmanController.java b/src/main/java/net/citizensnpcs/npc/entity/SnowmanController.java index 17985e131..910f3f327 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/SnowmanController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/SnowmanController.java @@ -56,6 +56,9 @@ public class SnowmanController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/SpiderController.java b/src/main/java/net/citizensnpcs/npc/entity/SpiderController.java index 3dd2f7bdf..de5a6023c 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/SpiderController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/SpiderController.java @@ -56,6 +56,9 @@ public class SpiderController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/SquidController.java b/src/main/java/net/citizensnpcs/npc/entity/SquidController.java index 17d293a13..536adc1ee 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/SquidController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/SquidController.java @@ -49,6 +49,9 @@ public class SquidController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/VillagerController.java b/src/main/java/net/citizensnpcs/npc/entity/VillagerController.java index 2fd89117b..1093e3853 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/VillagerController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/VillagerController.java @@ -64,6 +64,9 @@ public class VillagerController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/WitchController.java b/src/main/java/net/citizensnpcs/npc/entity/WitchController.java index ea527c40e..2e6a9a0ea 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/WitchController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/WitchController.java @@ -56,6 +56,9 @@ public class WitchController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/WitherController.java b/src/main/java/net/citizensnpcs/npc/entity/WitherController.java index 74d44b9d0..789eb43d3 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/WitherController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/WitherController.java @@ -57,6 +57,9 @@ public class WitherController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/WolfController.java b/src/main/java/net/citizensnpcs/npc/entity/WolfController.java index bcf636f04..198e948c8 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/WolfController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/WolfController.java @@ -57,6 +57,9 @@ public class WolfController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/npc/entity/ZombieController.java b/src/main/java/net/citizensnpcs/npc/entity/ZombieController.java index a519ff0e9..812b9b624 100644 --- a/src/main/java/net/citizensnpcs/npc/entity/ZombieController.java +++ b/src/main/java/net/citizensnpcs/npc/entity/ZombieController.java @@ -57,6 +57,9 @@ public class ZombieController extends MobEntityController { boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) return super.bH(); + if (super.bH()) { + a(true, false); // clearLeash with client update + } return false; // shouldLeash } diff --git a/src/main/java/net/citizensnpcs/util/NMS.java b/src/main/java/net/citizensnpcs/util/NMS.java index 40f67468b..0134e2124 100644 --- a/src/main/java/net/citizensnpcs/util/NMS.java +++ b/src/main/java/net/citizensnpcs/util/NMS.java @@ -396,6 +396,7 @@ public class NMS { } private static final float DEFAULT_SPEED = 1F; + private static Map, Integer> ENTITY_CLASS_TO_INT; private static final Map, Constructor> ENTITY_CONSTRUCTOR_CACHE = new WeakHashMap, Constructor>(); private static Map> ENTITY_INT_TO_CLASS;