@Override
  public boolean standsOnEntity(
      final Entity entity,
      final double minX,
      final double minY,
      final double minZ,
      final double maxX,
      final double maxY,
      final double maxZ) {
    try {
      // TODO: Probably check other ids too before doing this ?

      final net.minecraft.server.v1_7_R1.Entity mcEntity = ((CraftEntity) entity).getHandle();

      final AxisAlignedBB box = useBox.b(minX, minY, minZ, maxX, maxY, maxZ);
      @SuppressWarnings("rawtypes")
      final List list = world.getEntities(mcEntity, box);
      @SuppressWarnings("rawtypes")
      final Iterator iterator = list.iterator();
      while (iterator.hasNext()) {
        final net.minecraft.server.v1_7_R1.Entity other =
            (net.minecraft.server.v1_7_R1.Entity) iterator.next();
        if (!(other instanceof EntityBoat)) { // && !(other instanceof EntityMinecart)) continue;
          continue;
        }
        if (minY >= other.locY && minY - other.locY <= 0.7) {
          return true;
        }
        // Still check this for some reason.
        final AxisAlignedBB otherBox = other.boundingBox;
        if (box.a > otherBox.d
            || box.d < otherBox.a
            || box.b > otherBox.e
            || box.e < otherBox.b
            || box.c > otherBox.f
            || box.f < otherBox.c) continue;
        else {
          return true;
        }
      }
    } catch (Throwable t) {
      // Ignore exceptions (Context: DisguiseCraft).
    }
    return false;
  }
 @Override
 public int fetchData(final int x, final int y, final int z) {
   return world.getData(x, y, z);
 }
 @Override
 public int fetchTypeId(final int x, final int y, final int z) {
   return world.getTypeId(x, y, z);
 }
 @Override
 public Block getType(int x, int y, int z) {
   return world.getType(x, y, z);
 }
 @Override
 public int getBlockPower(final int arg0, final int arg1, final int arg2, final int arg3) {
   return world.getBlockPower(arg0, arg1, arg2, arg3);
 }
 @Override
 public Vec3DPool getVec3DPool() {
   return world.getVec3DPool();
 }
 @Override
 public TileEntity getTileEntity(final int x, final int y, final int z) {
   return world.getTileEntity(x, y, z);
 }