From 105ff62df1fc75c06aaa91e9d6c8f61527dd8566 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 13:24:16 -0600
Subject: [PATCH] Allow nerfed mobs to jump


diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 9a72ef7..a44bbed 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -100,4 +100,9 @@ public class PaperWorldConfig {
         fishingMaxTicks = getInt("fishing-time-range.MaximumTicks", 900);
         log("Fishing time ranges are between " + fishingMinTicks +" and " + fishingMaxTicks + " ticks");
     }
+
+    public boolean nerfedMobsShouldJump;
+    private void nerfedMobsShouldJump() {
+        nerfedMobsShouldJump = getBoolean("spawner-nerfed-mobs-should-jump", false);
+    }
 }
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index ea77a33..ecb59e7 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -44,6 +44,7 @@ public abstract class EntityInsentient extends EntityLiving {
     private boolean bD;
     private Entity leashHolder;
     private NBTTagCompound bF;
+    public PathfinderGoalFloat goalFloat; // Paper
 
     public EntityInsentient(World world) {
         super(world);
@@ -631,6 +632,12 @@ public abstract class EntityInsentient extends EntityLiving {
         // Spigot Start
         if ( this.fromMobSpawner )
         {
+            // Paper start - Allow nerfed mobs to jump and float
+            if (goalFloat != null) {
+                if (goalFloat.a()) goalFloat.e();
+                this.g.b();
+            }
+            // Paper end
             return;
         }
         // Spigot End
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
index 1a20dbf..c56a0d0 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
@@ -6,6 +6,7 @@ public class PathfinderGoalFloat extends PathfinderGoal {
 
     public PathfinderGoalFloat(EntityInsentient entityinsentient) {
         this.a = entityinsentient;
+        if (entityinsentient.getWorld().paperConfig.nerfedMobsShouldJump) entityinsentient.goalFloat = this; // Paper
         this.a(4);
         ((Navigation) entityinsentient.getNavigation()).c(true);
     }
-- 
2.8.2