From da809d3cf0441c920856a99f7ae0769ca43b483c Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 13 Dec 2013 11:48:56 +1100 Subject: [PATCH] Allow Disabling Zombie Villager Agression. Useful for larger servers who want a nice performance boost at the expense of a little bit of gameplay mechanic changes. I believe this brings the mechanics of zombie vs villager back in line with 1.5. --- ...-Disabling-Zombie-Villager-Agression.patch | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 CraftBukkit-Patches/0074-Allow-Disabling-Zombie-Villager-Agression.patch diff --git a/CraftBukkit-Patches/0074-Allow-Disabling-Zombie-Villager-Agression.patch b/CraftBukkit-Patches/0074-Allow-Disabling-Zombie-Villager-Agression.patch new file mode 100644 index 000000000..fa62b31d1 --- /dev/null +++ b/CraftBukkit-Patches/0074-Allow-Disabling-Zombie-Villager-Agression.patch @@ -0,0 +1,48 @@ +From 5d27364026a357ed790b5024e594769f3691fe70 Mon Sep 17 00:00:00 2001 +From: Dylan Xaldin +Date: Thu, 12 Dec 2013 18:05:03 -0600 +Subject: [PATCH] Allow Disabling Zombie Villager Agression + +Ability to configure if Zombies will be aggressive towards Villagers. + +diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java +index 6c6e03e..5c8b0a8 100644 +--- a/src/main/java/net/minecraft/server/EntityZombie.java ++++ b/src/main/java/net/minecraft/server/EntityZombie.java +@@ -26,7 +26,7 @@ public class EntityZombie extends EntityMonster { + this.getNavigation().b(true); + this.goalSelector.a(0, new PathfinderGoalFloat(this)); + this.goalSelector.a(2, new PathfinderGoalMeleeAttack(this, EntityHuman.class, 1.0D, false)); +- this.goalSelector.a(4, new PathfinderGoalMeleeAttack(this, EntityVillager.class, 1.0D, true)); ++ if ( world.spigotConfig.zombieAggressiveTowardsVillager ) { this.goalSelector.a(4, new PathfinderGoalMeleeAttack(this, EntityVillager.class, 1.0D, true)); } // Spigot + this.goalSelector.a(5, new PathfinderGoalMoveTowardsRestriction(this, 1.0D)); + this.goalSelector.a(6, new PathfinderGoalMoveThroughVillage(this, 1.0D, false)); + this.goalSelector.a(7, new PathfinderGoalRandomStroll(this, 1.0D)); +@@ -34,7 +34,7 @@ public class EntityZombie extends EntityMonster { + this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this)); + this.targetSelector.a(1, new PathfinderGoalHurtByTarget(this, true)); + this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget(this, EntityHuman.class, 0, true)); +- this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget(this, EntityVillager.class, 0, false)); ++ if ( world.spigotConfig.zombieAggressiveTowardsVillager ) { this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget(this, EntityVillager.class, 0, false)); } // Spigot + this.a(0.6F, 1.8F); + } + +diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java +index b207c02..ea447f9 100644 +--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java ++++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java +@@ -239,4 +239,11 @@ public class SpigotWorldConfig + + antiXrayInstance = new AntiXray( this ); + } ++ ++ public boolean zombieAggressiveTowardsVillager; ++ private void zombieAggressiveTowardsVillager() ++ { ++ zombieAggressiveTowardsVillager = getBoolean( "zombie-aggressive-towards-villager", true ); ++ log( "Zombie Aggressive Towards Villager: " + zombieAggressiveTowardsVillager ); ++ } + } +-- +1.8.3.2 +