--- a/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/net/minecraft/world/entity/monster/warden/Warden.java
@@ -375,7 +375,7 @@
 
     @Override
     public BehaviorController<Warden> getBrain() {
-        return super.getBrain();
+        return (BehaviorController<Warden>) super.getBrain(); // CraftBukkit - decompile error
     }
 
     @Override
@@ -412,7 +412,7 @@
     public static void applyDarknessAround(WorldServer worldserver, Vec3D vec3d, @Nullable Entity entity, int i) {
         MobEffect mobeffect = new MobEffect(MobEffects.DARKNESS, 260, 0, false, false);
 
-        MobEffectUtil.addEffectToPlayersAround(worldserver, entity, vec3d, (double) i, mobeffect, 200);
+        MobEffectUtil.addEffectToPlayersAround(worldserver, entity, vec3d, i, mobeffect, 200, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.WARDEN); // CraftBukkit - Add EntityPotionEffectEvent.Cause
     }
 
     @Override
@@ -547,7 +547,7 @@
 
     public void setAttackTarget(EntityLiving entityliving) {
         this.getBrain().eraseMemory(MemoryModuleType.ROAR_TARGET);
-        this.getBrain().setMemory(MemoryModuleType.ATTACK_TARGET, (Object) entityliving);
+        this.getBrain().setMemory(MemoryModuleType.ATTACK_TARGET, entityliving); // CraftBukkit - decompile error
         this.getBrain().eraseMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE);
         SonicBoom.setCooldown(this, 200);
     }
@@ -582,11 +582,11 @@
 
     @Override
     protected NavigationAbstract createNavigation(World world) {
-        return new Navigation(this, this, world) {
+        return new Navigation(this, world) { // CraftBukkit - decompile error
             @Override
             protected Pathfinder createPathFinder(int i) {
                 this.nodeEvaluator = new PathfinderNormal();
-                return new Pathfinder(this, this.nodeEvaluator, i) {
+                return new Pathfinder(this.nodeEvaluator, i) { // CraftBukkit - decompile error
                     @Override
                     protected float distance(PathPoint pathpoint, PathPoint pathpoint1) {
                         return pathpoint.distanceToXZ(pathpoint1);
