 --- ../src-base/minecraft/net/minecraft/entity/monster/EntityEnderman.java
 +++ ../src-work/minecraft/net/minecraft/entity/monster/EntityEnderman.java
-@@ -19,6 +19,8 @@
+@@ -1,6 +1,8 @@
+ package net.minecraft.entity.monster;
+ 
++import java.util.IdentityHashMap;
+ import java.util.UUID;
++import com.google.common.collect.Maps;
+ import net.minecraft.block.Block;
+ import net.minecraft.block.material.Material;
+ import net.minecraft.entity.Entity;
+@@ -19,11 +21,14 @@
  import net.minecraft.util.MathHelper;
  import net.minecraft.util.Vec3;
  import net.minecraft.world.World;

         boolean flag = false;
         int i = MathHelper.floor_double(this.posX);
         int j = MathHelper.floor_double(this.posY);
@@ -432,7 +438,7 @@
                     }
                 }
 

             }
             else
             {
@@ -467,5 +476,23 @@
         carriableBlocks[Block.getIdFromBlock(Blocks.pumpkin)] = true;
         carriableBlocks[Block.getIdFromBlock(Blocks.melon_block)] = true;
         carriableBlocks[Block.getIdFromBlock(Blocks.mycelium)] = true;
+        for (int x = 0; x < carriableBlocks.length; x++)
+        {
+            if (carriableBlocks[x]) setCarriable(Block.getBlockById(x), true);
+        }
     }
+
+    /*===================================== Forge Start ==============================*/
+    private static IdentityHashMap<Block, Boolean> carriable;
+    public static void setCarriable(Block block, boolean canCarry)
+    {
+        if (carriable == null) carriable = new IdentityHashMap(4096);
+        carriable.put(block, canCarry);
+    }
+    public static boolean getCarriable(Block block)
+    {
+        Boolean ret = carriable.get(block);
+        return ret != null ? ret : false;
+    }
+    /*===================================== Forge End ==============================*/
 }
